为了延长磁盘寿命来存储音视频文件,打发在格式化磁盘过程中将簇的大小设置大点。因为存储的音视频文件现对较大,那么将簇大小设置得尽可能大,这样可以增强磁盘读取数据的性能,同时也不会浪费太多空间。
但发现我们设备的mkfs.vfat不支持-s参数设置簇的大小。
于是打算重新移植mkfs.vfat.
思路1
重新移植busybox
1.官网上下载最新的busybox源码
2.修改Makefile
ARCH =arm CROSS_COMPILE = /opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux-
2.make menuconfig
设置为静态库
3.make
出现错误
make: *** [busybox_unstripped] Error 1 root@chenwr-pc:/home/soft/busybox-1.31.0# make LINK busybox_unstripped Your linker does not support --sort-section,alignment Your linker does not support --sort-common Static linking against glibc, can't use --gc-sections Trying libraries: crypt m resolv Failed: -Wl,--start-group -lcrypt -lm -lresolv -Wl,--end-group Output of: /opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux-gcc -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wno-format-security -Wdeclaration-after-statement -Wold-style-definition -fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability -funsigned-char -static-libgcc -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-builtin-printf -Os -static -march=armv7l -o busybox_unstripped -Wl,--start-group applets/built-in.o archival/lib.a archival/libarchive/lib.a console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a klibc-utils/lib.a e2fsprogs/lib.a editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a loginutils/lib.a mailutils/lib.a miscutils/lib.a modutils/lib.a networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o archival/libarchive/built-in.o console-tools/built-in.o coreutils/built-in.o coreutils/libcoreutils/built-in.o debianutils/built-in.o klibc-utils/built-in.o e2fsprogs/built-in.o editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o libpwdgrp/built-in.o loginutils/built-in.o mailutils/built-in.o miscutils/built-in.o modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o networking/udhcp/built-in.o printutils/built-in.o procps/built-in.o runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o util-linux/built-in.o util-linux/volume_id/built-in.o -Wl,--end-group -Wl,--start-group -lcrypt -lm -lresolv -Wl,--end-group ========== networking/lib.a(ipcalc.o): In function `ipcalc_main': ipcalc.c:(.text.ipcalc_main+0x24c): warning: gethostbyaddr is obsolescent, use getaddrinfo() instead. libbb/lib.a(inet_common.o): In function `INET_resolve': inet_common.c:(.text.INET_resolve+0x60): warning: gethostbyname is obsolescent, use getnameinfo() instead. coreutils/lib.a(mktemp.o): In function `mktemp_main': mktemp.c:(.text.mktemp_main+0x8c): warning: the use of `mktemp' is dangerous, better use `mkstemp' networking/lib.a(nslookup.o): In function `add_query': nslookup.c:(.text.add_query+0x70): undefined reference to `res_mkquery' networking/lib.a(nslookup.o): In function `send_queries': nslookup.c:(.text.send_queries+0x2d0): undefined reference to `__ns_initparse' nslookup.c:(.text.send_queries+0x308): undefined reference to `__ns_parserr' nslookup.c:(.text.send_queries+0x480): undefined reference to `__ns_get16' nslookup.c:(.text.send_queries+0x5cc): undefined reference to `__ns_get32' nslookup.c:(.text.send_queries+0x5e4): undefined reference to `__ns_get32' nslookup.c:(.text.send_queries+0x5fc): undefined reference to `__ns_get32' nslookup.c:(.text.send_queries+0x614): undefined reference to `__ns_get32' nslookup.c:(.text.send_queries+0x628): undefined reference to `__ns_get32' util-linux/lib.a(fallocate.o): In function `fallocate_main': fallocate.c:(.text.fallocate_main+0x80): undefined reference to `posix_fallocate' util-linux/lib.a(unshare.o): In function `unshare_main': unshare.c:(.text.unshare_main+0x1ec): undefined reference to `unshare' collect2: ld returned 1 exit status Note: if build needs additional libraries, put them in CONFIG_EXTRA_LDLIBS. Example: CONFIG_EXTRA_LDLIBS="pthread dl tirpc audit pam" make: *** [busybox_unstripped] Error 1
重新make menuconfig 进入设置把报错的模块关闭不勾选。
参考网上的说法,还是会有很多错误。而且关闭很多网络的东西和系统的配置,担心万一影响到其他命令呢。因为我发现原来移植后的busybox,比如ls命令,不是单独的一个bin文件。而是软连接到busybox中
而且我发觉设备的空间有限,原先的busybox才800多k,即使新移植成功也要2M多。于是换个思路,单独源码移植mkfs.vfat
到此该命令移植完毕。
总结
以上所述是小编给大家介绍的Linux系统下移植busybox中mkfs.vfat命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
1.1. RokidOS 系统移植适配 1.1.1. 硬件相关 1.1.2. 软件相关 1.1. RokidOS 系统移植适配 1.1.1. 硬件相关 硬件设计相关文档 我们为各位开发者提供了几款硬件开发板的参考实现,如果您需要了解或查询硬件配置、原理图、开发板样式等信息,请结合您所使用的硬件设备,到开发板用户手册章节了解相应信息。 1.1.2. 软件相关 RokidOS 板级配置体系 为了让开发
本文向大家介绍移植busybox构建最小根文件系统的步骤详解,包括了移植busybox构建最小根文件系统的步骤详解的使用技巧和注意事项,需要的朋友参考一下 Busybox:瑞士军刀,里面装有很多小命令。 STEP 1:构建目录结构 创建根文件系统目录,主要包括以下目录 STEP 2: 使用busybox构建/bin /sbin linuxrc 进入busybox-1.16.1目录,执行 保存退出
目录 E.1. 调试MySQL服务器 E.1.1. 针对调试编译MySQL E.1.2. 创建跟踪文件 E.1.3. 在gdb环境下调试mysqld E.1.4. 使用堆栈跟踪 E.1.5. 使用日志文件找出mysqld出错原因 E.1.6. 如果出现表格崩溃,请生成测试案例 E.2. 测试MySQL 客户端 E.3. DBUG 软件包 E.4. 关于RTS线程的注释 E.5. 线程软件包之间的差
本文向大家介绍Linux系统命令中screen命令详解,包括了Linux系统命令中screen命令详解的使用技巧和注意事项,需要的朋友参考一下 前言 对于执行长时间命令(如大文件运输)而言,为了不让它终止,都会开启一个远程登陆会话窗口来单独运行这样的命令。在此期间,不能关闭远程登录会话窗口或者断开连接,否则前功尽弃。这时候screen命令就派上用场了。 Screen是一款由GNU计划开发的用于命令
问题内容: 我在家中使用linux,但在学校中我们使用Windows7。我想在我的USB上安装python,以便可以在Windows和linux上使用它(ubuntu 13.04)。有没有办法可以在USB上安装python,以便win和linux计算机都可以使用它?我对python 2.7更加感兴趣。我在Linux机器上安装了Wine。可能不理想,但我可以使用便携式python并在wine下运行它
本文向大家介绍linux系统下如何挂载NTFS移动硬盘,包括了linux系统下如何挂载NTFS移动硬盘的使用技巧和注意事项,需要的朋友参考一下 前言 数据迁移是我们经常会遇到的,有时候做大数据量迁移时,为了快速迁移大数据,有可能在Linux服务器上临时挂载NTFS格式的移动硬盘, 一般情况下,Linux是识别不了NTFS格式移动硬盘的(需要重编译Linux核心才能,加挂NTFS分区), 这时候为了