Tiny6410基于linux2.6.36内核通过NFS启动根文件系统总结


Tiny6410基于linux2.6.36内核通过NFS启动根文件系统总结(成功挂载nfs根文件系统)

1. 从 NandFlash 启动 Tiny6410,然后修改UBoot 的环境变量 bootargs(就是这里了,可以解决一开始文章的 not responding的问题)!

操作命令:

setenv serverip console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.100:/opt/FriendlyARM/mini6410/linux/rootfs,proto=tcp,nfsvers=3,nolock ip=192.168.1.70:192.168.1.100:192.168.1.100:255.255.255.0:linux.arm9.net:eth0:off

解释一下其中的意思了:

console=ttySAC0                     ttySAC0 作为控制台

root=dev/nfs                              固定格式,表示内核采用nfs 方式起根文件系统

nfsroot=192.168.1.100:/opt/FriendlyARM/mini6410/linux/rootfs,

                                                    表示的是 nfs 起的根文件系统位于 nfs 服务器 /opt/FriendlyARM/mini6410/linux/rootfs,目录下

proto=tcp,nfsvers=3,nolock    如果不加这条语句会造成上面的 nfs: server192.168.1.100 notresponding, still trying 这样的错误!

原因:NFS的默认传输协议是UDP,而PC机与嵌入式系统通过UPD交互时就会出现严重的网卡丢包现象(这个也只是暂时的分析)!貌似好多人都说是网卡移植出现的问题!具体我也就不知道了,反正写上这个,然后就没有问题了

 ip=192.168.1.70:192.168.1.100:192.168.1.100:255.255.255.0:linux.arm9.net:eth0:off

                              这句话的格式是:ip=IP1:IP0:IP2:IP3:nameofyoulike:eth0:off

                              第一项(IP1)是目标板的临时IP(注意不要和局域网内其它的IP有冲突)

                              第二项(IP0)是我的虚拟机的IP

                              第三项(IP2)是目标板上网管(GW)的设置,这个参数设置跟虚拟机网管一致

                              第四项(IP3)是子网掩码

                              第五项(yourname)是开发板的名字(随便啦)

                              第六项(eth0)是网卡设备的名字

操作过程如下图所示:

1) 设置主机的IP地址和bootargs环境变量

 

执行结果


2. 通过 tftp 下载位于虚拟机 /tftpboot 目录下的uImage 文件到 0xc0008000 处!

执行结果


3. bootm

4. 等待查看,按提示按下Enter!

相关内容