Files
android_kernel_motorola_sm6225/fs/exfat
a17671 b736076b7f fs:exfat-linux:Integrate exfat-linux open source driver
Opensource exfat-linux driver provide better performance
Comparing with the existing Moto exfat-nofuse
It could support various kernel versions l(CR) 5.4/4.19/4.14/4.9
Original source :https://github.com/arter97/exfat-linux.git
version 5.8-2arter97
This commit also integrates almost all the exfat upstream
changes from kernel 5.8-5.16 listed in:
https://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat.git/log/fs/exfat?h=exfat-for-5.16-rc1

Change-Id: I7c0db070ee33be8f7f24a42f987b4e825d957998
Signed-off-by: a17671 <a17671@motorola.com>
Reviewed-on: https://gerrit.mot.com/2137224
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Xinmin Fu <fuxm1@motorola.com>
Reviewed-by: Chuanchun Zhu <zhucc2@motorola.com>
Reviewed-by: Xiaojun Ji <jixj@motorola.com>
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
Submit-Approved: Jira Key
2021-12-15 23:10:34 -06:00
..
2020-11-06 04:43:04 -06:00
2017-12-12 12:34:31 -06:00

exfat-nofuse

Linux non-fuse read/write kernel driver for the exFAT, FAT12, FAT16 and vfat (FAT32) file systems.
Originally ported from Android kernel v3.0.

Kudos to ksv1986 for the mutex patch!
Thanks to JackNorris for being awesome and providing the clear_inode() patch.

Big thanks to lqs for completing the driver!
Big thanks to benpicco for fixing 3.11.y compatibility!

Special thanks to github user AndreiLux for spreading the word about the leak!

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!