分类: LINUX
2010-11-09 14:51:44
BUSYBOX编译备忘录
编译busybox的组合:
busybox-1.0.0 arm-linux-gcc-2.95.3 (AT91rm9200开发板)
经典参考:
下载busybox
文件系统制作
移植基本过程:
1. 到下载busybox;
2. 解压busybox1.7.3
tar jxvf busybox-1.7.3.tar.bz2
3. make defconfig
4. make menuconfig
在[build options]中选择[Build busybox as a static binary]
主要是C库的连接方式,安装目录等。
5. make
6. 创建rootfs目录
7. make install
编译过程可能出现以下错误,解决方法如下:
可能会出现的错误:
1. 出现如下错误
CC miscutils/taskset.o
miscutils/taskset.c:17: error: parse error before '*' token
miscutils/taskset.c:18: warning: function declaration isn't a prototype
miscutils/taskset.c: In function `__from_cpuset':
miscutils/taskset.c:22: error: `CPU_SETSIZE' undeclared (first use in this function)
miscutils/taskset.c:22: error: (Each undeclared identifier is reported only once
miscutils/taskset.c:22: error: for each function it appears in.)
miscutils/taskset.c:26: warning: implicit declaration of function `CPU_ISSET'
miscutils/taskset.c:26: error: `mask' undeclared (first use in this function)
miscutils/taskset.c: In function `taskset_main':
miscutils/taskset.c:47: error: `cpu_set_t' undeclared (first use in this function)
miscutils/taskset.c:47: error: parse error before "mask"
miscutils/taskset.c:68: warning: implicit declaration of function `CPU_ZERO'
miscutils/taskset.c:68: error: `new_mask' undeclared (first use in this function)
miscutils/taskset.c:69: error: `CPU_SETSIZE' undeclared (first use in this function)
miscutils/taskset.c:71: warning: implicit declaration of function `CPU_SET'
miscutils/taskset.c:78: error: `mask' undeclared (first use in this function)
make[1]: *** [miscutils/taskset.o] Error 1
make: *** [miscutils] Error 2
make menuconfig
找到[Miscellaneous Utilities],去掉[task set]
2. 如下错误:
time.c
libbb/time.c:20: error: "CLOCK_MONOTONIC" undeclared (first use in this function)
make menuconfig
去掉Busybox Settings->Busybox Library Tuning->[]Use clock_gettie(CLOCK_MONOTONIC) syscall
3.出现如下错误:
In file included from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/fs.h:12,
from
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/capability.h:17,
from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/binfmts.h:5,
from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/sched.h:9,
from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/inetpeer.h:14,
from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/route.h:28,
from /busybox-1.01/networking/route.c:42:
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/wait.h:4:
warning: `WNOHANG' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/waitflags.h:26: warning:
this is the location of the previous definition
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/wait.h:5:
warning: `WUNTRACED' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/waitflags.h:27: warning:
this is the location of the previous definition
In file included from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/sched.h:77,
from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/inetpeer.h:14,
from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/route.h:28,
from /busybox-1.01/networking/route.c:42:
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:108:
warning: `FD_SET' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:83:
warning: this is the location of the previous definition
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:109:
warning: `FD_CLR' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:84:
warning: this is the location of the previous definition
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:110:
warning: `FD_ISSET' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:85:
warning: this is the location of the previous definition
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:111:
warning: `FD_ZERO' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:86:
warning: this is the location of the previous definition
In file included from /busybox-1.01/networking/route.c:42:
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/route.h:34:
warning: #warning This file is not supposed to be used outside of
kernel.
……
……
In file included from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/netdb.h:38,
from /busybox-1.01/include/libbb.h:36,
from /busybox-1.01/include/busybox.h:54,
from /busybox-1.01/networking/route.c:44:
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:34:
redefinition of `union sigval'
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:37:
warning: redefinition of `sigval_t'
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/siginfo.h:11:
warning: `sigval_t' previously declared here
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:274:
redefinition of `struct sigevent'
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:289:
warning: redefinition of `sigevent_t'
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/siginfo.h:211:
warning: `sigevent_t' previously declared here
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:298: parse error before `0'
In file included from /busybox-1.01/include/busybox.h:54,
from /busybox-1.01/networking/route.c:44:
/busybox-1.01/include/libbb.h:112: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:113: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:135: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:251: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:256: redefinition of `struct sysinfo'
/busybox-1.01/include/libbb.h:272: warning: declaration of `info' shadows global declaration
/busybox-1.01/include/libbb.h:309: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:440: warning: declaration of `flags' shadows global declaration
/busybox-1.01/networking/route.c:475: warning: declaration of `flags' shadows global declaration
/busybox-1.01/networking/route.c: In function `set_flags':
/busybox-1.01/networking/route.c:476: warning: declaration of `flags' shadows global declaration
/busybox-1.01/networking/route.c: In function `displayroutes':
/busybox-1.01/networking/route.c:490: warning: declaration of `flags' shadows global declaration
make: *** [/busybox-1.01/networking/route.o] Error 1
去掉Busybox Settings->NetWork device-->[]route
4.如下错误:
usr/src/armlinux/busybox-1.0.0/libbb/loop.c:32:linux/version.h:No such file or directory
/usr/src/armlinux/busybox-1.0.0/libbb/loop.c:35 arse error
/usr/src/armlinux/busybox-1.0.0/libbb/loop.c:37 arse error
将内核源码下的include/linux目录下的versition.h文件
放到 busybox-1.0.0/include/linux下
.....
(以上错误并不全是自己遇到的,仅收集以备忘)