HI35xx内核增加exFAT支持


大于64GB的TF卡都是使用的exFAT文件格式,但是海思SDK里面提供的内核源码并不支持exFAT格式。因此要想内核识别64GB以上的TF卡,要么将64GB以上的TF卡格式化为FAT32格式,要么移植exFAT到内核中去。

1 源码下载

链接:
https://github.com/dorimanx/exfat-nofuse

2 编译

2.1 复制文件

将下载好的源码复制到内核 fs/exfat目录即可

2.2 修改fs/Kconfig

添加exFAT的Kconfig,如下:

if BLOCK
menu "DOS/FAT/NT Filesystems"

source "fs/fat/Kconfig"
source "fs/exfat/Kconfig"
source "fs/ntfs/Kconfig"

endmenu
endif # BLOCK

2.3 修改fs/Makefile

添加exFat,如下:

obj-$(CONFIG_FAT_FS)		+= fat/
obj-$(CONFIG_EXFAT_FS)      += exfat/
obj-$(CONFIG_BFS_FS)		+= bfs/
obj-$(CONFIG_ISO9660_FS)	+= isofs/

2.4 配置menuconfig

打开menuconfig,然后打开exfat相关配置即可

File systems --->
	DOS/FAT/NT Filesystems --->
		<*>exFAT fs support (NEW)
		[*]   enable discard support (NEW)
		[*]   enable delayed sync (NEW)   
		[ ]   enable kernel debug features via ioctl (NEW)
		 [ ]   print debug messages (NEW) 
		(437)Default codepage for exFAT (NEW) 
		(utf8) Default iocharset for exFAT (NEW)   

2.5 编译

编译内核并将内核烧录到设备中

3 验证

开机启动后,插入TF卡,并使用如下命令挂载TF卡:

mount /dev/mmcblk0p1 /mnt              //不指定挂载类型,系统自动识别
或
mount -t exfat /dev/mmcblk0p1 /mnt/sd    //指定挂载类型

其中,/dev/mmcblk0p1为TF在系统中的设备文件

打印信息如下:

[EXFAT] trying to mount...
[EXFAT] mounted successfully

猜你喜欢

转载自blog.csdn.net/u011003120/article/details/95475377