创建根文件系统

一. 编译安装busybox

在busybox代码安装文档里有说明:

make menuconfig     # This creates a file called ".config"
make                # This creates the "busybox" executable
make install        # or make CONFIG_PREFIX=/path/from/root install

1. 编译busybox要注意,先要配置交叉编译环境。

如果在make menuconfig里没有地方设置的话,可以修改Makefile原文件, 加上arm-linux-前缀。

CROSS_COMPILE   ?= arm-linux-
2. 最后一步安装时,注意要加上你要安装的路径,如果不加就会被安装到系统里去。

make CONFIG_PREFIX=/workspace/nfs_root install
安装完后会生成以下一些东西:

/bin
/sbin
/usr

linuxrc

二. 安装glibc库

因为在交叉编译器里已经包含glibc库了,我们直接把它全部拷贝进来。
cd ../gcc-3.4.5-glibc-2.3.6/arm-linux/lib$
cp *.so /home/s3c/workspace/nfs_root/lib -d

三. 构建根文件系统

1. 先创建终端

mkdir dev
cd dev/

mknod console c 5 1 //创建终端设备,c 为字符设备,主设备号为5,次设备号为1
mknod null c 1 3

这样就创建了dev/console 和 dev/null。

2. 构建 etc目录

2.1 创建 etc/inittab 文件

inittab格式如下:

#         ::sysinit:/etc/init.d/rcS
#         ::askfirst:/bin/sh
#         ::ctrlaltdel:/sbin/reboot
#         ::shutdown:/sbin/swapoff -a
#         ::shutdown:/bin/umount -a -r
#         ::restart:/sbin/init

22 创建 etc/init.d/rcS 文件

在rcS里可以加上自己想要启动的脚本。

2.3 创建 etc/fstab 文件

fstab格式如下:

proc		/proc	proc	defaults    0	0

一般 mount -a 会读取fstab文件。

3. 构建dev目录

3.1 使用 mdev 创建设备文件

mdev 是 udev 的简化版,在 busybox 里有说明和使用:

# 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
3.2 静态创建调备文件

也就是手动创建。当然也可以从其它系统中拷贝过来,因为linux下都差不多。

4. 构建其它目录

mkdir proc mnt tmp sys root
手动创建这些目录。这样一个小的根文件系统就创建完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值