随着資料量的增大,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,解除安裝的話會自動解除安裝。該問題暫時解決,但是很蹩腳,如果有好方法可以交流一下!