本帖最后由 水精灵 于 2024-1-31 17:10 编辑

Linux系统默认可以自动识别FAT32格式的盘,但FAT32支持的单个文件大小不能超过4G,如果需要存储大文件,可以用exFAT或者NTFS格式。下面介绍一下如何修改ELF 1,使其支持exFAT和NTFS格式的U盘和SD卡。
一.exFAT
1.内核需添加exFAT源码支持,拷贝 exfat.zip (86.44 KB, 下载次数: 269) 到内核源码fs/文件夹下解压。
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1/fs$ unzip exfat.zip
2.修改fs/Kconfig文件,在source "fs/fat/Kconfig"下面添加source "fs/exfat/Kconfig"
图片2.png
3.修改fs/Makefile文件,在obj-$(CONFIG_FAT_FS) += fat/下添加obj-$(CONFIG_EXFAT_FS) += exfat/
图片3.png
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  --->
参考下图进行配置:
图片4.png
修改完后保存退出,需要注意的是NTFS也在此处开启。
5.编译内核
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make zImage
6.拷贝zImage到ELF 1开发板上
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ scp arch/arm/boot/zImage root@192.168.2.98:/run/media/mmcblk1p1
7.开发板保存重启
root@ELF1:~# sync
root@ELF1:~# reboot
8.等待重启完成,U盘格式化为exFAT格式,插到ELF 1开发板上,可自动挂载
图片5.png
手动挂载命令:mount –t exfat /dev/sda1 run/media/sda1
二.NTFS
由于Linux系统认为对NTFS类型的系统进行写入是不安全的,所以需要交叉编译ntfs-3g工具来读写NTFS格式的U盘。
1.将 ntfs-3g_ntfsprogs-2021.8.22.zip (1.38 MB, 下载次数: 288) 拷贝到开发环境/home/elf/work目录下解压
elf@ubuntu:~/work$ unzip ntfs-3g_ntfsprogs-2021.8.22.zip
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拷贝到板子上
先打包/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开发板/lib目录下
root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/lib# scp lib.tar.bz2 root@192.168.2.98:/lib
在开发板上解压
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可执行程序拷贝到ELF 1开发板/bin目录下
root@ubuntu:/home/elf/work/ntfs-3g_ntfsprogs-2021.8.22/__install/bin# scp ntfs-3g root@192.168.2.98:/bin
赋予权限
root@ELF1:/bin# chmod 777 ntfs-3g
5.将U盘格式化为NTFS格式,插到ELF 1开发板上,可自动挂载
图片6.png
虽然自动挂载上了,但是无法写入内容
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
写入成功。
以上就是修改ELF 1,使其支持exFAT和NTFS格式的方法,希望对小伙伴们有所帮助!

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Powered by Discuz! X3.5  © 2001-2013 Comsenz Inc.