随着数据量的增大,SD卡的容量也随之增加,大于32G的SD卡的格式一般是exfat,但是imx6q只支持FAT32。当然,可以将SD卡格式化为FAT32格式,但是,格式化需要特别的工具,windows不支持!所以,最好的办法是使imx6q支持exfat格式。
1、添加exfat-nofuse驱动
git clone https://github.com/dorimanx/exfat-nofuse.git clone下代码,进入exfat-nofuse目录。
修改Makefile:
1、KDIR和MDIR修改为本地内核目录。
#KDIR ?= /lib/modules/$(shell uname -r)/build
#MDIR ?= /lib/modules/$(shell uname -r)
KDIR ?= /home/linux3.0.35/linux-3.0.35
MDIR ?= /home/linux3.0.35/linux-3.0.35
2、修改目标all
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi-
3、执行命令:make。然后会生成exfat.ko文件。
将exfat.ko文件放到imx6q linux平台下,insmod即可。
2、遇到的问题以及解决办法
在添加完该驱动后,我插入一张64G格式为exfat的SD卡,但是不能正确挂载,系统自动挂载上了/dev/mmcblk1,正常的话应该挂载/dev/mmcblk1p1,我本想在imx6q自带的udev上做修改,但是没找到方法。
我的解决办法是,我在udev下加了一个最后执行的脚本,先卸载掉mmcblk1,然后手动挂载mmcblk1p1,卸载的话会自动卸载。该问题暂时解决,但是很蹩脚,如果有好方法可以交流一下!