linux定义根,构建linux根文件系统

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 0sysfs /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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值