构建linux根文件系统

来源:本站
导读:目前正在解读《构建linux根文件系统》的相关信息,《构建linux根文件系统》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《构建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 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

提醒:《构建linux根文件系统》最后刷新时间 2024-03-14 01:06:31,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《构建linux根文件系统》该内容的真实性请自行鉴别。