嵌入式exfat-nofuse文件系统移植和使用
exfat-nofuse 是一款专为linux ARM平台设计的开源项目,它提供了一个非FUSE机制的内核级驱动,用于在Linux系统上无缝地读写exFAT和VFAT文件系统。此项目由Dorimanx维护,采用C语言编写,兼容GPL-2.0许可证。它避开了FUSE(用户空间文件系统)的使用,从而保证更高的性能及更好的系统集成度
开源代码路径:
https://gitcode.com/gh_mirrors/ex/exfat-nofuse/?utm_source=artical_gitcode&index=top&type=card&webUrl
修改Makefile
KDIR ?= xxx // 修改
make
insmod /usr/lib/exfat.ko
mkdir -p /mnt/sdcard
mount -t exfat /dev/mmcblk0p1 /mnt/sdcard //
输入mount命令 查看是否mount成功
rootfs on / type rootfs (rw)
proc on /proc type proc (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
sysfs on /sys type sysfs (rw,relatime)
/dev/mmcblk0p1 on mnt/sdcard type exfat (rw,relatime,fmask=0022,dmask=0022,namecase=0,errors=remount-ro)
问题:
mount: mounting /dev/mmcblk0p1 on /mnt/sdcard failed: Input/output error
可能:sd卡需要电脑格式化exfat
查看文件系统支持
cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev tmpfs
nodev debugfs
nodev sockfs
nodev pipefs
nodev anon_inodefs
nodev configfs
nodev devpts
cramfs
nodev ramfs
nodev mtd_inodefs
vfat
ext3
ext2
ext4
exfat
nodev jffs2
squashfs