根文件系统(二)构建最小根文件系统

本节将构建一个最小根文件系统 /myroot:

1、仿照虚拟机上的/dev/console、/dev/null创建设备节点

创建目录:

mkdir /myroot

进入目录:

cd /myroot

查看设备节点:

ls /dev/console /dev/null -l

创建设备节点:

mkdir dev
cd devsudo 
mknod console c 5 1sudo 
mknod null c 1 3

 

2、配置编译busybox(参考busybox源码中的文件INSTALL)

将busybox源码上传到虚拟机,解压:

tar xjf busybox-1.7.0.tar.bz2

设置交叉编译工具链:

vi Makefile

修改内容:

CROSS_COMPILE ?= arm-linux-

保存退出

配置:

make menuconfig

配置Tab键补全命令:

Busybox Settings-->

        Busybox Library Tuning-->

                [*] Tab completion

保存退出

 

编译:

make

安装:

make install COMFIG_PREFIX=”/myroot”

 

3、创建、填充配置文件/etc/inittab

mkdir etc
vi etc/inittab

填充内容:

console::askfirst:-bin/sh

 

4、安装一些必要的库(这里只安装C库,并且假定C库位于/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/)

mkdir lib
cp /gcc-3.4.5-glibc-2.3.6/arm-linux/lib/*.so* /myroot -d


 

5、制作映像文件

Yaffs2格式:

安装工具mkyaffs2image

tar xjf yaffs_source_util_larger_small_page_nand.tar.bz2

cd Development_util_ok/yaffs2/utils/

make 

sudo cp mkyaffs2image /usr/local/bin

sudo chmod +x /usr/local/bin/mkyaffs2image

cd -

 

使用mkyaffs2image制作yaffs2映像文件:

mkyaffs2image /myroot /myroot.yaffs2

 

jffs2格式:安装工具mkfs.jffs

tar xzf zlib-1.2.3.tar.gz

cd zlib-1.2.3

./configure --shared --prefix=/usr/

make

sudo make install

cd -

tar xjf mtd-utils-05.07.23.tar.bz2

cd mtd-utils-05.07.23/util

make

sudo make install

使用mkfs.jffs制jffs2映像文件:

myfs.jffs -n -s 2048 -e 128KiB -d /myroot -o /myroot.jffs2

-n:不在每个擦除块加上擦除标志

-s:一页的大小(这里是2048)

-e:一块的大小(这里是128KB)

-d:目录

-o:输出

如果系统挂载文件系统时所提示的格式与使用的文件系统格式不一致,可以在uboot命令行参数bootargs中加上一个选项:rootfstype=jffs2或者=yaffs2

 

 

至此一个最小根文件系统已经制作完成,为了继续完善它,可以继续以下操作:

6、

为了使用ps命令查看进程,需要挂接虚拟文件系统:

方法一:

在etc/inittab中添加一行:

::sysinit:/etc/init.d/rcS

创建rcS文件:
 

mkdir /myroot/etc/init.d

vi /myroot/etc/init.d

添加一行:

mount -t proc none /proc

保存退出

赋予可执行属性:

chmod +x /myroot/etc/init.d/rcS

 

方法二:

在etc/inittab中添加一行:

::sysinit:/etc/init.d/rcS

创建rcS文件:
 

mkdir /myroot/etc/init.d

vi /myroot/etc/init.d

添加一行:

mount -a

保存退出

赋予可执行属性:

chmod +x /myroot/etc/init.d/rcS

 

创建/myroot/etc/fstab文件

/myroot/etc/fstab

添加两行:

#device mount-point type option dump fsck order
proc /proc proc defaults 0 0

保存退出

 

 

 

7、使用mdev自动创建/dev目录下的设备节点(假定前面按照方法二操作):

在/myroot/etc/fstab文件中添加两行:

sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0

在/myroot/etc/inid.d/rcS中添加四行:

mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值