LV005-网络环境方案一
网络搭建的相关笔记是直接使用的正点原子出厂系统做的。这里主要记录电脑 WiFi 上网,设备和电脑网口直连的方式进行网络环境的搭建。
一、准备工作
1. 扩展坞
电脑接口不太够,我就买了一个 Type-C 的扩展坞,上边有扩展的网口,后续的开发都用的这个扩展坞上的网口,但其实电脑本身的网口也可以用,当然,网口够多的话。

2. 硬件连接方式
设备:电脑(Windows)、正点原子 Linux 开发板(出厂系统)、路由器/交换机、直通网线。
使用场景:路由器离电脑比较远,只有一条网线,电脑通过 WiFi 上网,开发板和电脑直连,电脑中安装 VMware 虚拟机,虚拟机中运行 Ubuntu 系统作为开发服务器:

我使用的电脑中安装了虚拟机 VMware ,在 VMware 中运行 Ubuntu 系统,电脑连接无线网实现上网,由于我使用了一个扩展坞,所以开发板的 ENET2 (这个网口是正点原子 ALPHA 开发板的默认的 eth0 网口)网口通过网线连接到扩展坞的网口,扩展坞通过 Type-C 连接到电脑,关于网络配置的相关硬件连接就是这个样子啦。
3. 开发环境
3.1 Windows
版本 Windows 11 专业版
版本号 23H2
安装日期 2024/9/16
操作系统版本 22631.4169
体验 Windows Feature Experience Pack 1000.22700.1034.0其中 Windows 通过连接路由器的 WiFi 上网,
3.2 Ubuntu
Ubuntu 安装在 Windows 中的 VMware 中。
- VMware
产品:VMware® Workstation 17 Pro
版本:17.6.0 build-24238078- Ubuntu
# uname -a
Linux sumu-vm 5.15.0-139-generic #149~20.04.1-Ubuntu SMP Wed Apr 16 08:29:56 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal3.3 开发板
正点原子 I.MX6ULL-ALPHA 开发板,系统使用的是出厂系统。
- U-Boot
U-Boot 2016.03-gee88051 (Nov 05 2021 - 17:59:02 +0800)
CPU: Freescale i.MX6ULL rev1.1 792 MHz (running at 396 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 29C
Reset cause: POR
Board: I.MX6U ALPHA|MINI
I2C: ready
DRAM: 512 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1- Linux 内核
# uname -a
Linux ATK-IMX6U 4.1.15-g06f53e4 #1 SMP PREEMPT Sat Nov 27 18:39:27 CST 2021 armv7l armv7l armv7l GNU/Linux
# cat /etc/issue
Freescale i.MX Release Distro 4.1.15-2.1.0 \n \l4. 关闭防火墙
在 Ubuntu 和 Windows 互相通信之前,需要关闭防火墙。在 Windows 主机的控制面板\系统和安全\Windows Defender 防火墙中选择关闭防火墙。 这一步其实主要是 windows 中的防火墙,它有些版本是真的会拦截的,比如我当时用的 windows 这个版本:
版本 Windows 11 专业版
版本号 23H2
安装日期 2024/9/16
操作系统版本 22631.4169
体验 Windows Feature Experience Pack 1000.22700.1034.0在这个版本中我就遇到了开发板可以 ping 通 ubuntu,但是 windows 和开发板,windows 和 ubuntu 均会出现互相 ping 不通的情况,ubuntu 也会 ping 不通开发板。但是后来发现其实也可以不关。
4.1 Windows
【控制面板】→【系统和安全】→【Windows Defender 防火墙】→【关闭防火墙】:
![]() | ![]() |
那我们要是不想关闭防火墙呢?毕竟关闭之后,我们的 windows 安全性也会降低,其实也是可以的,主要是我们需要设置一下策略,我们这样操作:
【控制面板】→【系统和安全】→【Windows Defender 防火墙】→【高级设置】→【入站规则】(允许别人 ping 是入站,所以在入站规则上进行操作)

这里我的是 IPv4,所以打开这两个规则即可。那要是没见这两个规则呢?比如我的就比较坑,就没有,那这个时候我们点击旁边的【新建规则】→【自定义规则】,然后按提示进行配置:

(1)在规则类型中,选择 “自定义”,然后点击 “下一步”。
(2)在“程序”步骤,通常保持默认的 “所有程序” ,点击 “下一步”。
(3)关键步骤是协议和端口设置:在“协议类型”中,选择 “ICMPv4” (如果网络支持 IPv6,可能还需要为 ICMPv6 创建规则)。点击下面的 “自定义” 按钮,在弹出的窗口中,勾选 “特定 ICMP 类型”,然后在列表中找到并勾选 “回显请求” 。点击 “确定”。
(4)在后续的“操作”步骤中,选择 “允许连接” 。
(5)根据网络环境(域、专用或公用)选择何时应用该规则,为了测试方便,通常可以 全选。
(6)最后,为规则起一个易于识别的名称,例如 “允许 Ping 请求 (ICMPv4-In)” ,然后点击 “完成”
4.2 Ubuntu
打开 Ubuntu 终端,使用以下指令关闭 Ubuntu 防火墙。
sudo ufw status # 查看状态
sudo ufw disable # 关闭防火墙
sudo ufw enable # 开启防火墙二、windows 配置
接下来我们看一下在 windows 中需要做哪些配置。
1. 有哪些网络适配器?
方式一:【我的电脑】→【管理】→【设备管理器】→【网络适配器】
方式二:【 win + r 调出运行框】→【输入
devmgmt.msc】→【enter】,然后就可以打开设备管理器,然后我们点开网络适配器即可看到电脑所有的网络适配器了:

第一个以 ASIX 开头的就是扩展坞连接后连接到扩展坞网口的网络适配器了,就是我们后边要用的。
2. 网络适配器配置面板
2.1 方式一
当我们连接好扩展坞、电脑和 Linux 开发板后,我们打开网口的详细信息。【控制面板】→【网络和 Internet】→【网络和共享中心】或者我们直接在控制面板的地址栏输入下边的内容:
控制面板\网络和 Internet\网络和共享中心然后就会打开网络和共享中心:
![]() | ![]() |
我们会发现,当开发板网口连接到扩展坞网口后,会出现一个以太网 2 的活动网络,然后我们【以太网 2】→【详细信息】这样我们就可以看到这个网口连接的网络适配器的相关信息:

可能是以前配置过,不过不重要,后边我们会重新配置。
2.2 方式二
我们按下 【Win + r 调出运行框】→【输入ncpa.cpl】→ 【enter 】,就会看到以下弹窗:

这样我们也可以看到我们关心的以太网口连接到了哪一个网络适配器,也就是网卡,后面虚拟网络编辑器的桥接模式要配置成这个。
3. 设置网口 IP
接下来就是设置这个网口的静态 IP 信息了,步骤如下

这里的 IP 地址我们设置的是 192.168.10.xxx 网段的,注意后边 Ubuntu 和开发板也要设置成同一网段。到这里我们 Windows 中的 IP 设置就完成了,要记得的是我们的 Windows 所设置的 IP 信息为:
IP地址 :192.168.10.100
子网掩码 :255.255.255.0
默认网关 :192.168.10.14. 查看 windows 主机所有网络信息
我们按下组合键 win + r ,打开运行框,输入 cmd ,再按下 enter 便可以打开命令行,我们在命令行输入以下命令:
ipconfig然后便会显示 Windows 中所有的 IP 配置信息:
Windows IP 配置
# ...
以太网适配器 VMware Network Adapter VMnet1:
# ...
IPv4 地址 . . . . . . . . . . . . : 192.168.236.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
以太网适配器 VMware Network Adapter VMnet8:
#...
IPv4 地址 . . . . . . . . . . . . : 192.168.81.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
以太网适配器 以太网 2:
# ...
IPv4 地址 . . . . . . . . . . . . : 192.168.10.100
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.10.1
无线局域网适配器 WLAN:
#...
IPv4 地址 . . . . . . . . . . . . : 192.168.10.105
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : fe80::1%2
192.168.10.1| 网络适配器名 | IP 地址 | 备注 |
| 以太网适配器 以太网 2 | 192.168.10.100 | 以太网的 IP 信息,默认有一个 IP,需要手动修改。如果显示已断开,请将电脑网口接到开发板网口上 |
| 以太网适配器 VMware Network Adapter VMnet1 | 192.168.236.1 | 在 host-only 模式下,动态分配虚拟系统的 TCP/IP 配置信息 |
| 以太网适配器 VMware Network Adapter VMnet8 | 192.168.81.1 | 提供 DHCP 服务,用于主机和虚拟机互通,虚拟机上网 |
| 无线局域网适配器 WLAN | 192.168.3.110 | 用于 Windows 主机上网 |
| 以太网适配器 VMware Network Adapter VMnet0 | 不提供 DHCP,用于桥接网络,要在虚拟网络编辑器设置手动设置 IP |
5. windows IP
这里记录一下 windows 中对于我们来讲比较重要的两个 ip 地址:
以太网适配器 以太网 2:
IPv4 地址 . . . . . . . . . . . . : 192.168.10.100
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.10.1
无线局域网适配器 WLAN:
IPv4 地址 . . . . . . . . . . . . : 192.168.10.105
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.10.1三、Ubuntu 配置
我这里用的是 ubuntu20.04 版本。
1. 双网卡?
1.1 NAT 网卡
NAT 网卡: ubuntu 通过它上网,只要 Windows 能上网, ubuntu 就能上网。
NAT, 全称是 Network Address Translation, 指网络地址转换。使用 NAT 网卡时, ubuntu 要访问外网,是委托 Windows 发出数据包,Windows 接收到回应后再转发给 ubuntu。外界看到的都是 Windows,看不到 ubuntu。使用 NAT 时,只要 Windows 能上网, ubuntu 就必定能上网, 无需设置 ubuntu 的网络。对于外界来说,就只能看到 windows 一个设备。
1.2 桥接网卡
桥接网卡: ubuntu 通过它跟 linux 开发板联通。
使用桥接网卡时, ubuntu 就是使用一个真实的网卡,相当于开发板的网线也连接到这个真实的网卡上,对外界来说就相当于 ubuntu 也是一个单独的设备了。这样 Windows、 Ubuntu、开发板就都可以用过这个网卡互通了。
1.3 双网卡的虚拟机
使用双网卡的时候,是什么样子的?下图就是之前在 ubuntu20.04 中创建的双网卡虚拟机的状态:

这是我以前的虚拟机的双网卡的情况。其实就是再添加一个网络适配器罢了。
2. VMware 桥接网络适配器
2.1 新建网络适配器
首先我们为虚拟机新建一个网络适配器,用作桥接,新建的网络适配器用于和 Windows、Linux 开发板通信,原来的 NAT 网络适配器用于上网。

原来的网络适配器保持 NAT 模式,这样可以保证虚拟机正常上网,新建的网络适配器 2 我们设置为 桥接模式:

这样我们的 ubuntu 就有了两个网络适配器:一个 NAT 模式的适配器用于上网,一个桥接模式的用于和开发板、Windows 通信。
2.2 配置虚拟网络编辑器
- (1)我们打开虚拟网络编辑器:【编辑】→【虚拟网络编辑器】

- (2)打开后界面如下,我们需要点击右下角的【更改设置】才可以修改各个参数
![]() | ![]() |
需要注意名称不能相同,在要添加的网络选项中也不会已经存在的虚拟网卡。
- (3)设置 VMnet0 网络信息:【选中 VMnet0】→【VMnet 信息】→【桥接模式】→【选择合适的网络适配器】

我们是通过扩展坞的网口连接到 linux 开发板的,这里是要和开发板通信,所以桥接网卡要选择扩展坞的网络适配器,即以太网 2 所对应的【ASIX USB to Gigabit Ethernet Family Adapter】。桥接到这个适配器后,这个网络后边就用于跟 Windows 和 Linux 开发板通信使用了。
- (4)点击应用,然后退出就可以啦。
2.3 虚拟网卡名简介
上边我们看到了有 VMnet0 、 VMnet1 和 VMnet8 ,这是啥?为啥要新建一个 VMnet0 ?
| 虚拟网卡名 | 网络属性 | 定义 |
| VMnet0 | 物理网卡 | Bridge 桥接 |
| VMnet1 | 虚拟网卡 | host-only 仅主机 |
| VMnet8 | 虚拟网卡 | NAT |
详细的可以看这个 LV010-VMware 网络模式.md。
2.4 可能出现的问题
2.4.1 问题一
在选择“已桥接至”网络适配器的时候找不到以太网口对应的网络适配器。
这个时候我们打开以太网的详细信息,在属性中勾选 VMware Bridge Protocol 即可。

2.4.2 问题二
虚拟网络编辑器中没有 VMnet0 ,新建的时候也没有 VMnet0 ,这时候怎么办呢?
这个问题吧,目前还没有遇到过,网上直接搜的话是有解决办法的,遇到这个问题的时候我们可以尝试还原默认设置,或者是重装 VMware ,清理一下注册表之类的,后边遇到这个问题了再补充到这里。
3. ubuntu 网络配置
3.1 无法开启双网卡?
先来看一个问题,防止无法继续进行后面的步骤。
我前面吧虚拟网络编辑器恢复默认设置了一次,然后进入 ubuntu 后就无法开启两个网卡了,开了一个另一个自动关闭了,这个时候我们打开配置文件:/etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager我们修改这个文件:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
dhcp4: true
ens37:
dhcp4: true然后执行:
sudo netplan apply然后两个网卡就能同时启动了。
ubuntu 从 17.10 开始,已放弃在/etc/network/interface 里固定 IP 的配置,即使配置也不会生效,而是改成 netplan 方式
3.2 网络配置信息
3.2.1 NAT 模式网络适配器
在 Ubuntu 系统中,我们打开【设置】→【Network】便会看到如下信息:

我们会看到这里有两个网络名称,其中第一个 ens33 是已经自动分配的有 IP 地址的,这个其实就是我们使用 NAT 模式用于上网的网络适配器。此时这个 NAT 模式的网络适配器和 VMnet8 应当是在同一网段的( 192.168.81.X ),如果不是在同一网段,可能是之前用户有设置过 Ubuntu 的 IP ,这里我们可以在这个网络的选项中将它设置为自动模式即可。我们点开看一下:
![]() | ![]() |
由于这个 NAT 模式的网络适配器的存在,我们的 Ubuntu 就可以上网,并且和 Windows 互通,我们在 ubuntu 中输入以下命令:
sumu@sumu-vm:~$ ping -c 2 -I ens33 www.baidu.com # ping 外网
PING www.a.shifen.com (223.109.82.16) from 192.168.81.128 ens33: 56(84) bytes of data.
64 字节,来自 223.109.82.16 (223.109.82.16): icmp_seq=1 ttl=128 时间=13.7 毫秒
64 字节,来自 223.109.82.16 (223.109.82.16): icmp_seq=2 ttl=128 时间=11.2 毫秒
--- www.a.shifen.com ping 统计 ---
已发送 2 个包, 已接收 2 个包, 0% 包丢失, 耗时 1002 毫秒
rtt min/avg/max/mdev = 11.241/12.453/13.666/1.212 ms
sumu@sumu-vm:~$ ping -c 2 -I ens33 192.168.10.105 # ping windows 可以上网的的无线网的 ip
PING 192.168.10.105 (192.168.10.105) from 192.168.81.128 ens33: 56(84) bytes of data.
64 字节,来自 192.168.10.105: icmp_seq=1 ttl=128 时间=0.746 毫秒
64 字节,来自 192.168.10.105: icmp_seq=2 ttl=128 时间=1.01 毫秒
--- 192.168.10.105 ping 统计 ---
已发送 2 个包, 已接收 2 个包, 0% 包丢失, 耗时 1032 毫秒
rtt min/avg/max/mdev = 0.746/0.878/1.011/0.132 ms需要注意的是,这里加上-I 是指定使用 ens33,但是不加-I 的话,其实默认使用的也是 ens33。
3.2.2 桥接模式网络适配器
上边看完 NAT 模式的网络适配器,下边还有一个,这个当然就是我们设置为桥接模式的网络适配器啦,这里一开始默认的也是自动 DHCP,我们后边再进行配置。
这个网络是什么都没有的,这就是我们需要配置的用于桥接网络的网络适配器 2 了,默认好像是关闭的(具体忘记了,因为写这篇笔记的时候我是删了用于桥接的网络,重新配置的,印象中默认是关闭的,不过问题不大,最后还是要打开的)。
3.2.3 打印网络配置信息
我们可以通过以下命令来打印一下 Ubuntu 中的网络配置信息:
ifconfig然后我们会看到如下信息输出:
sumu@sumu-vm:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.128 netmask 255.255.255.0 broadcast 192.168.81.255
#...
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:ef:13:cb txqueuelen 1000 (以太网)
#...
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
#...3.3 配置桥接网络适配器
3.3.1 配置步骤
下边我们就来配置一下这个用于桥接的网络适配器,也就是上边的 ens37:

修改完毕后点击右上角的应用即可,这个时候可能 IP 还未配置成功,我们需要重新启动一些这个适配器。

哎,不知道为啥好像又踩坑了,这里我配置后重启 ubuntu 就会失效,但是之前不会的,可能是我前面做的一些操作导致的,不过我们可以直接在 netplan 的配置文件 /etc/netplan/01-network-manager-all.yaml 中修改:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
dhcp4: true
ens37:
dhcp4: no
addresses:
- 192.168.10.101/24 # 静态IP地址和子网掩码
routes:
- to: default
via: 192.168.10.1 # 网关地址然后执行:
sudo netplan apply
sudo systemctl restart systemd-networkd3.3.2 结果测试
我们来试一下:
sumu@sumu-vm:~$ ping www.baidu.com -I ens37 # ping 外网
PING www.a.shifen.com (223.109.82.212) from 192.168.10.101 ens37: 56(84) bytes of data.
来自 sumu-vm (192.168.10.101) icmp_seq=1 目标主机不可达
来自 sumu-vm (192.168.10.101) icmp_seq=2 目标主机不可达
^C
--- www.a.shifen.com ping 统计 ---
已发送 6 个包, 已接收 0 个包, +3 错误, 100% 包丢失, 耗时 5110 毫秒
管道 3
sumu@sumu-vm:~$ ping 192.168.10.104 -I ens37 # ping Windows(可以上网的那个 ip)
PING 192.168.10.104 (192.168.10.104) from 192.168.10.101 ens37: 56(84) bytes of data.
来自 192.168.10.101 icmp_seq=1 目标主机不可达
来自 192.168.10.101 icmp_seq=2 目标主机不可达
^C
--- 192.168.10.104 ping 统计 ---
已发送 18 个包, 已接收 0 个包, +16 错误, 100% 包丢失, 耗时 17368 毫秒
管道 4
sumu@sumu-vm:~$ ping 192.168.10.100 -I ens37 # ping Windows(连接了开发板的那个以太网适配器的 ip)
PING 192.168.10.100 (192.168.10.100) from 192.168.10.101 ens37: 56(84) bytes of data.
64 字节,来自 192.168.10.100: icmp_seq=1 ttl=128 时间=1.04 毫秒
64 字节,来自 192.168.10.100: icmp_seq=2 ttl=128 时间=0.576 毫秒
^C
--- 192.168.10.100 ping 统计 ---
已发送 2 个包, 已接收 2 个包, 0% 包丢失, 耗时 1002 毫秒
rtt min/avg/max/mdev = 0.576/0.806/1.036/0.230 ms可以看到这个适配器是只能 ping 通桥接到的那个网卡的。
3.4 网络适配器优先级
上边我们设置好之后,会有一个问题就是,我们平时使用的时候优先使用哪个网络适配器呢?要是我们想上网,但是它默认使用了桥接模式的网络适配器,那这个时候是无法联网的。我们可以参考这篇文章:虚拟机双网卡的一种处理方法-OpenEdv-开源电子网

但是有一个问题,那就是这里勾选后,无法应用,暂时不知道原因。但是可以在设置 ip 这里把网关和 dns 去掉,然后就可以成功应用了。
4. Ubuntu IP
sumu@sumu-vm:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.128 netmask 255.255.255.0 broadcast 192.168.81.255
#...
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.101 netmask 255.255.255.0 broadcast 192.168.10.255
#...
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
#...四、Linux 开发板配置
这里用的是正点原子 ALPHA 开发板出厂的 linux 系统。
1. MobaXterm 连接开发板
这个前边应该已经很熟练了。
2. 设置开发板 IP
我们的开发板启动后,我们可以通过以下命令来设置临时开发板的 IP 信息:
ifconfig eth0 up
ifconfig eth0 192.168.10.103【注意】这里的 IP 要跟 Windows 和 Ubuntu 在同一网段,即 192.168.10.X ,但是不能和他们重复。
然后我们输入 ifconfig 命令查看是否配置成功:
ifconfig若设置成功吗,我们会看到如下信息:
root@ATK-IMX6U:~# ifconfig
eth0 Link encap:Ethernet HWaddr 88:5f:f4:4a:f4:0d
inet addr:192.168.10.103 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::8a5f:f4ff:fe4a:f40d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:590 errors:0 dropped:0 overruns:0 frame:0
TX packets:112 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:76700 (74.9 KiB) TX bytes:43303 (42.2 KiB)
eth1 Link encap:Ethernet HWaddr 88:12:c6:cc:d3:54
UP BROADCAST MULTICAST DYNAMIC MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:30 errors:0 dropped:0 overruns:0 frame:0
TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1820 (1.7 KiB) TX bytes:1820 (1.7 KiB)可以看到 eth0 的 IP 地址已经设置为 192.168.10.103 了
3. 互 ping 测试
3.1 linux 开发板与 windows
开发板 IP:192.168.10.103
windows IP:192.168.10.100- 开发板→ windows
我们在串口终端输入以下命令:
ping -c 2 192.168.10.100看到如下信息,则是可以 ping 通:
root@ATK-IMX6U:~# ping -c 2 192.168.10.100
PING 192.168.10.100 (192.168.10.100) 56(84) bytes of data.
64 bytes from 192.168.10.100: icmp_seq=1 ttl=128 time=1.77 ms
64 bytes from 192.168.10.100: icmp_seq=2 ttl=128 time=0.618 ms
--- 192.168.10.100 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.618/1.196/1.774/0.578 ms- windows→ 开发板
我们在 windows 的 cmd 命令行执行以下命令:
ping -n 2 192.168.10.103看到如下信息则表示可以 ping 通:
C:\Users\20380> ping -n 2 192.168.10.103
正在 Ping 192.168.10.103 具有 32 字节的数据:
来自 192.168.10.103 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.10.103 的回复: 字节=32 时间<1ms TTL=64
192.168.10.103 的 Ping 统计信息:
数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms3.2 linux 开发板与 ubuntu
开发板 IP:192.168.10.103
ubuntu IP:192.168.10.101- 开发板→ ubuntu
我们在串口终端输入以下命令:
ping -c 2 192.168.10.101看到如下信息,则是可以 ping 通:
root@ATK-IMX6U:~# ping -c 2 192.168.10.101
PING 192.168.10.101 (192.168.10.101) 56(84) bytes of data.
64 bytes from 192.168.10.101: icmp_seq=1 ttl=64 time=0.926 ms
64 bytes from 192.168.10.101: icmp_seq=2 ttl=64 time=0.586 ms
--- 192.168.10.101 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.586/0.756/0.926/0.170 ms- ubuntu→ 开发板
我们在 ubuntu 的终端执行以下命令:
ping -c 2 192.168.10.103看到如下信息则表示可以 ping 通:
sumu@sumu-vm:~$ ping -c 2 192.168.10.103
PING 192.168.10.103 (192.168.10.103) 56(84) bytes of data.
64 字节,来自 192.168.10.103: icmp_seq=1 ttl=64 时间=0.540 毫秒
64 字节,来自 192.168.10.103: icmp_seq=2 ttl=64 时间=0.749 毫秒
--- 192.168.10.103 ping 统计 ---
已发送 2 个包, 已接收 2 个包, 0% 包丢失, 耗时 1013 毫秒
rtt min/avg/max/mdev = 0.540/0.644/0.749/0.104 ms3.3 问题处理
有的时候可能会因为我们插错了网口导致无法 ping 通,重新插回对的网口似乎也不行,又或者是突然开发板就无法与 windows 通信了,这个时候可以尝试重启 windows 下的以太网适配器,可以先禁用再重启。

断开和重启的话,这个时候开发板可能会有如下打印信息:

4. 开发板设置静态 IP
上边的设置完成后会有一个问题,就是当我们复位开发板后, IP 又变回以前的设置了,这是由于 LAN 8720 PHY 网络芯片没有 MAC 地址,系统启动时会生成随机 MAC 地址给网络使用。每次都生成一个 MAC 地址,导致每次开机网络获取的 ip 不是固定的。 所以我们要设置给它一个静态的 ip,不因 MAC 地址的改变而改变,设置固定 ip 方法调试。
那我们如何让它不再发生变化,设置成静态的 IP 呢?
4.1 准备工作
如果开发板文件系统 /etc/init.d/ 下有 connman 文件,执行以下指令将 connman 命名为 connman2 :
mv /etc/init.d/connman /etc/init.d/connman2这样做是为了让系统找不到 connman 文件,就会关闭 connmand 网络连接守护进程,如果不关闭的话,在后面的设置完成后会有两个 IP 地址。如果文件系统下没有这个文件,就可以没有这一步了。然后就可以开始设置开发板的静态 IP 了,可以有两种方式,一种是自启动执行命令,另一种是修改配置文件。
4.2 自启动执行命令方式
4.2.1 方式一:修改 rcS 文件
在 MobaXterm 连接好开发板后,执行以下命令:
echo "ifconfig eth0 192.168.10.103 netmask 255.255.255.0" | tee -a /etc/init.d/rcS
echo "route add default gw 192.168.10.1" | tee -a /etc/init.d/rcS以上命令中
- | 是管道,管道经常用于拼接命令;
- tee 这个工具的作用就是把标准输出复制一份后放到对应的文件里;
- -a 其实也就是 >> 即 shell 脚本中的重定向,表示追加的意思,追加就是在文件的后面写上要添加的指令,而不是覆盖源文件, >> 和 > 不同的是, > 是覆盖源文件(不能执行 > ,要不然原来的配置会被覆盖了)。
上边的命令也可以这样写:
echo "ifconfig eth0 192.168.10.103 netmask 255.255.255.0" | tee >> /etc/init.d/rcS
echo "route add default gw 192.168.10.1" | tee >> /etc/init.d/rcS执行完以上命令后,以下命令:
cat -n /etc/init.d/rcS可以发现 /etc/init.d/rcS 文件最后两行会添加了以上两条命令,那么在开发板开机启动后,这两条命令便会执行。然后我们重启开发板,执行 ifconfig 指令或者 ip -a 查看 IP 地址,会发现与重启之前 IP 是一致的。这种设置的好处在于操作简单,一次修改成功,下次再重启开发板 IP 地址不会变化,即永久生效。

需要注意的是,这里我后来再搞的时候在这个位置写会不生效,暂时也不知道原因,但是如下图这样写就正常了:

ifconfig eth0 192.168.10.103 netmask 255.255.255.0
route add default gw 192.168.10.1我猜测可能是写在最后的话,没有执行。
4.2.2 方式二:修改 rc.local
我们在出厂系统重打开或者创建 /etc/rc.local 文件:
vi /etc/rc.local在文件的末尾添加如下内容:
PATH=/sbin:/bin:/usr/sbin:/usr/bin
ifconfig eth0 192.168.10.103 netmask 255.255.255.0
route add default gw 192.168.10.1如下图所示:

4.3 修改配置文件方式
另一种方式就是修改配置文件,一般情况下配置文件路径为:
/etc/network/interfaces需要注意的是,这个配置文件在有的文件系统中有,有的文件系统下没有,没有的话,这种可能方法就不适合了,反正也是一种方式,写在这里做参考。我们使用 vi 打开这个配置文件:
vi /etc/network/interfaces原来的配置文件内容如下:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
# Wireless interfaces
iface wlan0 inet dhcp
wireless_mode managed
wireless_essid any
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
iface atml0 inet dhcp
# Wired or wireless interfaces
auto eth0
iface eth0 inet dhcp
iface eth1 inet dhcp
# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
iface usb0 inet static
address 192.168.7.2
netmask 255.255.255.0
network 192.168.7.0
gateway 192.168.7.1
# Bluetooth networking
iface bnep0 inet dhcp我们修改 Wired or wireless interfaces 部分为以下内容
# Wired or wireless interfaces
auto eth0
# iface eth0 inet dhcp
iface eth0 inet static
address 192.168.10.103
gateway 192.168.10.1
netmask 255.255.255.0
iface eth1 inet dhcp就是这样:

修改完执行以下命令:
/etc/init.d/networking restart # 重启网络配置这种修改方法是修改完配置文件,然后重启网络配置后就永久生效。
4.4 设置临时静态 IP
我们在开发板文件系统中执行以下命令:
ifconfig eth0 192.168.10.103 netmask 255.255.255.0
route add default gw 192.168.10.1这种设置的好处在于,执行完指令不需重启开发板就生效,但是关机后下次再开机就会恢复原来的配置,即临时有效。
5. uboot 配置
我们要是配置好 uboot 的网络信息,也是可以和 windows、ubuntu ping 通的。我们可以复位开发板,进入 uboot:

然后执行以下命令:
setenv ipaddr 192.168.10.103 # 开发板的 IP
setenv ethaddr 00:04:9f:04:d2:35 # 开发板的网卡物理地址,好像随便写一个就行
setenv gatewayip 192.168.10.1 # 开发板的网关
setenv netmask 255.255.255.0 # 子网掩码
setenv serverip 192.168.10.101 # ubuntu 作为服务器,这里是 ubuntu 的 IP
saveenv # 保存环境变量,这样下次启动也不会恢复原样如下图所示:

然后可以跟上面一样测试即可。
五、小结
防火墙设置:关闭电脑和虚拟机的防火墙(这一步看情况而定,有些可能根本不需要,有些可以通过修改策略进行)。
网络连接:电脑使用无线上网,开发板网口直连电脑网口。
Windows 设置:手动设置以太网 TCP/IPv4 属性中的 IP 信息。
VMwear 设置:设置网络适配器为桥接模式;添加一个网络适配器 2 为 NAT 模式。
Ubuntu 设置:设置 NAT 模式的网络适配器为自动获取模式(DHCP);手动设置桥接模式 的网络适配器的 IP 信息。
开发板设置:手动设置开发板的 IP 信息。
【注意】
(1)Ubuntu 里桥接模式的网络适配器、电脑的以太网、开发板的网口,三者要在同一网段,且不能与 NAT 模式的网络适配器、虚拟机子网在同一网段。Windows 和 Ubuntu 通过 NAT 模式的网络适配器通信。
(2)其实上边我配置的 IP 都和 windows 的无线局域网适配器 WLAN 在同一个网段了,这样看起来也没啥问题,但是要是想配置到别的网段可以嘛?当然也可以,只需要保证开发板、windows 的以太网适配器 以太网 x 和 ubuntu 桥接模式的网路适配器这三者的 IP 在同一网段,例如(我当时测试的时候是没什么问题):
- windows:
IPv4 地址 . . . . . . . . . . . . : 192.168.5.10
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.5.1- ubuntu:
inet 192.168.5.11
netmask 255.255.255.0
gw 192.168.5.1- 开发板:
inet 192.168.5.12
netmask 255.255.255.0
gw 192.168.5.1






