forked from dorimanx/exfat-nofuse
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Big patchset to exFAT version v1.2.24-dragon
Linux non-fuse read/write kernel driver for exFat and vFat file systems remote https://github.com/AndyLavr/exfat-nofuse branch exfat-v1.2.24-dragon - Full adaptation to Kernel 4.19.y - Support exFat capacity more than 2TB Signed-off-by: Andy Lavr <andy.lavr@gmail.com>
- Loading branch information
Showing
32 changed files
with
3,905 additions
and
3,456 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,98 +1,41 @@ | ||
exfat-nofuse | ||
exFAT-nofuse v1.2.24-dragon | ||
============ | ||
|
||
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! | ||
|
||
**Full adaptation to kernel 4.19.y** | ||
|
||
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: | ||
================================= | ||
modprobe exfat_core | ||
modprobe exfat_fs | ||
|
||
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: | ||
Enable exFAT module and install exfat-utils: | ||
============================================ | ||
|
||
sudo apt install dkms | ||
Add to /etc/initramfs-tools/modules: | ||
|
||
Then copy the root of this repository to /usr/share: | ||
exfat_core | ||
exfat_fs | ||
|
||
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 | ||
For filesystem creation and manipulation beyond that of the mount command it is necessary to install the exfat-utils package: | ||
============================================================================================================================= | ||
|
||
Build and load the module: | ||
$ sudo apt install exfat-utils | ||
$ sudo apt purge exfat-fuse | ||
|
||
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. | ||
To create an exFAT file system, use mkfs.exfat (or the mkexfatfs command, which is synonymous): | ||
=============================================================================================== | ||
|
||
root #mkfs.exfat | ||
mkexfatfs 1.2.8 | ||
Usage: mkfs.exfat [-i volume-id] [-n label] [-p partition-first-sector] [-s sectors-per-cluster] [-V] <device> | ||
For instance, to create it on a removable device present at /dev/sde1 while assigning "Flash" as the file system label: | ||
|
||
root #mkfs.exfat -n Flash /dev/sde1 | ||
|
||
Free Software for the Free Minds! | ||
================================= |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.