交叉编译busybox流程以及出现问题的解决方法


下载最新版的busybox:
解包并进入源码包

(1)配置
make menuconfig
修改交叉编译器CROSS-BUILD]


(2)交叉编译
make     //make TARGET_ARCH=arm
错误1:
miscutils/lib.a(readahead.o): In function `readahead_main':
readahead.c:(.text.readahead_main+0x48): undefined reference to `readahead'
collect2: ld returned 1 exit status
make: *** [busybox_unstripped] error 1
miscellaneous utilities
[]readahead //如果上面去掉了busybox settings---> build options---->[ ]build with large file support //该选项就不会出现。
错误2:
如果真有那么顺利就好了。我配置好后执行make的时候提示有好几个错误,第一个就是mtd/mtd-user.h文件找不到。
解决办法:cp /usr/include/mtd/ include/mtd/ -a
错误3:
struct mtd_info_user中没有定义成员writesize,找到struct mtd_info_user结构体,在后面加入一个成员uint32_t writesize;这个问题解决掉。
错误4:
提示rfkill的一堆错误,这个估计也没什么用,直接make menuconfig取消掉这个,再编译,等一下就是下面的输出,那么编译就完成了

(3)安装
make CONFIG_PREFIX=/指定路径 install

问题1:
LINK     busybox_unstripped
./_install/bin/cat -> busybox
ln: creating symbolic link `./_install/bin/cat' to `busybox': Operation not supported
这个文件夹放在/usr 底下


(4)安装完毕

安装完后输出
--------------------------------------------------
You will probably need to make your busybox binary
setuid root to ensure all configured applets will
work properly.
--------------------------------------------------
表示编译安装成功.
进入安装目录会发现bin   linuxrc   sbin   usr这几个文件


成功后将busybox可执行文件复制到目标机任意目录下,测试是否可用。
./busybox ifconfig   #测试新busybox是否可用
可用以后,进入/bin 将原busybox改名,后将新busybox移动至此
例:
mv busybox busybox_back
./busybox_back cp /../busybox .
完成
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值