创建最小根文件系统

创建最小根文件系统:
 (1)/dev/console  /dev/null
 (2)/init=>busybox (/sbin/init 是到busybox的链接)

 (3)/etc/inittab  配置文件
 (4)配置文件指定的应用程序
 (5)C库

编译busybox(命令工具集ls、cp……):
make menuconfig
配置完后 make
mkdir /work/nfs_root/second_fs
make CONFIG_PREFIX=/work/nfs_root/second_fs install
/work/nfs_root/second_fs文件夹里将生成:bin sbin linuxrc usr 目录,bin linuxrc 都是指向busybox的链接
(直接make install 会安装到宿主机上,把原来的覆盖掉)

创建设备文件 :
先查看pc(sever)机上这两个设备文件 ls /dev/console /dev/null -l
mkdir dev
cd dev/
sudo mknod console c(字符设备) 5(主设备号) 1(次设备号)
sudo mknod null  c(字符设备) 1(主设备号) 3(次设备号)

设置配置项文件etc/inittab:
创建etc/inittab
mkdir etc
vi  etc/inittab
添加 :console::askfirst:-/bin/sh

inittab格式:
<id>:<runlevels>:<action>:<process>           
<id> => /dev/id(加一个/dev前缀),用作终端:stdin,stdout,stderr
<runlevels> 可以完全忽略
<action> 指示何时执行
<process> 应用程序或脚本

创建C库:
mkdir lib
cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
cp *.so* /work/nfs_root/second_fs/lib -d(如果原来是链接文件,则还保持链接文件)

制作映像文件:
cd /work/system
tar xjf yaffs_source_util_larger_small_page_nand.tar.bz2
解压后生成文件Development_util_ok
cd Development_util_ok
cd yaffs2
cd utils
执行make 生成制作映像文件工具
执行ls -l 可查看mkyaffs2image
把mkyaffs2image 拷到系统目录/usr/local/bin   sudo cp mkyaffs2image /usr/local/bin
增加mkyaffs2image的可执行权限sudo chmod +x /usr/local/bin/mkyaffs2image
cd /work/nfs_root
制作文件系统映像:mkyaffs2image filesystem filesystem.yaffs2
把映像文件filesystem.yaffs2下载到开发板


完善:(当运行根文件系统时,执行ps 显示:ps:can't open 'proc':no such file or directory)
cd /work/nfs_root
mkdir proc
内核提供一个虚拟文件系统/proc
手工挂载:mount -t proc none /proc 即可运行ps 命令
不想手工挂载,则需要增加一个配置项::sysinit:/etc/init.d/rcS(配置项文件etc/inittab)
创建脚本程序:(etc/init.d/rcS是一个脚本程序,可以在里面添加想自动执行的命令)
mkdir etc/init.d
vi etc/init.d/rcS 添加挂载命令mount -t proc none /proc
然后增加可执行属性:chmod +x etc/init.d/rcS

另一种方法:
etc/init.d/rcS里添加mount -a
使用mount -a (也就是读/etc/fstab 配置文件,创建该文件,根据里面的内容来挂载跟文件系统)
device mount-point type   operation   dump  fask  oder
proc    /proc      proc   defaults     0      0
sysfs  /sys     sysfs defaults    0   0
tmpfs   /dev       tmpfs  defaults     0      0
重新制作文件系统映像:mkyaffs2image filesystem filesystem.yaffs2


udev机制=> 自动创建/dev/目录下的设备节点
mdev 是udev的简化版本
使用mdev的命令如下:(在etc/init.d/rcS里加入这几行)
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s(将现有的设备驱动都创建出来)
 
 
NFS
挂接NFS:(1)服务器“允许”那个目录可被挂接,nfs服务,它的配置文件/etc/exports,在这个配置文件里面定义这个目录就可以了
     (2)单板去挂接
sudo vi /etc/exports 添加
/work/nfs_root/filesystem  *(rw,sync,no_root_squash)
然后重启nfs服务:sudo /etc/init.d/nfs-kernel-server restart

试验挂载,sudo mount -t nfs serverip:/work/nfs_root/first_fs(文件系统所在目录) /mnt
单板挂载:
mkdir /mnt
sudo mount -t nfs -o nolock serverip:/work/nfs_root/first_fs /mnt

直接从NFS启动:set bootargs root=dev/nfs nfsroot=serverip:/...(文件系统所在目录)/ init=/linuxrc console=ttySAC0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值