QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118
microsoft exfat-specification
relan/exfat
dorimanx/exfat-nofuse
arter97/exfat-linux
嵌入式 linux 基于fuse 的 exfat 文件系统实现
exFAT vs. FAT32 Comparison
exfat文件系统
exfat文件系统(六)------exfat_get_block详解
WinCE6.0实现TexFAT的注意点
使用arter97/exfat-linux
,基于三星公司开源的sdFAT驱动,其性能比dorimanx/exfat-nofuse
高一点点,exfat-linux支持基本上所有主线内核,从3.4到4.19,以及ubuntu上使用的各种内核版本(3.4, 3.10, 3.18, 4.1, 4.4, 4.9, 4.14, 4.19 and 4.15, 5.0, 5.2, and 5.3-rc),在(x86(i386), x86_64(amd64), arm32(AArch32) and arm64(AArch64))都已经测试过。
sudo add-apt-repository ppa:arter97/exfat-linux
sudo apt update
sudo apt install exfat-dkms
git clone https://github.com/arter97/exfat-linux
cd exfat-linux
make
sudo make install
sudo modprobe exfat
# Modify fs/Kconfig
menu "DOS/FAT/NT Filesystems"
source "fs/fat/Kconfig"
+source "fs/exfat/Kconfig"
source "fs/ntfs/Kconfig"
endmenu
# Modify fs/Makefile
obj-$(CONFIG_FAT_FS) += fat/
+obj-$(CONFIG_EXFAT_FS) += exfat/
obj-$(CONFIG_BFS_FS) += bfs/
relan/exfat是基于fuse的exfat,用户态运行,方便使用,
$ autoreconf --install
$ ./configure
$ make
$ make install
exfat-fuse提供的option,
static const struct fuse_opt fuse_helper_opts[] = {
FUSE_HELPER_OPT("-d", foreground),
FUSE_HELPER_OPT("debug", foreground),
FUSE_HELPER_OPT("-f", foreground),
FUSE_HELPER_OPT("-s", singlethread),
FUSE_HELPER_OPT("fsname=", nodefault_subtype),
FUSE_HELPER_OPT("subtype=", nodefault_subtype),
FUSE_OPT_KEY("-h", KEY_HELP),
FUSE_OPT_KEY("--help", KEY_HELP),
FUSE_OPT_KEY("-ho", KEY_HELP_NOHEADER),
FUSE_OPT_KEY("-V", KEY_VERSION),
FUSE_OPT_KEY("--version", KEY_VERSION),
FUSE_OPT_KEY("-d", FUSE_OPT_KEY_KEEP),
FUSE_OPT_KEY("debug", FUSE_OPT_KEY_KEEP),
FUSE_OPT_KEY("fsname=", FUSE_OPT_KEY_KEEP),
FUSE_OPT_KEY("subtype=", FUSE_OPT_KEY_KEEP),
FUSE_OPT_END
};