继续完善根文件系统
cd first_fs/
创建 proc目录:mkdir proc
挂载虚拟根文件系统
加一个配置文件:vi etc/inittab
console::askfirst:-/bin/sh //之前写的
::sysinit:/etc/init.d/rcS //现在加入的脚本
创建一个脚本文件:mkdir etc/init.d
vi etc/init.d/rcS
在里面加入:mount -t proc none /proc
退出编辑模式
加上可编辑的属性:chmod +x etc/init.d/rcS //文件一启动就会执行这个程序
mount -t proc none /proc也可以更改使用mount -a 它依赖于etc/fstab
在\busybox-1.7.0文件下搜索fstab,得到下面内容
proc /proc proc defaults 0 0
分析:
device :挂载哪个设备,可以随便写
mount-point:挂载到哪里去
type:什么类型的文件系统
options:参数
自己手写一个fstab:vi etc/fstab
proc /proc proc defaluts 0 0
mount -a 将会读取etc/fstab,根据指示去挂载根文件系统
完整步骤:
mkdir etc/init.d
vi etc/init.d/rcS
mount -a
vi etc/fstab
proc /proc proc defaluts 0 0
mkyaffs2image first_fs first_fs.yaffs2
编译完成后将first_fs.yaffs2拷贝到电脑端
reboot重启开发板系统(断电或者拔掉串口线)
在界面里输入y,使用DNW把文件传输给开发板
使用/dev/手动创建很麻烦,可以使用udev自动创建/dev/目录下面的设备节点
mdev是udev的简化版本
在busybox-1.7.0文件下搜索mdev
打开mdev.txt,里面就会有详细的操作步骤
由此可得我们还需要创建一个sys目录:在first_fs下创建sys目录:mkdir sys
修改etc/fstab:vi etc/fstab
vi etc/fstab
sysfs /sys sysfs defaults 0 0
tmpfs /dev temps defaults 0 0
以上为[1]和[4]两个步骤
修改etc/init.d/rcS
vi etc/init.d/rcS
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /bin/mdev > /proc/sys/kernel/hotplug
mdev -s //事先把内核原有的驱动创建出来
cd .. 退到nfs_root文件下
mkyaffs2image first_fs first_fs.yaffs2
重复上面烧写步骤
2、制作jfss2映像文件
--->安装
cd work/GUI/xwindow/X/deps
tar xzf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --shared -prefix=/usr
make
sudo make install //如果是交叉编译不要使用这个,会出错
----> 编译mkfs.jffs2
cd /work/tools
tar xjf mtd-utils-05.07.23.tar.bz2
cd mtd-utils-05.07.23/util
make
sudo make install
----->制作/烧写jffs2
cd /work/nfs_root
mkfs.jffs2 -n -s 2048 -e 128Kib -d fs_mini -o first.jffs2
-s:表示一页的大小
-e: 可擦除块的大小
-d:目标目录
-o:输出目录
--->将制作好的first.jffs2系统拷贝到电脑中
开发板断电,上电,选择j
使用DNW发送first.jffs2给开发板
然后再界面会显示一句话:VFS:Mounted root(yaffs filesystem)
说明文件还是在yaffs上挂接,显然不对
在当前界面使用命令行参数修改
修改bootargs:set bootargs noinitrd root=/dev/mtdblock3 rootfstype = jffs2 init=/linuxrc console=ttySAC0
save
boot
3、网络文件系统:NFS(无需每次烧写)
文件放在服务器上,内核启动的时候去调用服务器读取目录,当做根文件系统
在串口界面输入:ifconfig eth0 up
ifconfig
接上网线,配置IP:ifconfig eth0 192.168.1.11(只要在同一个网段就行)
ping一下服务器:ping 192.168.1.19
a、从flash上启动根文件系统,再用命令挂接NFS
1)服务器允许目录可被别人挂接---->nfs服务(配置文件:/etc/exports)
2)单板去挂接
1)
cd first_fs/
设置/work/nfs_root/first_fs这个文件被别人挂接
sudo vi /etc/exports
/work/nfs_root/first_fs *(rw_sync_no_root_squash)
重启nfs服务:
sudo /etc/init.d/nfs-kernel-server res restart
在PC服务器测试一下
sudo mount -t nfs 192.168.1.19:/work/nfs_root/first_fs /mnt
2)
到串口界面去挂载
mkdir /mnt
mount -t nfs -o nolock 192.168.1.19:/work/nfs_root/first_fs /mnt
ls
b、直接从命令行启动
重启开发板:reboot
查看命令函参数: print
会看到我们刚刚更改的:root=/dev/mtdblock3 rootfstype = jffs2 init=/linuxrc console=ttySAC0
从NFS启动的参数:1、服务器的IP、目录
2、设置自己的IP
打开linux-2.6.22.6\Documentation下的nfsroot.txt
会看到:
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
将我们刚刚查到的按照这个格式更改为
noinitrd root=/dev/nfs nfsroot= 192.168.1.19:/work/nfs_root/first_fs ip=192.168.1.11:192.168.1.19:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
打开串口界面,输入
set bootargs noinitrd root=/dev/nfs nfsroot= 192.168.1.19:/work/nfs_root/first_fs ip=192.168.1.11:192.168.1.19:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
配置成功