目的:想要使用网线将windows网口与zynq开发板网口直连,可以实现通过nfs(network file system)挂载在ubuntu中的根文件系统,从而运行linux,方便linux的驱动开发。
参考文章:
领航者 ZYNQ 之嵌入式 Linux 开发指南 V3.2.pdf
第20章 搭建驱动开发使用的 ZYNQ 镜像
20.6 NFS 挂载根文件并启动开发板
这里重点记录为了实现上述目的而如何设置网络环境。
基础知识:
vmware桥接模式、NAT网络地址转换、仅主机模式
vmware桥接模式、NAT网络地址转换、仅主机模式_vm虚拟机桥接网络vm虚拟机网络地址转换(nat)-CSDN博客
VMware为提供额三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)
安装好VM后会有三个虚拟网卡:
VMnet0:用于虚拟桥接网络下的虚拟交换机
VMnet1:用于虚拟 Host-only 网络下的虚拟交换机
VMnet8:用于虚拟 NAT 网络下的虚拟交换机
桥接模式与NAT模式
桥接模式里虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络。如上图所示的局域网中添加了一台新的、独立的计算机一样。宿主机与vm虚拟机是平级关系。因此,虚拟机也会占用局域网中的一个IP地址,并且可以和其他终端进行相互访问。
NAT模式使用的是VMware自己的网络连接模式。
windows与ubuntu查看ip终端命令
windows下查看ip:
ipconfig /all //查看所有的ip地址
ipconfig //查看已激活ip地址
ubuntu终端下查看ip:
ifconfig -a //查看所有的ip地址,if是interface的意思
ifconfig //查看已激活ip地址
搞崩了ubuntu默认的网络设置
如何处理呢?
关闭虚拟机,还原网络设置,然后重启虚拟机。
其他
ubuntu通过VMnet0连接到外网了。
接下来才是正文,以上如有不对,以下面的正文设置为主。
一、ubuntu虚拟机网络设置:
1、ubuntu-虚拟机-设置-网络适配器-桥接模式
1、设置ubuntu有线网络ipv4地址(会导致ubuntu不能上网):192.168.1.11
2、ubuntu-编辑-虚拟网络编辑器-更改设置
VMnet0设置为桥接模式,并且要桥接至windows自带的网卡,而不是wifi的网卡!
设置好ubuntu网络环境后,最好能reboot重启一下。
二、关闭windos防火墙:
打开防火墙:
zynq开发板可以ping通ubuntu虚拟机,但不能ping通windows pc;
ubuntu虚拟机不能ping通zynq开发板(属正常现象,根文件系统加载后,可以互相ping通),也不能ping通pc。
关闭防火墙:
zynq开发板可以ping通ubuntu虚拟机和windows pc;
ubuntu虚拟机可以ping通pc,pc也可以ping通ubuntu虚拟机。
ubuntu虚拟机不能ping通zynq开发板(属正常现象,根文件系统加载后,可以互相ping通)
三、设置windos网口的ipv4地址为192.168.1.89
四、zynq进入uboot后设置zynq开发板ip地址为192.168.1.10后启动开发板
输入如下命令设置开发板网络环境变量:
setenv ipaddr 192.168.1.10 //开发板 ip 地址
setenv ethaddr 00:0a:35:00:1e:53 //开发板 mac 地址
setenv gatewayip 192.168.1.1 //开发板网关
setenv netmask 255.255.255.0 //开发板 ip 地址掩码
setenv serverip 192.168.1.11 //ubuntu ip 地址
saveenv
设置完成后保存环境变量。此时如果能 ping 通 ubuntu 和windos,则说明网络环境已经搭建好
了,但是,ubuntu和windos主机不能ping通zynq开发板(属正常现象,根文件系统加载后,可以互相ping通)。
解压根文件系统到 NFS 共享目录"/home/zy/workspace/nfs/rootfs"下(如果没有路径就自己新建路径),
tar -xzf /home/用户自己的名字/petalinux/Navigator_7010_v3/ALIENTEK-ZYNQ-driver/images/linux/rootfs.tar.gz -C rootfs/
启动模式设置为 sd 卡启动,连接串口,用网线连接开发板 ps 网口和电脑,最后开发板连接电源启动,进入 uboot 模式。
输入如下命令设置环境变量 bootargs,让内核通过 NFS 方式从 Ubuntu 主机中挂载根文件系统:
setenv bootargs 'console=ttyPS0,115200 root=/dev/nfs rw
nfsroot=192.168.1.11:/home/用户自己的名字/workspace/nfs/rootfs,nfsvers=3
ip=192.168.1.10:192.168.1.11:192.168.1.1:255.255.255.0::eth0:off'
输入“boot”命令启动 linux 系统即可。
可以看到zynq主板是从ubuntu中nfs的rootfs启动并最终成功进入linux,然后就可以ping windos与 ubuntu了,如下图。