• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
寻梦敦煌 显示全部楼层 发表于 2021-10-26 13:58:53 |阅读模式 打印 上一主题 下一主题
为了延伸磁盘寿命来存储音视频文件,打发在格式化磁盘过程中将簇的大小设置大点。因为存储的音视频文件现对较大,那么将簇大小设置得尽大概大,如允许以增强磁盘读取数据的性能,同时也不会浪费太多空间。
但发现我们装备的mkfs.vfat不支持-s参数设置簇的大小。

于是计划重新移植mkfs.vfat.
思绪1
重新移植busybox
1.官网上下载最新的busybox源码

2.修改Makefile
  1. ARCH =arm
  2. CROSS_COMPILE = /opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux-
复制代码

2.make menuconfig
设置为静态库

3.make
出现错误
  1. make: *** [busybox_unstripped] Error 1
  2. root@chenwr-pc:/home/soft/busybox-1.31.0# make
  3. LINK  busybox_unstripped
  4. Your linker does not support --sort-section,alignment
  5. Your linker does not support --sort-common
  6. Static linking against glibc, can't use --gc-sections
  7. Trying libraries: crypt m resolv
  8. Failed: -Wl,--start-group -lcrypt -lm -lresolv -Wl,--end-group
  9. Output of:
  10. /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
  11. ==========
  12. networking/lib.a(ipcalc.o): In function `ipcalc_main':
  13. ipcalc.c:(.text.ipcalc_main+0x24c): warning: gethostbyaddr is obsolescent, use getaddrinfo() instead.
  14. libbb/lib.a(inet_common.o): In function `INET_resolve':
  15. inet_common.c:(.text.INET_resolve+0x60): warning: gethostbyname is obsolescent, use getnameinfo() instead.
  16. coreutils/lib.a(mktemp.o): In function `mktemp_main':
  17. mktemp.c:(.text.mktemp_main+0x8c): warning: the use of `mktemp' is dangerous, better use `mkstemp'
  18. networking/lib.a(nslookup.o): In function `add_query':
  19. nslookup.c:(.text.add_query+0x70): undefined reference to `res_mkquery'
  20. networking/lib.a(nslookup.o): In function `send_queries':
  21. nslookup.c:(.text.send_queries+0x2d0): undefined reference to `__ns_initparse'
  22. nslookup.c:(.text.send_queries+0x308): undefined reference to `__ns_parserr'
  23. nslookup.c:(.text.send_queries+0x480): undefined reference to `__ns_get16'
  24. nslookup.c:(.text.send_queries+0x5cc): undefined reference to `__ns_get32'
  25. nslookup.c:(.text.send_queries+0x5e4): undefined reference to `__ns_get32'
  26. nslookup.c:(.text.send_queries+0x5fc): undefined reference to `__ns_get32'
  27. nslookup.c:(.text.send_queries+0x614): undefined reference to `__ns_get32'
  28. nslookup.c:(.text.send_queries+0x628): undefined reference to `__ns_get32'
  29. util-linux/lib.a(fallocate.o): In function `fallocate_main':
  30. fallocate.c:(.text.fallocate_main+0x80): undefined reference to `posix_fallocate'
  31. util-linux/lib.a(unshare.o): In function `unshare_main':
  32. unshare.c:(.text.unshare_main+0x1ec): undefined reference to `unshare'
  33. collect2: ld returned 1 exit status
  34. Note: if build needs additional libraries, put them in CONFIG_EXTRA_LDLIBS.
  35. Example: CONFIG_EXTRA_LDLIBS="pthread dl tirpc audit pam"
  36. make: *** [busybox_unstripped] Error 1
复制代码
重新make menuconfig 进入设置把报错的模块关闭不勾选。
   

参考网上的说法,还是会有许多错误。而且关闭许多网络的东西和体系的设置,担心万一影响到其他下令呢。因为我发现原来移植后的busybox,好比ls下令,不是单独的一个bin文件。而是软毗连到busybox中

而且我发觉装备的空间有限,原先的busybox才800多k,纵然新移植成功也要2M多。于是换个思绪,单独源码移植mkfs.vfat

到此该下令移植完毕。
总结
以上所述是小编给各人先容的Linux体系下移植busybox中mkfs.vfat下令,盼望对各人有所资助,如果各人有任何疑问请给我留言,小编会及时复兴各人的。在此也非常感谢各人对草根技术分享网站的支持!
如果你以为本文对你有资助,接待转载,烦请注明出处,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作