我想做一个linux的软盘镜像,需要用到busybox来做跟文件系统,就从 上下载了最新的busybox1.21.1,看说明文件安装非常简单,就是
#make menuconfig
#make
#make install
非常的简单,我也认为非常的简单,但是实际的过程却是出乎意料。
首先下载源码包,busybox-1.21.1.tar.bz2
解压源码包,用make menuconfig来配置编译选项
-
#tar xvf busybox-1.21.1.tar.bz2
-
#cd busybox-1.21.1
-
#make menuconfig
在编译选项 Busybox Setting --> Build Options --> Build Busybox as a static binary (no share libs)
这个选项比较重要,如果不选这个选项,编译是没有问题的。
其他的暂时选择默认。到等出现问题时再来改动。
现在就可以来编译了。
#make
之后就需要时间来等待了。不出问题最好,如果出了问题就需要来解决问题了。
我编译时出了问题,就是没有找到libcrypt和libm库,在链接时出现了问题,其提示信息如下
-
/usr/lib/gcc/i586-suse-linux/4.7/../../../../i586-suse-linux/bin/ld: cannot find -lcrypt
-
/usr/lib/gcc/i586-suse-linux/4.7/../../../../i586-suse-linux/bin/ld: cannot find -lm
-
collect2: error: ld returned 1 exit status
-
make: *** [busybox_unstripped] Error 1
这是由于glibc造成的,我重新安装了静态的glibc,
-
# zypper install glibc-static
之后在次进行编译
# make
这次出现了更多的问题,其提示信息如下:
-
networking/lib.a(inetd.o): In function `reread_config_file':
-
inetd.c:(.text.reread_config_file+0x5db): warning: Using 'getrpcbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
-
networking/lib.a(inetd.o): In function `unregister_rpc':
-
inetd.c:(.text.unregister_rpc+0xe): undefined reference to `pmap_unset'
-
networking/lib.a(inetd.o): In function `register_rpc':
-
inetd.c:(.text.register_rpc+0x3c): undefined reference to `pmap_unset'
-
inetd.c:(.text.register_rpc+0x57): undefined reference to `pmap_set'
-
networking/lib.a(inetd.o): In function `prepare_socket_fd':
-
inetd.c:(.text.prepare_socket_fd+0x73): undefined reference to `bindresvport'
-
collect2: error: ld returned 1 exit status
-
make: *** [busybox_unstripped] Error 1
这只是最后的部分,这段让我郁闷了很久,实在不知道该怎么办了,于是我就翻看inetd.c,等我意识到这是busybox中的一个功能模块时,我想如果要是,把这个模块去掉
不让其编译会怎么样?由于前段时间设定NFS服务器的时候,我碰到了RPC协议,而在make menuconfig的选项中,有RPC选项,碰巧,出错信息也提到了RPC,我干脆
在编译的时候不选这RPC功能,看看会怎样。
于是在menuconfig中的菜单中Networking Utilities --->Support RPC services取消其选择。之后再次编译。
结果一切正常。
#make install
来安装busybox ,默认情况下,安装在当前目录的_install 目录下。可以通过menuconfig来改变安装的位置。
阅读(3979) | 评论(0) | 转发(0) |