利用dosfstools编译mkfs.fat/mkfs.vfat程序

利用dosfstools-4.1编译mkfs.fat/mkfs.vfat程序

前言

由于工作需要,经常在一些嵌入式平台用到mkfs.vfat命令来格式化u盘、存储卡等存储介质。在使用zedboard平台进行编译时,发现在用根文件系统中不含mkfs.vfat命令,给工作带来很多不便。故计划编译mkfs.vfat命令移植进平台。

可用方案

1、集成至busybox移植;
2、利用dosfstools编译移植;

对于方案1,已有诸多文章给出详细介绍。考虑到本人所用zedboard平台根文件系统放在nor flash,存储空间受限,编译出的busybox文件较大,无法存放至nor flash,故放弃此方案。

经查看可知(ls -l mkfs.vfat的路径),mkfs.vfat命令是mkfs.fat命令的链接,查阅资料(主要参考: https://www.jianshu.com/p/9348fac12dd8 )后,了解到dosfstools可直接编译mkfs.fat命令,故尝试采用方案2来编译移植mkfs.fat命令。

实现步骤

1、下载dosfstools源码 ,下载地址:http://ftp.de.debian.org/debian/pool/main/d/dosfstools/;
在这里插入图片描述
选择要下载的文件,右键复制链接,在ubuntu命令行下“wget 粘贴地址”(本人下载的是dosfstools_4.1.orig.tar.xz);
2、解压, tar -xvf dosfstools_4.1.orig.tar.xz;
在这里插入图片描述
3、进入解压目录dosfstools-4.1, cd dosfstools-4.1;
在这里插入图片描述
4、执行configure配置,注意根据实际需求添加配置选项:
./configure CC=arm-xilinx-linux-gnueabi-gcc --prefix=$PWD --host=arm-xilinx-linux

在这里插入图片描述
zedboard平台的交叉编译链为arm-xilinx-linux-gnueabi-, 故CC=arm-xilinx-linux-gnueabi-gcc,–host=arm-xilinx-linux。这里我指定程序存放路径为当前路径,故–prefix=$PWD;

5、编译,make;

6、安装,make install;

8、确认编出的可执行程序mkfs.fat的文件格式, file sbin/mkfs.fat;
在这里插入图片描述本人编出的mkfs.fat在$PWD/sbin/路径下,实际路径根据上文“–prefix=”配置查找;

9、复制可执行程序mkfs.fat至所用平台(zedboard);

10、在所用平台(zedboard)将复制的可执行程序mkfs.fat放至/usr/sbin/路径:
mv mkfs.fat /usr/sbin/

11、到/usr/sbin路径,建立mkfs.vfat软链接:
cd /usr/sbin/
ln -s mkfs.vfat mkfs.fat

12、大功告成,可以在平台使用mkfs.vfat工具啦。

其他说明

本人最初采用了dosfstools_3.0.27.orig.tar.xz版本编译生成mkfs.fat,但使用过程中发现该版本对大容量存储卡强制格式化为F32格式,存储卡可见容量只有2G,故尝试采用了更新版本的dosfstools_4.1.orig.tar.xz编译mkfs.fat,这样格式化大容量存储设备,可见容量更符合实际。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值