4.4【U-boot根文件系统】 挂载虚拟根文件系统

继续完善根文件系统

        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

配置成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林零七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值