热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux系统下移植busybox中mkfs.vfat命令

为了延长磁盘寿命来存储音视频文件,打发在格式化磁盘过程中将簇的大小设置大点。这接下来通过本文给大家介绍移植busybox中mkfs.vfat命令,需要的朋友可以参考下

为了延长磁盘寿命来存储音视频文件,打发在格式化磁盘过程中将簇的大小设置大点。因为存储的音视频文件现对较大,那么将簇大小设置得尽可能大,这样可以增强磁盘读取数据的性能,同时也不会浪费太多空间。

但发现我们设备的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命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!


推荐阅读
  • 本文介绍了如何在Linux系统中获取库源码,并在从源代码编译软件时收集所需的依赖项列表。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
  • 本文提供了在 Kali Linux 2020.01 x64 版本上安装 Docker 的详细步骤,包括环境准备、使用清华大学镜像源、配置 APT 仓库以及安装过程中的常见问题处理。 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • Linux环境下配置Subclipse访问SVN+SSH仓库的方法
    本文详细介绍如何在Linux操作系统中配置Subclipse,以便通过SSH协议安全访问SVN仓库。不同于常见的Windows配置指南,本文提供了针对Linux用户的详细步骤。 ... [详细]
  • 本文探讨了Unix和Linux操作系统的起源和发展历程。从20世纪60年代计算机技术的初期阶段,到Unix的诞生及后续Linux的崛起,文章详细介绍了这些操作系统如何逐步成为现代计算不可或缺的一部分。 ... [详细]
  • 在Ubuntu 14.04 (Desktop AMD64) 上安装与配置ROS Indigo
    本文档详细介绍了如何在Ubuntu 14.04 (Desktop AMD64) 系统上安装和配置ROS Indigo。包括设置软件源、安装ROS核心组件、初始化rosdep以及创建ROS工作空间等步骤。 ... [详细]
  • Kodi(原名XBMC)是一款由XBMC基金会开发的免费开源媒体播放器应用,支持多种操作系统和硬件平台。该软件以其强大的多媒体处理能力和用户友好的界面受到广泛欢迎。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 本文详细介绍了如何使用Layui框架实现动态和静态数据表的分页功能,具有较高的实用性和参考价值。适合需要开发管理后台的开发人员参考。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
author-avatar
推动茶汤_789
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有