Busybox移植到ARM Linux教程

BusyBox 是一个集成了一百多个常用Linux命令和工具的应用程序。它不仅包含了一些简单的命令,如 cat 、echo和ls等,而且还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet等。简单地说,BusyBox就好像是个大工具箱,集成了许多Linux常用的工具和命令。

BusyBox最初是由Bruce Perens在1996年为DebianGNU/Linux安装盘而编写的。

1 下载busybox

下载最新版本busybox源码,下载地址:http://www.busybox.net/downloads/

本文以当前编写最新版本1.22.1为例,所以下载压缩包名为:busybox-1.22.1.tar.bz2,大概2.1M大小。

2 复制并解压源码包

$ mkdir ~/busybox                      # 创建工作目录
$ cp busybox-1.22.1.tar.bz2 ~/busybox  # 复制源码包
$ cd ~/busybox/                        # 进入工作目录
$ tar -jxvf busybox-1.22.1.tar.bz2     # 解压
$ cd busybox-1.22.1/                   # 进入解压包

3 配置编译选项

(1)创建安装目录并设置环境

$ mkdir ../install                             #创建安装目录
$ export PATH=$PATH:/usr/local/arm-2010q1/bin  #交叉编译工具路径加入系统环境变量!

然后,需要调用图形界面来设置来配置编译选项,这些选项包括:

  1. 交叉编译器前缀,如:arm-none-linux-gnueabi-;
  2. 静态编译,建议使用静态编译;
  3. /usr目录,为减少复杂性,一般建议再将应用添加到到/usr目录;
  4. 安装目录,上一步的install目录,要使用绝对路径。
$ make menuconfig

(2)交叉编译器前缀

Busybox Settings ---->
  Build Options ---->
    () Cross Compiler prefix

回车,在弹出的界面中输入交叉编译工具链的前缀:

busybox-menuconfig

提示:按Ctrl + ←Backspace(退格键) 可删除已存在的内容。

(3)静态编译

Busybox Settings ---->
  Build Options ---->
    [*] Build BusyBox as a static binary (no shared libs)

(4)不安装到/usr目录

Busybox Settings --->
  General Configuration --->
    [*] Don't use /usr

(5)安装目录

Busybox Settings --->
  Installation Options ("make install" behavior) --->
    BusyBox installation prefix

回车,在弹出的界面中输入安装目录:

busybox-install-prefix

最后按【ESC】,提示保存时保存。

提示,以上(1)~(5)步骤后其实是配置了.config文件,上面的步骤也可以通过下面几个命令快速实现:

$ make defconfig            #默认配置,执行后生成.config文件,或者allyesconfig使用所有功能
$ sed -e "s:.*CONFIG_CROSS_COMPILER_PREFIX.*:CONFIG_CROSS_COMPILER_PREFIX=\"arm-none-linux-gnueabi-\":" -i .config
$ sed -e 's/.*CONFIG_STATIC.*/CONFIG_STATIC=y/' -i .config
$ sed -e 's/.*CONFIG_INSTALL_NO_USR.*/CONFIG_INSTALL_NO_USR=y/' -i .config
$ sed -e "s:.*CONFIG_PREFIX.*:CONFIG_PREFIX=\"\/home\/veryarm\/busybox\/install\":" -i .config

 4 编译安装

$ make                                  # 编译,如果是多核CPU,如四核,使用make -j4可提高编译速度
$ make install                          # 安装

5 打包复制

$ cd ../install
$ tar -cjvf busybox.tar.bz2 *

将打包后的 busybox.tar.bz2 压缩包通过U盘、FTP或者NFS等方式拷贝到目标板,并分别解压到/bin和/sbin目录。

$ cd busybox.tar.bz2 ~/
$ cd
$ tar -jxvf busybox.tar.bz2 bin -C /   # 将压缩包的bin目录解压到根目录/
$ tar -jxvf busybox.tar.bz2 sbin -C /  # 将压缩包的sbin目录解压到根目录/

解压后会自动覆盖原来的/bin和/sbin下面的busybox。

附件

已经编译好的busybox镜像下载地址:http://pan.baidu.com/s/1gdxM8Ht

猜你喜欢

转载自blog.csdn.net/qingzhuyuxian/article/details/85058380