下载最新版的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 .
完成