Chinaunix首页 | 论坛 | 博客
  • 博客访问: 175473
  • 博文数量: 35
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 207
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-01 15:50
文章分类
文章存档

2016年(1)

2015年(5)

2014年(29)

分类: LINUX

2014-03-01 16:18:03

原文地址:构建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 0
tmpfs
/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





阅读(1663) | 评论(0) | 转发(0) |
0

上一篇:linux修改提示符

下一篇:u-boot启动流程

给主人留下些什么吧!~~