Linux操作系統(tǒng)通常能夠自動識別并掛載FAT32格式的磁盤,然而由于FAT32文件系統(tǒng)的限制,單個文件的最大存儲容量不得超過4GB。為了解決大文件傳輸問題,可選用exFAT或NTFS格式來替代。
接下來將給各位小伙伴介紹一下如何通過對ELF 1開發(fā)板進行配置,以實現(xiàn)對exFAT和NTFS格式U盤以及SD卡的支持與掛載。
exFAT
1、內(nèi)核源碼中需要添加exFAT源碼的支持,從下述鏈接下載exfat.zip源碼包并拷貝到內(nèi)核源代碼fs/文件下解壓。
獲取exfat.zip地址:pan.baidu.com/s/1wYjBgq80a6te0_oEoyC5qQ?pwd=1twp(提取碼:1twp)
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1/fs$ unzip exfat.zip
2、修改fs/Kconfig文件,在source "fs/fat/Kconfig"下面添加source "fs/exfat/Kconfig"
3、修改fs/Makefile文件,在obj-$(CONFIG_FAT_FS) += fat/下添加obj-$(CONFIG_EXFAT_FS) += exfat/
4、配置源碼
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1/fs$ cd .. elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make imx6ull_elf1_defconfig elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make menuconfig
File systems --->
DOS/FAT/NT Filesystems --->
參考下圖進行配置:
修改完后保存退出,需要注意的是NTFS也在此處開啟。
5、編譯內(nèi)核
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make zImage
6、拷貝zImage到ELF 1開發(fā)板上
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$scparch/arm/boot/zImageroot@192.168.2.98:/run/media/mmcblk1p1
7、開發(fā)板保存重啟
root@ELF1:~# sync root@ELF1:~# reboot
8、等待重啟完成,U盤格式化為exFAT格式,插到ELF 1開發(fā)板上,可自動掛載
手動掛載命令:mount –t exfat /dev/sda1 run/media/sda1
NTFS
由于Linux系統(tǒng)認為對NTFS類型的系統(tǒng)進行寫入是不安全的,所以需要交叉編譯ntfs-3g工具來讀寫NTFS格式的U盤。
1、將下述鏈接的ntfs-3g_ntfsprogs-2021.8.22.tgz拷貝到開發(fā)境/home/elf/work目錄下解壓
ntfs-3g_ntfsprogs-2021.8.22.tgz獲取地址:pan.baidu.com/s/1Q4diFDD7ooeit7ajWy_aRQ?pwd=wrpg(提取碼:wrpg)
elf@ubuntu:~/work$ tar zxvf ntfs-3g_ntfsprogs-2021.8.22.tgz elf@ubuntu:~/work$ cd ntfs-3g_ntfsprogs-2021.8.22/
2、切換到root用戶
elf@ubuntu:~/work/ntfs-3g_ntfsprogs-2021.8.22$ sudo su root [sudo] elf 的密碼://輸入密碼,無回顯 root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22#
3、生成Makefile
root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22# . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22# mkdir /home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22# ./configure -host=arm-linux --prefix=/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/ --exec-prefix=/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/ root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22# make root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22# make install
注:--prefix后的目錄依照個人路徑而定。
編譯完成后在/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/下生成bin和lib文件夾。
4、將bin/ntfs-3g與/lib拷貝到ELF1開發(fā)板
先打包/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/lib
root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22# cd __install/lib/ root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/lib# tar -cvjf lib.tar.bz2 *
拷貝壓縮包到ELF 1開發(fā)板/lib目錄下
root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/lib# scp lib.tar.bz2 root@192.168.2.98:/lib
在開發(fā)板上解壓
root@ELF1:~# cd /lib/ root@ELF1:/lib# tar xvf lib.tar.bz2
再將/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/bin/ntfs-3g可執(zhí)行程序拷貝到ELF 1開發(fā)板/bin目錄下
root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/bin#scpntfs-3groot@192.168.2.98:/bin
賦予權(quán)限
root@ELF1:/bin# chmod 777 ntfs-3g
5、將U盤格式化為NTFS格式,插到ELF 1開發(fā)板上,可自動掛載
雖然自動掛載上了,但是無法寫入內(nèi)容
root@ELF1:~# touch ceshi.sh root@ELF1:~# cp ceshi.sh /run/media/sda1/ cp: cannot create regular file '/run/media/sda1/ceshi.sh': Read-only file system
先卸載
root@ELF1:~# umount /run/media/sda1
再使用ntfs-3g工具掛載
root@ELF1:~# ntfs-3g /dev/sda1 /run/media/sda1
再次寫入
root@ELF1:~# cp ceshi.sh /run/media/sda1/ root@ELF1:~# ls /run/media/sda1/ ceshi.sh
寫入成功。
上述內(nèi)容是針對ELF 1開發(fā)板以實現(xiàn)對exFAT和NTFS文件系統(tǒng)支持的全過程。期待這份教程能夠為各位小伙伴帶來切實的幫助與啟發(fā)!
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304797 -
NTFS
+關(guān)注
關(guān)注
0文章
11瀏覽量
8622 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371
發(fā)布評論請先 登錄
相關(guān)推薦
評論