HI35xx内核增加exFAT支持
HI35xx内核增加exFAT支持
fat32在linux上已经支持得很好了,此处就不再详述。
exfat的支持可以下载 https://github.com/hechaoyuyu/exfat 里面的源码,这部分源码可以嵌入到内核中,具体参考里面的README。
ntfs在linux内核选项打开后,可以挂载mount -t ntfs /dev/sda1 /mnt/usb,但是是只读的(linux系统认为对ntfs类型系统写入是不安全的)。如果需要支持读写,需要在网上找ntfs-3g相关的开源代码http://www.linuxfromscratch.org/blfs/view/svn/postlfs/ntfs-3g.html,编译出ntfs-3g工具和库文件libntfs.so文件,strip之后的大小在400K左右。
解压缩安装:
tar zxf ntfs-3g_ntfsprogs-2017.3.23.tgz
编译和安装ntfs-3g源代码。
cd ntfs-3g_ntfsprogs-2017.3.23
./configure CC=arm-hisiv100nptl-linux-gcc -host=arm-linux --prefix=/home/bsjsp/ntfs-3g_ntfsprogs-2017.3.23/usr --exec-prefix=/home/bsjsp/ntfs-3g_ntfsprogs-2017.3.23/usr
make
make install
copy到arm系统上,进行挂载:
mkdir /mnt/ntfs
#./ntfs-3g /dev/sda1 /mnt/ntfs/
此时挂载上的ntfs就是读写的了
文件系统常用shell命令:
查询当前支持的filesystem:cat /proc/filesystems
查询当前设备是什么类型文件系统:fdisk -l
fdisk -l
————————————————
版权声明:本文为CSDN博主「skyhxl」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/skyhxl/article/details/79002695
大于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