• 正文
  • 推荐器件
  • 相关推荐
申请入驻 产业图谱

ELF 1技术贴 | 如何支持exFAT和NTFS格式

2024/02/01
1744
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

Linux操作系统通常能够自动识别并挂载FAT32格式的磁盘,然而由于FAT32文件系统的限制,单个文件的最大存储容量不得超过4GB。为了解决大文件传输问题,可选用exFAT或NTFS格式来替代。

接下来将给各位小伙伴介绍一下如何通过对ELF 1开发板进行配置,以实现对exFAT和NTFS格式U盘以及SD卡的支持与挂载。

exFAT

1、内核源码中需要添加exFAT源码的支持,从下述链接下载exfat.zip源码包并拷贝到内核源代码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、编译内核

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开发板上,可自动挂载

手动挂载命令:mount –t exfat /dev/sda1 run/media/sda1

NTFS

由于Linux系统认为对NTFS类型的系统进行写入是不安全的,所以需要交叉编译ntfs-3g工具来读写NTFS格式的U盘。

1、将下述链接的ntfs-3g_ntfsprogs-2021.8.22.tgz拷贝到开发境/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拷贝到ELF 1开发板

先打包/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开发板上,可自动挂载

虽然自动挂载上了,但是无法写入内容

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文件系统支持的全过程。期待这份教程能够为各位小伙伴带来切实的帮助与启发!

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
510ABA156M250AAG 1 Silicon Laboratories Inc LVPECL Output Clock Oscillator,

ECAD模型

下载ECAD模型
$3.67 查看
NC7S04M5X 1 Fairchild Semiconductor Corporation Inverter, HC Series, 1-Func, 1-Input, CMOS, PDSO5, 1.60 MM, MO-178AA, SOT-23, 5 PIN
$0.33 查看
74HC14DB,118 1 NXP Semiconductors 74HC(T)14 - Hex inverting Schmitt trigger SSOP1 14-Pin
$3.27 查看
飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多

相关推荐