天天看点

(小寿制作)busybox-1.1.3制作根文件系统!

首先我使用的busybox是1.1.3版本! 因为这个版本有好多的有用的配置选项! 进入解压后的目录,配置Busybox

[[email protected] busybox1.1.3]$make menuconfig 配置选项

然后:

#make TARGET_ARCH=arm CROSS=arm-linux-

#make install

如果你是使用的1.4以上的版本,交叉编译同编译内核一样,需要修改Makefile中的arch=arm     CROSS_COMPILE=arm-linux-

然后#make xconfig

#make

#make install ###############################################################

 Busybox Settings >

 General Configuration >

 [*] Support for devfs

 Build Options >

 [*] Build BusyBox as a static binary (no shared libs)

 [*] Do you want to build BusyBox with a Cross Compiler?

 (/usr/local/arm/3.4.1/bin/arm-linux-)

 Cross Compiler prefix

 Init Utilities >

 [*] init

 [*] Support reading an inittab file

 Shells >

 Choose your default shell (ash) >

[*] ash

###################################################################################

另外,按照他的这种方法做出来的文件系统,运行的时候 shell 并不好有,没有历史记录、自动补全、删除字符的功能,下面介绍如何为它添加这些功能:

               Shells --->

---   Bourne Shell Options                                            

   [ ]   Hide message on interactive shell startup                    

   [ ]   Standalone shell                                             

   [*]   command line editing                                         

   [*]     vi-style line editing commands                            

      (15)    history size                                           

   [*]     history saving                                             

   [*]     tab completion                                             

   [*]       username completion                                     

   [ ]     Fancy shell prompts

###################################################################################  Coreutils >

[*] cp

[*] cat

[*] ls

[*] mkdir

[*] echo (basic SuSv3 version taking no options)

[*] env

[*] mv

[*] pwd

[*] rm

[*] touch

Editors >

[*] vi

Linux System Utilities >

[*] mount

[*] umount

[*] Support loopback mounts

[*] Support for the old /etc/mtab file

Networking Utilities >

##########################################################

 Linux Module Utilities  ---> 

         [*] insmod                  

        [*] rmmod                                   

         [*] lsmod                  

         [*]   lsmod pretty output for 2.6.x Linux kernels                    

         [*] modprobe                                            

        [*]   Multiple options parsing              

                     ---   Options common to multiple modutils              

         [*]   Support tainted module checking with new kernels            

        [ ]   Support version 2.2.x to 2.4.x Linux kernels    //此项一定不要选!!!

        [*]   Support version 2.6.x Linux kernels                                         ########################################################################

建立根文件系统结构

#mkdir rootfs

#cd rootfs

#mkdir bin dev etc lib proc sbin tmp usr var

#chmod 1777 tmp

#mkdir usr/bin usr/lib usr/sbin

#mkdir var/lib var/lock var/log var/run var/tmp

#chmod 1777 var/tmp

准备链接库

#cd ${OBJ_LIB}/lib (${OBJ_LIB}是交叉编译环境的目录)

#for file in libc libcrypt libdl libm /

>libpthread libresolv libutil

>do

>cp $file-*.so /home/fortis/rootfs/lib

>cp -d $file.so.[*0-9] /home/fortis/rootfs/lib

>done

#cp -d ld*.so* /home/fortis/rootfs/lib

#######################################################################

如果不知道需要哪些共享库,可以在你写好自己的程序后使用#ld hello 命令来看看需要哪些共享库然后在复制到/lib目录下面!

#######################################################################

继续阅读