在我的 yocto 发行版中,我无法使用exfat
文件系统安装 USB 密钥。
如果我执行以下命令:
> blkid /dev/sda
/dev/sda: LABEL="my-label" UUID="FC4D-5949" BLOCK_SIZE="512" TYPE="exfat"
因此我确定 USB 文件系统是exfat
,但是当我尝试执行mount
命令时出现以下错误:
> mount /dev/sda /media
mount: /media: unknown filesystem type 'exfat'.
如果我执行该命令cat /proc/filesystems
(这里我找到了该cat
命令),则支持的文件系统列表为:
> cat /proc/filesystems
nodev sysfs
nodev tmpfs
nodev bdev
nodev proc
nodev cgroup
nodev cgroup2
nodev cpuset
nodev devtmpfs
nodev debugfs
nodev tracefs
nodev securityfs
nodev sockfs
nodev bpf
nodev pipefs
nodev ramfs
nodev hugetlbfs
nodev rpc_pipefs
nodev devpts
ext3
ext2
ext4
vfat
msdos
iso9660
nodev nfs
nodev nfs4
nodev cifs
nodev smb3
nodev autofs
nodev overlay
nodev efivarfs
nodev mqueue
btrfs
exfat
丢失。
有人可以解释一下如何exfat
在我的 yocto 发行版中安装 USB 吗?
您的内核(yocto 构建的一部分)缺少 exfat 文件系统支持。
您需要在内核构建中启用 exfat 文件系统,您需要的 Kconfig 变量是
CONFIG_EXFAT_FS
。正如我接受的答案中所写,要安装由
exfat
文件系统格式化的 USB,必须exfat
在内核构建中启用文件系统;在接受的答案中写道,实现此目标所需的 Kconfig 变量是CONFIG_EXFAT_FS
。这里我写下了我修改内核配置所执行的步骤。这篇文章不是可重复的过程,而只是我解决问题所遵循的轨迹。由于与我的构建系统密切相关,因此遗漏了一些细节。内核配置
Yocto 项目的内核配方通过调用以下命令提供功能
make menuconfig
:例如在我的系统上我使用过:
上一个命令启动图形菜单编辑器,允许改变变量的值
CONFIG_EXFAT_FS
。在菜单编辑器中,设置
CONFIG_EXFAT_FS=m
和其他变量。更改内核配置后,我保存了新配置并关闭了菜单编辑器;此新配置保存在文件中.config
。这里我无法详细说明文件的路径在哪里,.config
因为这是一个太宽泛的主题。获取
fragment.cfg
文件此时我执行了以下命令:
fragment.cfg
使用以下设置创建文件:在任务结束时,
diffconfig
构建系统会传达文件的路径fragment.cfg
。我已将该文件重命名
fragment.cfg
为enable-extfat-filesystem.cfg
。.bbappend
文件修改在我过去的构建系统中,我创建了一个名为
linux-intel_%.bbappend
file 的文件,用于将配置设置和补丁应用于内核,因此我通过添加以下行对其进行了修改:注意:在此步骤中,我无法更具体,因为文件名和路径取决于所使用的构建系统。这里仅添加我已将文件复制
enable-extfat-filesystem.cfg
到以下显示的路径中:内核编译
现在必须通过以下命令编译内核:
编译结束时内核可以
exfat
在需要的时候加载模块,通过该模块exfat
可以正确挂载USB。在我的系统上,构建具有先前内核配置更改的映像后,插入
exfat
USB 时可以执行以下挂载而不会出现错误:/dev/sda
USB 设备和/media
挂载点在哪里。