99 lines
2.3 KiB
Markdown
Executable File
99 lines
2.3 KiB
Markdown
Executable File
exfat-nofuse
|
|
============
|
|
|
|
Linux non-fuse read/write kernel driver for the exFAT, FAT12, FAT16 and vfat (FAT32) file systems.<br />
|
|
Originally ported from Android kernel v3.0.
|
|
|
|
Kudos to ksv1986 for the mutex patch!<br />
|
|
Thanks to JackNorris for being awesome and providing the clear_inode() patch.<br />
|
|
<br />
|
|
Big thanks to lqs for completing the driver!<br />
|
|
Big thanks to benpicco for fixing 3.11.y compatibility!
|
|
|
|
|
|
Special thanks to github user AndreiLux for spreading the word about the leak!<br />
|
|
|
|
|
|
Installing as a stand-alone module:
|
|
====================================
|
|
|
|
make
|
|
sudo make install
|
|
|
|
To load the driver manually, run this as root:
|
|
|
|
modprobe exfat
|
|
|
|
You may also specify custom toolchains by using CROSS_COMPILE flag, in my case:
|
|
>CROSS_COMPILE=../dorimanx-SG2-I9100-Kernel/android-toolchain/bin/arm-eabi-
|
|
|
|
Installing as a part of the kernel:
|
|
======================================
|
|
|
|
Let's take [linux] as the path to your kernel source dir...
|
|
|
|
cd [linux]
|
|
cp -rvf exfat-nofuse [linux]/fs/exfat
|
|
|
|
edit [linux]/fs/Kconfig
|
|
```
|
|
menu "DOS/FAT/NT Filesystems"
|
|
|
|
source "fs/fat/Kconfig"
|
|
+source "fs/exfat/Kconfig"
|
|
source "fs/ntfs/Kconfig"
|
|
endmenu
|
|
```
|
|
|
|
|
|
edit [linux]/fs/Makefile
|
|
```
|
|
obj-$(CONFIG_FAT_FS) += fat/
|
|
+obj-$(CONFIG_EXFAT_FS) += exfat/
|
|
obj-$(CONFIG_BFS_FS) += bfs/
|
|
```
|
|
|
|
cd [linux]
|
|
make menuconfig
|
|
|
|
Go to:
|
|
> File systems > DOS/FAT/NT
|
|
> check exfat as MODULE (M)
|
|
> (437) Default codepage for exFAT
|
|
> (utf8) Default iocharset for exFAT
|
|
|
|
> ESC to main menu
|
|
> Save an Alternate Configuration File
|
|
> ESC ESC
|
|
|
|
build your kernel
|
|
|
|
Have fun.
|
|
|
|
|
|
Installing as a DKMS module:
|
|
=================================
|
|
|
|
You can have even more fun with exfat-nofuse by installing it as a DKMS module has the main advantage of being auto-compiled (and thus, possibly surviving) between kernel upgrades.
|
|
|
|
First, get dkms. On Ubuntu this should be:
|
|
|
|
sudo apt install dkms
|
|
|
|
Then copy the root of this repository to /usr/share:
|
|
|
|
sudo cp -R . /usr/src/exfat-1.2.8 (or whatever version number declared on dkms.conf is)
|
|
sudo dkms add -m exfat -v 1.2.8
|
|
|
|
Build and load the module:
|
|
|
|
sudo dkms build -m exfat -v 1.2.8
|
|
sudo dkms install -m exfat -v 1.2.8
|
|
|
|
Now you have a proper dkms module that will work for a long time... hopefully.
|
|
|
|
|
|
|
|
Free Software for the Free Minds!
|
|
=================================
|