Ubuntu14.04交叉编译BusyBox

1 开发环境

    宿主机:Ubuntu14.04(32bit)

    开发板:Mini2440

    BusyBox:1.24.2

2 配置

    到BusyBox官网下源码并解压,然后可使用默认配置,也可以使用菜单配置。

2.1 默认配置

    进入BusyBox源码顶级目录执行下面的命令进行默认配置: 

make defconfig

2.2 菜单配置

    BusyBoxy各目录都有一个Config.in文件,里面保存了BusyBox的配置信息,我们可以手动修改Config.in以达到配置的目的,但是这样子比较麻烦。所幸的是,BusyBox提供了一个菜单式的配置工具,执行如下命令即可调出此工具:

make menuconfig

    配置界面如下图:

图1 BusyBox菜单配置主界面

    第一次执行make menucofig时,可能会出错:

图2 启动BusyBox菜单配置时遇到的问题

    根据上图红色圈住部分的提示可知,当前系统缺乏curses.h头文件,执行下面命令安装curves即可:

sudo apt-get install libncurses-dev

2.2.1 编译设置

Busybox Settings --->

    Build Options --->

图3 编译设置

(1)静态编译

    通过空格键使能Build BusyBox as a static binary(no shared libs)(对应的方括号处显示星号*即为使能状态)。

(2)交叉工具链前缀

    设置Cross Compiler prefix如下所示(具体路径和交叉工具链前缀根据实际情况修改):

图4 交叉工具链前缀

    若将交叉编译工具链的路径(home/liyihaiMini2440/Toolschain/4.4.3/bin)添加到UbuntuPATH环境变量中,则在上图中只要指定arm-linux-即可,若当前系统中没有相应的交叉工具链或者输入有误,在保存退出时会提示错误:

图5 交叉工具链输入错误

2.2.2 安装设置

Busybox Settings --->

    Installation Options("make install" behavior) --->

图6 安装设置

    由上图可见,默认情况下值执行make install时BusyBox会被安装在其顶层目录的_install目录中。安装目录可以根据需要进行修改:通过向下方向键选中上图的(./_install)BusyBox installatiion prefix选项,然后输入安装路径即可:

 

图7 BusyBox安装路径

 

2.2.3 基本配置

Busybox Settings --->

    General Configuration --->

        [*]Don't use /usr

    这个必需选中,否则在安装的时候将会将BusyBox安装在Ubuntu的/usr目录中,从而损坏了宿主机的根文件系统!

2.2.4 退出保存

    退出时记得确认保存,否则上述配置无效。

图8 退出保存

3 编译

make

    若没有在图4中设置交叉编译工具链前缀,则需要通过下述命令比编译和安装:

make ARCH=arm CROSS_COMPILE=arm-linux- CONFIG_PREFIX=/home/liyihai/Mini2440/rootfs all install

3.1 编译错误

    执行make命令编译时(使用友善之臂的交叉工具链),出现错误如下:

图9 友善之臂交叉编译器编译错误

     改用创龙的交叉工具链,出现错误如下:

图10 创龙交叉编译器编译错误

    上述两幅图的错误是不一样的,因此可知说出现的错误与具体的编译器有关!

3.2 搜索选项

    配置选项特别多,且在不同的BusyBox版本中,同一个选项可能会被安排到不同的菜单中,因此人工查阅特定的选项比较麻烦,幸好有搜索选项的工具,在任意菜单界面中输入斜杠“/”即可进入搜索框:

图11 搜索框

                                                                     

    在上图中输入util关键字,搜索结果如下:

图12 搜索结果

                         

    上图显示了包含关键字util的菜单位置,这个功能有助于定位引起编译错误的选项。

3.3 取消引起错误的选项

    再次执行make menuconfig,取消引起编译的选项,然后重新编译即可解决上述编译错误。

    对于图9的错误,取消umount选项即可:

Linux System Utilities  --->

    [ ] umount

    对于图10的错误,取消sync选项即可:

Coreutils  --->

    [ ] sync

4 安装

    执行如下命令可将BusyBox安装到指定目录(如果用户没有设置,则默认安装目录为_install):

make install

    上述命令会在安装目录中生成binsbin两个目录以及linuxrc一个链接文件。:

图13 安装结果

参考资料

[1]使用BusyBox制作嵌入式Linux根文件系统

[2]根文件系统制作-et5

[3]linux下3.4.1交叉编译器编译busybox-1.20.2

[4]BUSYBOX编译错误及解决方法总结

[5]制作文件系统BusyBox的交叉编译

[6]busybox编译错误解决

[7]编译busybox的一些错误

[8]Ubuntu下为QEMU的arm平台交叉编译BusyBox

[9]交叉编译busybox

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OneSea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值