提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
上一期博客我们构建了根文件系统,这一期我们来初步测试一下。
一、修改环境变量-为后边测试做准备
接下来我们使用测试一下前面创建好的根文件系统 rootfs,测试方法就是使用 NFS 挂载,uboot 里面的 bootargs 环境变量会设置"root"的值,所以我们将 root 的值改为 NFS 挂载即可。格式如下:

<server-ip>:服务器 IP 地址,也就是存放根文件系统主机的 IP 地址,那就是 Ubuntu 的 IP
地址,比如我的 Ubuntu 主机 IP 地址为 192.168.142.217(ens33)。
**<root-dir>****:**根文件系统的存放路径,比如我的就是/home/duan/linux/nfs/rootfs。
<nfs-options>:NFS 的其他可选选项,一般不设置。
**<client-ip>****:**客户端 IP 地址,也就是我们开发板的 IP 地址,Linux 内核启动以后就会使用 此 IP 地址来配置开发板。此地址一定要和 Ubuntu 主机在同一个网段内(前三位要和Ubuntu一样),并且没有被其他的设备使用,在 Ubuntu 中使用 ping 命令 ping 一下就知道要设置的 IP 地址有没有被使用,如果不能ping 通就说明没有被使用,那么就可以设置为开发板的 IP 地址,比如我就可以设置为192.168.142.220。
**<server-ip>****:**服务器 IP 地址,前面已经说了。
**<gw-ip>****:**网关地址,我的就是192.168.142.1(前三位要和Ubuntu一样,第四个随机设)。
<netmask>:子网掩码,我的就是 255.255.255.0。
<hostname>:客户机的名字,一般不设置,此值可以空着。
**<device>****:**设备名,也就是网卡名,一般是 eth0,eth1....,正点原子的 I.MX6U-ALPHA 开
发板的 ENET2 为 eth0,ENET1 为 eth1。如果你的电脑只有一个网卡,那么基本只能是 eth0。
这里我们使用 ENET2,所以网卡名就是 eth0。
**<autoconf>****:**自动配置,一般不使用,所以设置为 off。
**<dns0-ip>****:**DNS0 服务器 IP 地址,不使用。
**<dns1-ip>****:**DNS1 服务器 IP 地址,不使用。
根据上面的格式 bootargs 环境变量的 root 值如下:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.142.217:
/home/duan/linux/nfs/rootfs,proto=tcp rw ip=192.168.142.220:192.168.142.217:192.168.142.1:
255.255.255.0::eth0:off' //设置 bootargs
saveenv //保存环境变量
注意:此时我们这里加了rw,"proto=tcp"表示使用 TCP 协议,"rw"表示 nfs 挂载的根文件系统为可读可写。
二、初步测试进入根文件系统
设置好以后使用" boot "命令启动 Linux 内核,结果如图 38.3.1 所示:

从上图中 可以看出,我们进入了根文件系统,说明我们的根文件系统工作了!如果没有 启动进入根文件系统的话可以重启一次开发板试试。我们可以输入"ls "命令测试一下,结果如下图 所示:

可以看出 ls 命令工作正常!那么是不是说明我们的 rootfs 就制作成功了呢?大家注意,在进入根文件系统的时候会有下面这一行错误提示:
can't run '/etc/init.d/rcS': No such file or directory
提示很简单,说是无法运行"/etc/init.d/rcS"这个文件,因为这个文件不存在。如下图所示:

说明还是缺东西,得继续完善。
总结
初步测试了BusyBox构建的根文件系统,发现还是缺东西。 下一期会继续完善