busybox1.20.2编译过程

ubuntu 16.10

arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

busybox: 1.20.2

设置路径: export PATH="/arm-none-linux-gnueabi/arm-2014.05/bin:$PATH"

查看结果: arm-none-linux-gnueabi-gcc -v


显示:Using built-in specs.

COLLECT_GCC=arm-none-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/arm-none-linux-gnueabi/arm-2014.05/bin/../libexec/gcc/arm-none-linux-gnueabi/4.8.3/lto-wrapper

Target: arm-none-linux-gnueabi

Configured with: /scratch/maciej/arm-linux-2014.05-rel/src/gcc-4.8-2014.05/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2014 -D__CS_SOURCERYGXX_MIN__=5 -D__CS_SOURCERYGXX_REV__=29' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery CodeBench Lite 2014.05-29' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/maciej/arm-linux-2014.05-rel/install/opt/codesourcery/arm-none-linux-gnueabi/libc --with-gmp=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-isl=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-cloog=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --disable-libgomp --disable-libitm --enable-libatomic --disable-libssp --enable-poison-system-directories --with-build-time-tools=/scratch/maciej/arm-linux-2014.05-rel/install/opt/codesourcery/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/maciej/arm-linux-2014.05-rel/install/opt/codesourcery/arm-none-linux-gnueabi/bin SED=sed

Thread model: posix

gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)


开始编译 busybox

  1. make clean

  2. make menuconfig

\* Build BusyBox as a static binary (no shared libs) 选上,不用再去拷运行库

  1. make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

编译出错:

loginutils/passwd.c: In function 'passwd_main':

loginutils/passwd.c:104:16: error: storage size of 'rlimit_fsize' isn't known

struct rlimit rlimit_fsize;

^

loginutils/passwd.c:188:2: warning: implicit declaration of function 'setrlimit' -Wimplicit-function-declaration

setrlimit(RLIMIT_FSIZE, &rlimit_fsize);

^

loginutils/passwd.c:188:12: error: 'RLIMIT_FSIZE' undeclared (first use in this function)

setrlimit(RLIMIT_FSIZE, &rlimit_fsize);

^

loginutils/passwd.c:188:12: note: each undeclared identifier is reported only once for each function it appears in

loginutils/passwd.c:104:16: warning: unused variable 'rlimit_fsize' -Wunused-variable

struct rlimit rlimit_fsize;

^

scripts/Makefile.build:197: recipe for target 'loginutils/passwd.o' failed

make1: *** loginutils/passwd.o Error 1

Makefile:740: recipe for target 'loginutils' failed

make: *** loginutils Error 2

网上查找原因是busybox版本造成,换版本:busybox-1.21.0

再次编译

  1. make clean

  2. make menuconfig

\* Build BusyBox as a static binary (no shared libs) 选上,不用再去拷运行库

  1. make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

显示:

Trying libraries: crypt m

Library crypt is not needed, excluding it

Library m is needed, can't exclude it (yet)

Final link with: m

DOC busybox.pod

DOC BusyBox.txt

DOC busybox.1

DOC BusyBox.html

  1. sudo mkdir rootsf

sudo chmod 777 rootsf/

make CONFIG_PREFIX=/qemu_tes/busybox/rootsf/ install 安装到指定位置

查看:ls rootsf/

显示:bin linuxrc sbin usr

  1. cd rootsf/

sudo mkdir proc sys dev etc etc

将busybox/busybox-1.21.0/examples/bootfloppy/etc下的所有文件拷到rootfs/etc下

sudo cp -a /qemu_tes/busybox/busybox-1.21.0/examples/bootfloppy/etc/* etc/

相关推荐
笃行3501 小时前
【金仓数据库产品体验官】订单增量同步实战:MERGE、OUTPUT 与 IDENTITY 的兼容验证
数据库
星恒随风4 小时前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
无奈笑天下5 小时前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库
xiaoye-duck7 小时前
《C++ 项目:手写大模型接入 SDK》会话模块整合:内存 SessionManager 与 DataManager 持久化联动
开发语言·数据库·c++·语言模型
AllData公司负责人7 小时前
AI大模型数据开发底座系列说明书:AllData集成DB-GPT开源项目建设 AI 多模态分析底座,涵盖模态解析/智能大屏/MCP 扩展!
大数据·数据库·人工智能·gpt·数据采集·数据接入·模态解析
2601_967987378 小时前
Sqlite参考手册
数据库·python·sqlite·api·教程
隔窗听雨眠8 小时前
Oracle日志体系分层结构与故障定位路径
数据库·oracle·故障排查
为思念酝酿的痛8 小时前
C语言操作MySQL
数据库·mysql
ShineWinsu9 小时前
对于Qt:QTabWidget常见属性的解析
开发语言·数据库·c++·qt·浏览器·qtabwidget·标签页
星恒随风19 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql