分享

电脑与Linux开发板搭建NFS文件系统——网线直连

 小世界的野孩子 2022-05-20 发布于北京
  • 作者:zzssdd2
  • E-mail:zzssdd2@foxmail.com

前言

本人所使用的环境为Win10笔记本+VMware15+Ubuntu18.04+I.MX6ULL开发板

一、网络配置

1、将开发板与电脑之间使用网线连接,开发板上电后在电脑的网络和共享中心可以看到新增网络连接。

2、点击查看详细信息,记住网卡描述、IP地址、网关、子网掩码信息,后面步骤会用到

3、打开VMware-->编辑-->虚拟网络编辑器-->更改设置

4、先点击还原默认设置,然后将VMnet0配置为桥接模式并选择桥接到步骤2中查看的网卡

5、设置Ubuntu网络信息与步骤2中查看的网络为同一网段:打开Ubuntu-->设置-->网络-->IPV4-->手动,填入网络信息,点击应用后将网络关闭再打开即可生效

6、设置开发板网络信息与步骤2中查看的网络为同一网段。开发板上电进入Uboot模式,依次执行以下命令设置网络相关信息

//设置服务器的IP地址(Ubuntu) 
setenv serverip 192.168.2.145 
//设置网关 
setenv gatewayip 192.168.2.1 
//设置开发板的IP地址 
setenv ipaddr 192.168.2.250 
//设置子网掩码 
setenv netmask 255.255.255.0 
//设置网口MAC地址(如果在同一网段有多个开发板要保证每个开发板的ethaddr不同)
setenv ethaddr 08:07:03:A0:03:22 
//保存环境变量 
saveenv 
//重启
reset 

//重启后进入Uboot使用以下命令查询网络信息
printenv serverip ipaddr gatewayip netmask ethaddr

7、互ping测试,测试开发板、Windows、Ubuntu三者之间网络能否ping通

  • Windows与开发板、Ubuntu

  • 开发板与Windows、Ubuntu

  • Ubuntu与Windows、开发板

二、NFS服务搭建

1、Ubuntu安装NFS服务

//1-安装nfs服务
sudo apt-get install nfs-kernel-server
//2-创建NFS服务器共享目录
mkdir nfs
//3-更改文件夹权限
chmod 777 nfs
//4-更改配置文件
sudo vi /etc/exports
文件末尾添加: /home/zz/work/nfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
//5-重启NFS服务
sudo /etc/init.d/nfs-kernel-server restart
//6-查看NFS服务挂载目录
showmount -e

2、测试nfs服务

1-将zImage放在nfs目录下
2-启动开发板进入uboot
3-uboot中使用`? nfs`查看nfs使用方法`nfs [loadAddress] [[hostIPaddr:]bootfilename]`
4-测试nfs(将nfs服务器目录中在Image下载到开发板80800000地址):
nfs 80800000 192.168.2.145:/home/zz/work/nfs/zImage

3、开发板与虚拟机nfs服务版本不同导致下载、挂载失败解决方法(提示"Loading: *** ERROR: File lookup fail"、"VFS: Unable to mount root fs via NFS, trying floppy."等)

问题原因:Ubuntu 18.04的nfs默认为协议V3和协议V4,开发板uboot默认启动的是协议V2的形式,从而导致uboot不能在nfs服务器中找到文件。

解决方法:让Ubuntu中的nfs兼容协议V2,修改/etc/default/nfs-kernel-server 文件。

1)打开文件:sudo vim /etc/default/nfs-kernel-server (注意一定要sudo或者root权限)

2)修改如图:

3)保存退出:ESC --> :wq --> Enter

4)重启NFS服务器:sudo service nfs-kernel-server restart

至此问题解决,可以重新执行nfs测试验证nfs是否正常。

4、开发板挂载nfs文件系统

1)Ubuntu的nfs共享服务目录下创建rootfs文件夹

2)将文件系统rootfs.tar.bz2拷贝到rootfs文件夹中并解压tar -xjvf rootfs.tar.bz2

3)设置开发板uboot自启动参数bootcmdbootagrs

/* 
1-设置bootcmd
	zImage为内核镜像,通过tftp下载到首地址为0x80800000的内存空间
	topeet_emmc_4_3.dtb为设备树
	bootz根据内核镜像地址和设备树地址加载启动
*/
setenv bootcmd 'tftp 80800000 zImage; tftp 83800000 topeet_emmc_4_3.dtb; bootz 80800000 - 83800000’


/* 
2-设置bootargs
	nfsroot后的参数为Ubuntu的nfs文件夹路径;格式为:nfsroot=NFS服务器IP:文件系统的绝对路径.
	ip后的参数为开发板网络信息:ip=开发板IP:服务器IP:网关,子网掩码::eth0:off. 
*/
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.2.145:/home/zz/work/nfs/rootfs ip=192.168.2.250:192.168.2.145:192.168.2.1:255.255.255.0::eth0:off’


/* 3-保存环境变量 */
saveenv

4)输入boot命令启动开发板

至此,成功挂载nfs文件系统启动开发板。

三、TFTP服务搭建(补充)

  1. 在Ubuntu的home/zz/work/目录下创建tftp服务文件夹:mkdir tftp

  2. 修改文件夹权限:chmod 777 tftp

  3. 安装服务:sudo apt-get install tftp-hpa tftpd-hpa

  4. 修改配置文件:sudo vim /etc/default/tftpd-hpa

  1. 启动服务:sudo service tftpd-hpa restart

  2. 将 Linux 内核镜像 zImage、设备数文件topeet_emmc_4_3.dtb拷贝到 tftp服务文件夹下

  3. 测试:启动开发板在uboot模式下输入tftp 0x80000000 zImage

至此,tftp服务搭建完成。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多