Chinaunix首页 | 论坛 | 博客
  • 博客访问: 849672
  • 博文数量: 190
  • 博客积分: 7021
  • 博客等级: 少将
  • 技术积分: 1752
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-17 19:26
文章分类

全部博文(190)

文章存档

2014年(9)

2011年(32)

2010年(149)

我的朋友

分类: LINUX

2010-05-31 12:24:50

busybox简介

busybox是一个集成了一百多个最常用linux命令和工具的
,他甚至还集成了一个http和一个telnet,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分立式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影,安装linux的时候案ctrl+alt+F2就能得到一个控制台,而这个控制台中的所有命令都是指向busybox的链接.
Busybox的小身材大作用的特性,给制作一张软盘的linux带来了及大方便.

2,busybox的用法

可以这样用busybox
#busybox ls
他的功能就相当运行ls命令
最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能.
#ln -s busybox ls
#ln -s busybox rm
#ln -s busybox mkdir

然后分别运行这三个链接:
#./ls
#./rm
#./mkdir

就可以分别完成了ls rm 和mkdir命令的功能.虽然他们都指向同一个可执行程序busybox
但是只要链接名不同,完成的功能就不同,busybox就是这么的神奇.
很多linux网站都提供busybox的源代码
.目前版本是busybo.0正式版.

3,配置busybox

busybox的配置程序和linux内核菜单配置方式简直一模一样.熟悉用make menuconfig方式配置linux内核的朋友很容易上手.

#cp busybox-1.00.tar.gz /babylinux
#cd /babylinux
#tar xvfz busybox-1.00.tar.gz
#cd busybox-1.00
#make menuconfig

下面是需要编译进busybox的功能选项,其他的可以根据需要自选,但是同样不要太贪心.
General Configuration应该选的选项
Show verbose
t use messages
Runtime SUID/SGID configuration via /etc/busybox.conf

Build Options
Build BusyBox as a static binary (no shared libs)
这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作.

Installation Options
Don't use /usr
这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接.

其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了.

配置好后退出并保存.

编译并安装busybox

#make
#make install

编译好后在busybox目录下生成子目录_install,里面的内容:
drwxr-xr-x 2 root root 4096 11月 24 15:28 bin
lrwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin
其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.
 
编译Busybox
         将文件busybox-1.00.tar.gz拷贝到Linux服务的/home/work目录,执行如下命令解压文件:
                   #tar xzvf AT91RM9200-busybox-1.00.tar.gz
        当文件解压完成以后,会自动生成busybox-1.00目录,进入该目录,并执行如下命令进行编译:
                   #make clean ;清除旧的编译文件
                   #make menuconfig
         执行该命令以后,进入配置主菜单。
         首先进入菜单Build Options,选择“Do you want to build BusyBox with a Cross Compiler?”选项,并在“Cross Compiler prefix”栏中输入交叉编译器安装的位置,如/usr/local/arm/2.95.3/bin/arm-linux-,注意最后是arm-linux-,不能加其他字符或空格。
          然后在“Any extra CFLAGS options for the compiler”栏中输入需要匹配的arm-linux系统源码目录中头文件所在的位置,如“/home/works/linux-2.4.27/include”,然后退出返回主菜单。
          再根据系统需要,进入所需命令工具所在的子菜单中,选择相应的命令项。如需要“insmod”命令,就在“Linux Module Utilities”子菜单中选中。
          选择完成所需的全部命令后,保存配置文件退出,并执行如下命令进行编译:
                   #make
                   #make install
          当命令执行完毕以后,会在当前目录中会生成“_install”目录,进入该目录,可以看到其中有四个子目录:bin、linuxrc、sbin和usr。
         2. 将编译结果加入ramdisk
         在/home/work目录下新建一个临时目录tmp,执行如下命令,将原有的ramdisk.gz解压并挂载到该目录下:
                   # gunzip ramdisk.gz
                   # mkdir tmp
                   # mount -o loop ramdisk tmp
        然后执行如下命令,将_isntall目录中的文件拷贝到tmp目录,覆盖ramdisk中的原有文件:
                    # cp  -af  /home/work/busybox-1.00/_install/* /home/work/tmp
        拷贝完毕以后,使用系统提供的映像文件制作工具mkfs.jffs2,生成jffs2映像文件,命令如下:
                  # ./mkfs.jffs2  -d  ./tmp  -o  jffs2.img
然后执行如下命令,卸载并压缩ramdisk.gz: 
                 # umount /home/work/tmp
                 # gzip ramdisk
当以上操作全部完成以后,即可生成新的ramdisk.gz和jffs2.img文件。
注意:以上的部分操作步骤可能需要超级用户的权限。
阅读(1405) | 评论(0) | 转发(0) |
0

上一篇:linux ln命令使用

下一篇:linux mount命令使用

给主人留下些什么吧!~~