嵌入式爱好者

MX6UL_linux4.1.15nfs挂载报连接不上服务器网络

2022-3-25 09:13| 发布者: xhh| 查看: 473| 评论: 0

类目: I.MX6系列产品  >  Linux     文档编号: 614

网络启动

setenv ethaddr 22:22:22:22:22:0E

setenv ipaddr 172.16.0.93

setenv serverip 172.16.0.92

setenv image zImage

setenv fdt_file imx6ul-14x14-evk-c-emmc.dtb

setenv netargs setenv bootargs console=ttymxc0,115200 cma=320M root=/dev/nfs rw ip=172.16.0.93:172.16.0.92:172.16.0.1:255.255.255.0::eth0:off nfsroot=172.16.0.92:/nfs_rootfs,v3,tcp

setenv netboot 'run netargs; tftpboot ${loadaddr} ${image}; tftpboot ${fdt_addr} ${fdt_file}; bootz ${loadaddr} - ${fdt_addr}'

run netboot

按照此步骤可以正常下载内核设备树镜像,也可正常挂载nfs系统

正常挂载nfs文件系统的打印如下

可以看到挂载的文件系统正常启动,但是启动到这个位置会卡住,过一会儿会报错连接上服务端IP(也就是虚拟机)

1.    怀疑IP发生改变,但是不理解这种怀疑有什么依据,查找nfs挂载原理

原理如下:

boot 中设置了 bootargs 参数,例如:
  setenv bootargs console=ttymxc0,115200 cma=320M root=/dev/nfs rw ip=172.16.0.93:172.16.0.92:172.16.0.1:255.255.255.0::eth0:off nfsroot=172.16.0.92:/nfs_rootfs,v3,tcp
  
在这里我们指定了开发板ip,主机(虚拟机)ip等信息,在uboot启动内核时会将这些信息传递给内核,内核在启动过程中会根据这些参数来挂载网络根文件系统(位于虚拟机的 nfs_root 目录下),也就是说,在内核启动的过程中开发板ip已经根据 Bootargs 里指定的Ip设置完毕,但是4.1.15系统在自启脚本中又重新设置了一次IPinte**ce中也设置了IP))且网段与uboot里设置的不一致,导致与服务端无法通信(注意:此时如果挂载上了nfs的文件系统,启动的就是nfs文件系统里的服务,此时进行删除IP操作需在虚拟机里要挂载的nfs文件系统进行)。

解决方法是删除服务器端rootfs的自启脚本和network服务里的IP



已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 16:55

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部