1、编译busybox并安装;
解压busybox源码:
tar -jxvf busybox-1.22.1.tar.bz2 -C ./
配置busybox
cd busybox/busybox-1.22.1/
make menuconfig
安装busybox
mkdir ../install
make CONFIG_PREFIX=../install
2、生成根文件系统所需文件夹;
mkdir ~/rootfs
在新建的rootfs目录下生成如下所列文件夹:
/dev
/etc
/lib
/home
/root
/var
/proc
/mnt
/tmp
/sys
/sys/class
3、复制busybox安装路径下的文件
cp -Rav intall/* ~/rootfs
4、复制库文件;
cp -Rav /opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/lib/*.so* ~/rootfs/lib/
5、创建#/etc/inittab文件
在 busybox/examples/inittab的基础上修改,
::sysinit:/etc/init.d/rcS
ttyAM0::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/bin/echo "shutdown ...";/sbin/swapoff -a
6、在etc目录下穿件文件,文件内容取决于要运行的程序。这里只需要创建2个文件即可:etc/init.d/rcS、etc/fstab
6.1、创建rcS文件
ubuntu@ubuntu:~/imx283/busybox/rootfs/etc$ mkdir init.d
ubuntu@ubuntu:~/imx283/busybox/rootfs/etc$ cd init.d/
ubuntu@ubuntu:~/imx283/busybox/rootfs/etc/init.d$ ls
ubuntu@ubuntu:~/imx283/busybox/rootfs/etc/init.d$ ls
ubuntu@ubuntu:~/imx283/busybox/rootfs/etc/init.d$ vim rcS
ifconfig eth0 172.22.136.38
mount -a
ubuntu@ubuntu:~/imx283/busybox/rootfs/etc/init.d$ chmod +x rcS
6.2、创建etc/fstab,来定义文件系统的“静态信息”,这些信息来控制mount的行为
ubuntu@ubuntu:~/imx283/busybox/rootfs/etc$ vim fstab
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
7、使用mdev创建设备文件
7.1、mdev的用法可以参考busybox-1.9.2/docs/mdev.txt,它的两个用途:初始化/dev目录、动态更新。
以下为摘取部分关于mdev的命令:
Here's a typical code snippet from the init script:
[1] mount -t sysfs sysfs /sys
[2] echo /bin/mdev > /proc/sys/kernel/hotplug
[3] mdev -s
Of course, a more "full" setup would entail executing this before the previous
code snippet:
[4] mount -t tmpfs mdev /dev
[5] mkdir /dev/pts
[6] mount -t devpts devpts /dev/pts
7.2、要在内核启动时,自动运行mdev,这需要修改etc/fstab、etc/init.d/rcS加入要自动运行的命令,
(1)etc/fstab,红字为新增的
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0tmpfs
/dev tmpfs defaults 0 0
(2)etc/init.d/rcS,红字为新增的
#!/bin/sh
ifconfig eth0 172.22.136.38
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
8、mdev是通过init进程来启动的,在使用mdev构造/dev目录之前,init进程至少要用到设备文件/dev/console、/dev/null,所以接着建立这两个设备文件
ubuntu@ubuntu:~/imx283/busybox/rootfs$ cd dev/
ubuntu@ubuntu:~/imx283/busybox/rootfs/dev$ sudo mknod console c 5 1
[sudo] password for ubuntu:
ubuntu@ubuntu:~/imx283/busybox/rootfs/dev$ ls
console
ubuntu@ubuntu:~/imx283/busybox/rootfs/dev$ sudo mknod null c 1 3
ubuntu@ubuntu:~/imx283/busybox/rootfs/dev$ ls
console null
至此~/rootfs/目录下就是一个非常小的根文件系统。后面我们要把它烧入开发板,还要将它制作成一个映象文件。
http://www.cnblogs.com/huanghuang/archive/2011/09/19/2181852.html
阅读(2629) | 评论(0) | 转发(1) |