ELF 2 开发板搭载 Desktop 22.04 系统时,对挂载的 TF 卡存在文件系统兼容性问题:
● 不支持exFAT格式
● 支持NTFS格式,但需手动挂载
针对上述问题,本文将详细介绍如何通过系统配置修改实现这两种文件系统的支持与自动挂载。
Windows 系统格式化存储设备
在使用 TF 卡前,需通过 Windows 自带工具将其格式化为目标文件系统(exFAT 或 NTFS),操作步骤如下:
1. 将 U 盘插入电脑的 USB 接口,确保系统识别到设备。
2. 打开“此电脑”。
3. 在 U 盘图标上右键单击,选择 “格式化”。
4. 在弹出的格式化窗口中选择所需的文件系统格式(exFAT或NTFS)。
5. 点击 “开始”,完成存储设备的格式化操作。
内核添加文件系统支持
通过内核配置添加 exFAT 和 NTFS 格式支持,需完成以下步骤:
打开图形配置界面
1. 进入源码目录并启动配置工具
在 Ubuntu 终端中执行以下命令:
elf@ubuntu:~/work/ELF2-linux-source$ ./build.sh kconfig
2. 配置文件系统支持项
在弹出的内核配置界面中,导航至DOS/FAT/EXFAT/NT Filesystems菜单,勾选以下选项:
1.png
保存配置并退出。
编译文件系统镜像
1. 执行编译命令
配置保存后,在终端中运行:
elf@ubuntu:~/work/ELF2-linux-source$ ./build.sh kernel
2. 获取输出文件
编译完成后,生成的文件系统镜像会存储在output/firmware目录下,其中boot.img即为需要烧录到开发板的镜像。
更新系统到开发板
参考《ELF 2 开发板编译手册》中 "5.3 更新内核" 章节的详细步骤,将生成的boot.img镜像烧录至 ELF 2 开发板,完成系统更新。
测试验证
手动挂载
exFAT
1. 查看文件系统挂载点
执行 df -h 命令,无 TF 卡挂载信息:
root@elf2-desktop:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  4.6G  8.6G  35% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           3.2G  2.5M  3.2G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.8G   12K  7.8G   1% /tmp
/dev/mmcblk0p7  123M   12M  108M  10% /oem
/dev/mmcblk0p8   96G  284M   92G   1% /userdata
tmpfs           1.6G   84K  1.6G   1% /run/user/1000
tmpfs           1.6G   56K  1.6G   1% /run/user/0
2. 确认设备节点
执行 fdisk -l 命令查看 TF 卡分区信息,确认 TF 卡设备节点为 /dev/mmcblk1:
root@elf2-desktop:~# fdisk -l
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/mmcblk0: 115.23 GiB, 123731968000 bytes, 241664000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 83480000-0000-4658-8000-52E4000055BA

Device            Start       End   Sectors   Size Type
/dev/mmcblk0p1    16384     24575      8192     4M unknown
/dev/mmcblk0p2    24576     32767      8192     4M unknown
/dev/mmcblk0p3    32768    163839    131072    64M unknown
/dev/mmcblk0p4   163840    425983    262144   128M unknown
/dev/mmcblk0p5   425984    491519     65536    32M unknown
/dev/mmcblk0p6   491520  29851647  29360128    14G unknown
/dev/mmcblk0p7 29851648  30113791    262144   128M unknown
/dev/mmcblk0p8 30113792 241663966 211550175 100.9G unknown


Disk /dev/mmcblk1: 59.48 GiB, 63864569856 bytes, 124735488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device         Boot      Start        End    Sectors  Size Id Type
/dev/mmcblk1p1      4294967295 8589934589 4294967295    2T ff BBT
/dev/mmcblk1p2      4294967295 8589934589 4294967295    2T ff BBT
/dev/mmcblk1p3      4294967295 8589934589 4294967295    2T ff BBT
/dev/mmcblk1p4      4294967295 6854241533 2559274239  1.2T ff BBT
3. 手动挂载
创建 exfat_fs 目录作为 exFAT 格式 TF 卡的挂载点,-t exfat 指定文件系统类型为 exFAT,将 dev/mmcblk1 挂载到 exfat_fs/。
root@elf2-desktop:~# mkdir exfat_fs
root@elf2-desktop:~# mount -t exfat /dev/mmcblk1 exfat_fs/
4. 查看文件系统挂载点
再次查看挂载状态,确认 dev/mmcblk1 已挂载到 exfat_fs/(验证挂载成功)。
root@elf2-desktop:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  4.6G  8.6G  35% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           3.2G  2.5M  3.2G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.8G   12K  7.8G   1% /tmp
/dev/mmcblk0p7  123M   12M  108M  10% /oem
/dev/mmcblk0p8   96G  284M   92G   1% /userdata
tmpfs           1.6G   84K  1.6G   1% /run/user/1000
tmpfs           1.6G   56K  1.6G   1% /run/user/0
/dev/mmcblk1     60G  896K   60G   1% /root/exfat_fs
5. 读写验证
root@elf2-desktop:~# echo 1 > exfat_fs/test.txt
root@elf2-desktop:~# sync
root@elf2-desktop:~# cat exfat_fs/test.txt
1
6. 卸载TF卡
TF 卡使用完成后,在弹出 TF 卡前,需要使用 umount 命令卸载 TF 卡:
root@elf2-desktop:~# umount exfat_fs
NTFS
1. 查看文件系统挂载点
执行 df -h 命令,无 TF 卡挂载信息:
root@elf2-desktop:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  4.6G  8.5G  36% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           3.2G  2.5M  3.2G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.8G   12K  7.8G   1% /tmp
/dev/mmcblk0p7  123M   12M  108M  10% /oem
/dev/mmcblk0p8   96G  284M   92G   1% /userdata
tmpfs           1.6G   88K  1.6G   1% /run/user/1000
tmpfs           1.6G   56K  1.6G   1% /run/user/0
2. 确认设备节点
执行 fdisk -l 命令查看 TF 卡分区信息,确认 TF 卡设备节点为 /dev/mmcblk1:
root@elf2-desktop:~# fdisk -l
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/mmcblk0: 115.23 GiB, 123731968000 bytes, 241664000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 50530000-0000-4F1D-8000-4315000064BF

Device            Start       End   Sectors   Size Type
/dev/mmcblk0p1    16384     24575      8192     4M unknown
/dev/mmcblk0p2    24576     32767      8192     4M unknown
/dev/mmcblk0p3    32768    163839    131072    64M unknown
/dev/mmcblk0p4   163840    425983    262144   128M unknown
/dev/mmcblk0p5   425984    491519     65536    32M unknown
/dev/mmcblk0p6   491520  29851647  29360128    14G unknown
/dev/mmcblk0p7 29851648  30113791    262144   128M unknown
/dev/mmcblk0p8 30113792 241663966 211550175 100.9G unknown


Disk /dev/mmcblk1: 59.48 GiB, 63864569856 bytes, 124735488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x73736572

Device         Boot      Start        End    Sectors   Size Id Type
/dev/mmcblk1p1      1920221984 3736432267 1816210284   866G 72 unknown
/dev/mmcblk1p2      1936028192 3889681299 1953653108 931.6G 6c unknown
/dev/mmcblk1p3               0          0          0     0B  0 Empty
/dev/mmcblk1p4        27722122   27722568        447 223.5K  0 Empty

Partition table entries are not in disk order.
3. 手动挂载
创建 ntfs_fs 目录作为 NTFS 格式 TF 卡的挂载点,-t ntfs-3g 指定使用 ntfs-3g 驱动挂载 NTFS 格式(Linux 下 NTFS 读写的常用驱动),将 dev/mmcblk1 挂载到 ntfs_fs/。
root@elf2-desktop:~# mkdir ntfs_fs
root@elf2-desktop:~# mount -t ntfs-3g /dev/mmcblk1 ntfs_fs/
4. 查看文件系统挂载点
root@elf2-desktop:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  4.6G  8.5G  36% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           3.2G  2.5M  3.2G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.8G   12K  7.8G   1% /tmp
/dev/mmcblk0p7  123M   12M  108M  10% /oem
/dev/mmcblk0p8   96G  284M   92G   1% /userdata
tmpfs           1.6G   88K  1.6G   1% /run/user/1000
tmpfs           1.6G   56K  1.6G   1% /run/user/0
/dev/mmcblk1     60G   88M   60G   1% /root/ntfs_fs
5. 读写验证
root@elf2-desktop:~# echo 1 > ntfs_fs/test.txt
root@elf2-desktop:~# sync
root@elf2-desktop:~# cat ntfs_fs/test.txt
1
6. 卸载TF卡
TF 卡使用完成后,在弹出 TF 卡前,需要使用 umount 命令卸载 TF 卡:
root@elf2-desktop:~# umount ntfs_fs
自动挂载
exFAT
1. 确认设备节点
执行 fdisk -l 命令查看 TF 卡分区信息,确认 TF 卡设备节点为 /dev/mmcblk1:
root@elf2-desktop:~# fdisk -l
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/mmcblk0: 115.23 GiB, 123731968000 bytes, 241664000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: D06F0000-0000-4C4B-8000-216D000071A3

Device            Start       End   Sectors   Size Type
/dev/mmcblk0p1    16384     24575      8192     4M unknown
/dev/mmcblk0p2    24576     32767      8192     4M unknown
/dev/mmcblk0p3    32768    163839    131072    64M unknown
/dev/mmcblk0p4   163840    425983    262144   128M unknown
/dev/mmcblk0p5   425984    491519     65536    32M unknown
/dev/mmcblk0p6   491520  29851647  29360128    14G unknown
/dev/mmcblk0p7 29851648  30113791    262144   128M unknown
/dev/mmcblk0p8 30113792 241663966 211550175 100.9G unknown


Disk /dev/mmcblk1: 59.48 GiB, 63864569856 bytes, 124735488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device         Boot      Start        End    Sectors  Size Id Type
/dev/mmcblk1p1      4294967295 8589934589 4294967295    2T ff BBT
/dev/mmcblk1p2      4294967295 8589934589 4294967295    2T ff BBT
/dev/mmcblk1p3      4294967295 8589934589 4294967295    2T ff BBT
/dev/mmcblk1p4      4294967295 6854241533 2559274239  1.2T ff BBT
2. 查看 TF 卡 UUID 或设备名
root@elf2-desktop:~# blkid
/dev/mmcblk0p7: LABEL="oem" UUID="5fce90f2-82c7-401e-8ccd-b265d1d1a04e" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="oem" PARTUUID="a9390000-0000-4339-8000-737c00004c7d"
/dev/mmcblk0p5: PARTLABEL="backup" PARTUUID="0b7f0000-0000-484e-8000-37da00004385"
/dev/mmcblk0p3: PARTLABEL="boot" PARTUUID="7a3f0000-0000-446a-8000-702f00006273"
/dev/mmcblk0p1: PARTLABEL="uboot" PARTUUID="fa0f0000-0000-4829-8000-6e9700004422"
/dev/mmcblk0p8: LABEL="userdata" UUID="0ab8136a-151e-4ecb-8c4e-bcba85a0ef17" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="userdata" PARTUUID="59490000-0000-4b30-8000-47ea00003767"
/dev/mmcblk0p6: UUID="4d1b5f8b-020c-499a-bac9-269c5104f9e7" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="rootfs" PARTUUID="614e0000-0000-4b53-8000-1d28000054a9"
/dev/mmcblk0p4: PARTLABEL="recovery" PARTUUID="8e500000-0000-4554-8000-7a1500002ce6"
/dev/mmcblk0p2: PARTLABEL="misc" PARTUUID="4d2e0000-0000-4d59-8000-14bb00003cfd"
/dev/mmcblk1: LABEL="M-fM-^VM-0M-eM-^JM- M-eM-^MM-7" UUID="24BD-6CCA" BLOCK_SIZE="512" TYPE="exfat"
3. 创建挂载点目录
root@elf2-desktop:~# mkdir -p /mnt/sdcard
4. 编辑 /etc/fstab文件
root@elf2-desktop:~# vi /etc/fstab
文件内容如下:
# <file system>                 <mount pt>              <type>          <options>               <dump>  <pass>
/dev/root                       /                       ext4            rw,noauto               0       1
proc                            /proc                   proc            defaults                0       0
devpts                          /dev/pts                devpts          defaults,gid=5,mode=620 0       0
tmpfs                           /dev/shm                tmpfs           mode=0777               0       0
tmpfs                           /tmp                    tmpfs           mode=1777               0       0
tmpfs                           /run                    tmpfs           mode=0755,nosuid,nodev  0       0
sysfs                           /sys                    sysfs           defaults                0       0
debug                           /sys/kernel/debug       debugfs         defaults                0       0
pstore                          /sys/fs/pstore          pstore          defaults                0       0
/dev/mmcblk0p7                  /oem                    ext4            defaults                0       0
/dev/mmcblk0p8                  /userdata               ext4            defaults                0       0
/dev/mmcblk1                    /mnt/sdcard             exfat           defaults,nofail         0       0
含义:
/dev/mmcblk1        TF 卡设备节点
/mnt/sdcard        挂载点
exfat        文件系统类型
defaults        使用默认挂载选项(读写、异步等)
nofail        若 TF 卡未插入,系统启动不报错
0 0        不启用备份(dump)和开机检查(fsck)
5. 保存重启
root@elf2-desktop:~# sync
root@elf2-desktop:~# reboot
6. 查看文件系统挂载点
重启后 TF 卡自动挂载到 /mnt/sdcard(自动挂载成功):
root@elf2-desktop:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  4.6G  8.5G  36% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           3.2G  2.5M  3.2G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.8G   12K  7.8G   1% /tmp
/dev/mmcblk0p7  123M   12M  108M  10% /oem
/dev/mmcblk0p8   96G  284M   92G   1% /userdata
/dev/mmcblk1     60G  768K   60G   1% /mnt/sdcard
tmpfs           1.6G   84K  1.6G   1% /run/user/1000
tmpfs           1.6G   56K  1.6G   1% /run/user/0
7. 读写验证
root@elf2-desktop:~# echo 1 > /mnt/sdcard/test.txt
root@elf2-desktop:~# sync
root@elf2-desktop:~# cat /mnt/sdcard/test.txt
1
NTFS
1. 确认设备节点
执行 fdisk -l 命令查看 TF 卡分区信息,确认 TF 卡设备节点为 /dev/mmcblk1:
root@elf2-desktop:~# fdisk -l
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/mmcblk0: 115.23 GiB, 123731968000 bytes, 241664000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 50530000-0000-4F1D-8000-4315000064BF

Device            Start       End   Sectors   Size Type
/dev/mmcblk0p1    16384     24575      8192     4M unknown
/dev/mmcblk0p2    24576     32767      8192     4M unknown
/dev/mmcblk0p3    32768    163839    131072    64M unknown
/dev/mmcblk0p4   163840    425983    262144   128M unknown
/dev/mmcblk0p5   425984    491519     65536    32M unknown
/dev/mmcblk0p6   491520  29851647  29360128    14G unknown
/dev/mmcblk0p7 29851648  30113791    262144   128M unknown
/dev/mmcblk0p8 30113792 241663966 211550175 100.9G unknown


Disk /dev/mmcblk1: 59.48 GiB, 63864569856 bytes, 124735488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x73736572

Device         Boot      Start        End    Sectors   Size Id Type
/dev/mmcblk1p1      1920221984 3736432267 1816210284   866G 72 unknown
/dev/mmcblk1p2      1936028192 3889681299 1953653108 931.6G 6c unknown
/dev/mmcblk1p3               0          0          0     0B  0 Empty
/dev/mmcblk1p4        27722122   27722568        447 223.5K  0 Empty

Partition table entries are not in disk order.
2. 查看 TF 卡 UUID 或设备名
root@elf2-desktop:~# blkid
/dev/mmcblk0p7: LABEL="oem" UUID="5fce90f2-82c7-401e-8ccd-b265d1d1a04e" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="oem" PARTUUID="a9390000-0000-4339-8000-737c00004c7d"
/dev/mmcblk0p5: PARTLABEL="backup" PARTUUID="0b7f0000-0000-484e-8000-37da00004385"
/dev/mmcblk0p3: PARTLABEL="boot" PARTUUID="7a3f0000-0000-446a-8000-702f00006273"
/dev/mmcblk0p1: PARTLABEL="uboot" PARTUUID="fa0f0000-0000-4829-8000-6e9700004422"
/dev/mmcblk0p8: LABEL="userdata" UUID="0ab8136a-151e-4ecb-8c4e-bcba85a0ef17" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="userdata" PARTUUID="59490000-0000-4b30-8000-47ea00003767"
/dev/mmcblk0p6: UUID="4d1b5f8b-020c-499a-bac9-269c5104f9e7" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="rootfs" PARTUUID="614e0000-0000-4b53-8000-1d28000054a9"
/dev/mmcblk0p4: PARTLABEL="recovery" PARTUUID="8e500000-0000-4554-8000-7a1500002ce6"
/dev/mmcblk0p2: PARTLABEL="misc" PARTUUID="4d2e0000-0000-4d59-8000-14bb00003cfd"
/dev/mmcblk1: LABEL="M-fM-^VM-0M-eM-^JM- M-eM-^MM-7" BLOCK_SIZE="512" UUID="14B26844B2682C84" TYPE="ntfs"
3. 创建挂载点目录
root@elf2-desktop:~# mkdir -p /mnt/sdcard
4. 编辑 /etc/fstab文件
root@elf2-desktop:~# vi /etc/fstab
文件内容如下:
# <file system>                 <mount pt>              <type>          <options>               <dump>  <pass>
/dev/root                       /                       ext4            rw,noauto               0       1
proc                            /proc                   proc            defaults                0       0
devpts                          /dev/pts                devpts          defaults,gid=5,mode=620 0       0
tmpfs                           /dev/shm                tmpfs           mode=0777               0       0
tmpfs                           /tmp                    tmpfs           mode=1777               0       0
tmpfs                           /run                    tmpfs           mode=0755,nosuid,nodev  0       0
sysfs                           /sys                    sysfs           defaults                0       0
debug                           /sys/kernel/debug       debugfs         defaults                0       0
pstore                          /sys/fs/pstore          pstore          defaults                0       0
/dev/mmcblk0p7                  /oem                    ext4            defaults                0       0
/dev/mmcblk0p8                  /userdata               ext4            defaults                0       0
/dev/mmcblk1                    /mnt/sdcard             ntfs-3g         defaults,nofail         0       0
含义:
/dev/mmcblk1        TF 卡设备节点
/mnt/sdcard        挂载点
ntfs-3g        指定NTFS驱动
defaults        使用默认挂载选项(读写、异步等)
nofail        若 TF 卡未插入,系统启动不报错
0 0        不启用备份(dump)和开机检查(fsck)
5. 保存重启
root@elf2-desktop:~# sync
root@elf2-desktop:~# reboot
6. 查看文件系统挂载点
重启后 TF 卡自动挂载到 /mnt/sdcard(自动挂载成功):
root@elf2-desktop:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  4.6G  8.6G  35% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           3.2G  2.5M  3.2G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.8G   12K  7.8G   1% /tmp
/dev/mmcblk0p7  123M   12M  108M  10% /oem
/dev/mmcblk0p8   96G  284M   92G   1% /userdata
/dev/mmcblk1     60G   88M   60G   1% /mnt/sdcard
tmpfs           1.6G   88K  1.6G   1% /run/user/1000
tmpfs           1.6G   56K  1.6G   1% /run/user/0
7. 读写验证
root@elf2-desktop:~# echo 1 > /mnt/sdcard/test.txt
root@elf2-desktop:~# sync
root@elf2-desktop:~# cat /mnt/sdcard/test.txt
1

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

    本版积分规则

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