[2]-使用busybox-1.17.2製做文件系統

使用busybox-1.17.2來製做文件系統linux

交叉編譯工具:arm-linux-gcc-3.4.1 (已經導入到PATH環境變量中)工具

如下是具體步驟:oop

1.從busybox官方網站上下載busybox1.17.2網站

2.配置Busyboxthis

   2-1.修改Makefile文件spa

          進入busybox目錄ip

          將ARCH  ?= $(SUBARCH) 修改成it

              ARCH   ?= armio

           將CROSS_COMPILE ?=   修改成console

               CROSS_COMPILE ?= arm-linux-

   2-2,make menuconfig配置busybox選項,以下圖所示:

       

3.編譯前須要作的修改

  3-1.在目錄busybox-1.17.2下修改networking/interface.c文件,加入宏定義: 

         #define ARPHRD_INFINIBAND 32 

         該修改是爲了解決在編譯時出現的如下錯誤:

         networking/interface.c:807: error: `ARPHRD_INFINIBAND' undeclared here (not in a function)

   3-2.在目錄busybox-1.17.2下修改networking/libiproute/ipaddress.c文件,加入對IFLA_OPERSTATE的條件編譯,

         以下圖所示:

         

         該修改是爲了解決如下錯誤:

          networking/libiproute/ipaddress.c:167: error: `IFLA_OPERSTATE' undeclared (first use in this function)

    3-3..在目錄busybox-1.17.2下修改networking/libiproute/iplink.c文件,加入對IFLA_LINKINFO的條件編譯,

         以下圖所示:
         

         該修改是爲了解決如下錯誤:

          networking/libiproute/iplink.c:...:error: `IFLA_LINKINFO' undeclared (first use in this function)

4.使用命令make install 命令進行編譯和安裝,完成後可在./_install目錄下找到咱們須要的全部工具包

5. 如今開始製做文件系統,首先建立主目錄rmdk,而後再rmdk目錄下建立如下子目錄:

    bin sbin dev etc lib home root usr var proc mnt tmp sys 

6.建立並編輯/etc/fstab文件,內容可以下:

  proc     /proc    proc    defaults 0 0  (最後那個0用於標記是否進行修復自檢)

  tmpfs    /tmp     tmpfs   defaults 0 0 

  sysfs    /sys     sysfs   defaults 0 0

  tmpfs    /dev     tmpfs   defaults 0 0 

7.建立並編輯/etc/initab文件,內容可以下(可根據本身須要編寫):

  ::sysinit:/etc/init.d/rcS

  ::askfirst:-/bin/sh

  ::ctrlaltdel:/sbin/reboot

  ::shutdown:/bin/umount -a -r

  ::once:/usr/etc/rc.local 

8.建立並編輯/etc/init.d/rcS文件,內容可以下:

  mount -t tmpfs mdev /dev

  mkdir /dev/pts

  mount -t devpts devpts /dev/pts

  mount -t sysfs  sysfs  /sys

  mount -a

  echo /sbin/mdev > /proc/sys/kernel/hotplug

  mdev -s

  將rcS文件加上可執行權限,使用命令: chmod 777 rcS

9.建立基本的設備節點:

  #mknod /dev/console c 5 1

  #mknod /dev/null    c 1 3

  #mknod /dev/mem     c 1 1

10.將busybox-1.17.2/_install目錄下bin和sbin的文件拷貝到rmdk/bin和rmdk/sbin目錄中。

11.在rmdk目錄下建立指向rmdk/bin/busybox的符號連接linuxrc,命令以下:

     #ln -s bin/busybox  ./linuxrc

12.使用dd命令製做16M大小的ramdisk.img文件,具體命令是:      #dd  if=/dev/zero of=ramdisk.img bs=1M count=16      #mke2fs  -F ramdisk.img      #mkdir tmpmnt      #mount -o loop ramdisk.img tmpmnt      #cp -a rmdk tmpmnt      #umount tmpmnt      #rm -rf tmpmnt 至此,ramdisk.img文件系統製做完成
相關文章
相關標籤/搜索