[2]-使用busybox-1.17.2制作文件系统

使用busybox-1.17.2来制作文件系统

交叉编译工具:arm-linux-gcc-3.4.1 (已经导入到PATH环境变量中)

以下是具体步骤:

1.从busybox官方网站上下载busybox1.17.2

2.配置Busybox

   2-1.修改Makefile文件

          进入busybox目录

          将ARCH  ?= $(SUBARCH) 修改为

              ARCH   ?= arm

           将CROSS_COMPILE ?=   修改为

               CROSS_COMPILE ?= arm-linux-

   2-2,make menuconfig配置busybox选项,如下图所示:

       [2]-使用busybox-1.17.2制作文件系统

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的条件编译,

         如下图所示:

         [2]-使用busybox-1.17.2制作文件系统

         该修改是为了解决以下错误:

          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的条件编译,

         如下图所示:
         [2]-使用busybox-1.17.2制作文件系统

         该修改是为了解决以下错误:

          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文件系统制作完成

你可能感兴趣的:([2]-使用busybox-1.17.2制作文件系统)