用busybox构建根文件系统

一、静态编译busybox

 

1、创建根文件系统的目录

mkdir rootfs

cd rootfs

mkdir bin dev etc lib proc sbin sys mnt usr  var

mkdir 1777 tmp  (我变更了/tmp目录的使用权,让它开启sticky位。为/tmp目录的使用权开启此位,将可保/tmp目录下所建立的文件,只有建立它的用户才有权删除)

mkdir usr/bin usr/lib usr/sbin lib/modules

2、创建设备文件

cd dev/

mknod -m 666 console c 5 1

mknod -m 666 null c 1 3

3、安装/etc

tar etc.tar.gz -C /xxx/rootfs

目的:使在etc目录下产生四个文件

Cd dev/

Mknod -m 666 console c 5 1

Mknod -m 666 null c 1 3

Cd ..

内核在引导时设备节点console,null必须存在

 

4make menuconfig如果编译错误,就yum install ncurses-dev

5、配置busybox:

1、busybox setting -> build options 选中静态编译:Build busybox as a static binary

                                          installation options ->选中“do not use /usr”,选中该选项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统

 

6、make

     make CONFIG_PREFIX=/home/flinux/rootfs/rootfs install /home/flinux/rootfs/rootfs是安装目录

 

成功!

 

二、动态编译busybox

 

1、创建根文件系统的目录

mkdir rootfs

cd rootfs

mkdir bin dev etc lib proc sbin sys mnt usr tmp var

mkdir usr/bin usr/lib usr/sbin lib/modules

 

2、make menuconfig

配置busybox:

1、busybox setting -> build options 选中静态编译:Build busybox as a static binary

                                          installation options ->选中“do not use /usr”,选中该选项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统

 

2、make make CONFIG_PREFIX=/home/flinux/rootfs/rootfs install

 

3、安装arm-linux-gcc 的lib动态库

Mkdir -p /nfsroot/rootfs/lib

Cp  /usr/local/arm/4.4.1/arm-linux*/libc/lib/*.so* /nfsroot/rootfs/lib -d

 

4、构建根文件系统

1、构建etc目录

1、创建etc /inittab:   

     #/etc/inittab

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

    ttySAC0::askfirst:-/bin/sh

    ::ctrlaltdel:/sbin/reboot

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

 

2、创建etc/init.d/rcS

#!/bin/sh

ifconfig eth0 192.168.1.17

mount –a

修改rcS的属性:

Chmod +x etc/init.d/rcS

3、创建etc/fstab

文 件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文 件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、mount、umount的等命令都利用该程序。

#device     mount-point    type options           dump fsck   order

proc        /proc      proc   defaults           0    0

tmpfs   /tmp      tmpfs   defaults       0  0

 

2、构建dev目录

      1、静态创建设备文件

       2、使用mdev创建设备文件

             Console  mtdblock0  mtdblock1  mtdblock2  null  ttySAC0

      用这样的命令建立:

            sudo mknod console c 5 1

            sudo mknod null c 1 3

 

3、制作/使用yaffs文件系统映像文件

你可能感兴趣的:(用busybox构建根文件系统)