构造根文件系统

1.下载配置编译busybox

进入https://busybox.net/下载busybox 1.70.0

tar -xjf busybox-1.70.0.tar.bz2
cd busybox-1.70.0
vi Makefle
找到下面这句话:
ARCH            ?= $(SUBARCH)
CROSS_COMPILE   ?= $(CONFIG_CROSS_COMPILE:"%"=%)
改为:
ARCH            ?= arm
CROSS_COMPILE   ?= arm-linux-

执行:
make 

2.安装

 

make          //编译
mkdir   /work/nfs_root/fs_mini_mdev_new            //创建要安装的文件系统目录 
make install CONFIG_PREFIX=/work/nfs_root/fs_mini_mdev_new  //指定安装位置

3.安装glibc库

找到交叉编译位于usr/local/arm/4.3.2位置,

通过find -name lib,找到有以下几个lib

 

由于ARM9属于ARMv4T架构,所以拷贝上面两条红线处的lib到fs_mini_mdev_new里

mkdir /work/nfs_root/fs_mini_mdev_new/lib
mkdir /work/nfs_root/fs_mini_mdev_new/usr/lib -p  
cp arm-none-linux-gnueabi/libc/armv4t/usr/lib/*.so* /work/nfs_root/fs_mini_mdev_new/usr/lib -d           /* -d:保持链接 */
cp arm-none-linux-gnueabi/libc/armv4t/lib/*.so* /work/nfs_root/fs_mini_mdev_new/lib -d

4.构造etc目录

在etc目录下,需要构造以下3个文件

  • etc/inittab     : init进程会根据inittab文件里,来创建其它子进程,比如
  • etc/init.d/rcS:脚本文件,里面用来执行命令,比如设置网卡,使用mount -a来装载/etc/fstab中的文件系统
  • etc/fstab      :里面保存要被挂载的哪个文件系统,比如proc、sysfs、tmpfs、devpts等系统

1)构造/etc/inittab

cd  cd /work/nfs_root/fs_mini_mdev_new/
mkdir etc/
vi etc/inittab

添加以下几句:

::sysinit:/etc/init.d/rcS    //内核启动时,执行/etc/init.d/rcS
console::askfirst:-/bin/sh  //启动console对应的-/bin/sh进程之前,等待用户按enter键
::ctrlaltdel:/sbin/reboot   //按下ctrl+alt+del组合键时,启动reboot命令
::shutdown:/bin/umount -a -r  //系统关机前,卸载所有文件系统

2)构造etc/init.d/rcS

mkdir etc/init.d/   
vi  etc/init.d/rcS

添加以下几句:

mount -a               //装载/etc/fstab中的文件系统
echo /sbin/mdev > /proc/sys/kernel/hotplug  //使/sbin/medv指向hotplug,从而支持热拔插
mdev -s                //使用medv命令自动创建/dev下的所有设备节点

 

并给rcS加上可执行权限:

 

sudo chmod +x etc/init.d/rcS               //使脚本rcS能够执行命令

 

3)构造etc/fstab

PS:使用mdev命令需要sysfs、tmpfs、devpts这3个文件系统的支持

mkdir proc/                            //创建proc要挂载的目录
mkdir sys/                       //创建sysfs要挂载的目录,
mkdir dev/pts -p              //创建devpts要挂载的目录
vi  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
devpts         /dev/pts     devpts   defaults      0     0

5.构造其它文件/目录

1)创建终端文件(dev/console和dev/null)

sudo mknod –m 660  dev/console c 5 1
sudo mknod –m 660 dev/null c 1 3 

2)创建其它目录

mkdir mnt tmp root

6.制作jffs2映像文件

提前安装好mkfs.jffs2工具,使用mkfs.jffs2命令:

在放fs_mini_mdev_new文件夹的目录下:
mkfs.jffs2 -n  -s 2048  -e 128KiB  -d fs_mini_mdev_new  -o fs_mini_mdev_new.jffs2
//-n:表示每块不添加清除标记,-s:NAND的每页为2k,-e: NAND的每块为128kb
//-d fs_mini_mdev_new:表示要制作的根文件系统文件
//-o fs_mini_mdev_new.jffs2:表示生成的映像文件

7.制作yaffs2映像文件

mkyaffs2image   fs_mini_mdev_new    fs_mini_mdev_new.yaffs2

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值