核心内容摘要
时间黑科技:RunAsDate的效率革命与时空操控艺术
在嵌入式 Linux 开发中最理想的网络环境是“双网卡架构”网卡 1 (NAT 模式)用于 Ubuntu 上网下载软件、源码以及与 Windows 主机进行 SSH/VSCode 通信。
网卡 2 (桥接模式)专线连接开发板模拟真实的物理局域网用于 TFTP/NFS 挂载调试。
我的环境参数示例Windows 主机 NAT 网段 (VMnet
:
192.
168.
xWindows 有线网口网段:
192.
168.
xUbuntu:
1
04 (VMware Workstation)核心配置步骤
VMware 虚拟网络编辑器设置必须手动指定物理网卡打开“虚拟网络编辑器”。
点击 VMnet0 (桥接模式)。
关键点将“已桥接至”从“自动”改为你的有线网卡名称如 Realtek PCIe GBE...。
避坑理由“自动”模式经常会错误地桥接到 WiFi 网卡导致开发板 Ping 不通虚拟机。
虚拟机网络适配器设置在虚拟机设置中添加两个网络适配器注意顺序网络适配器 1 (对应 ens
选择 NAT 模式。
网络适配器 2 (对应 ens
选择 桥接模式。
关键检查确保两个适配器的 “已连接” 和 “启动时连接” 均已勾选。
Ubuntu 内部 IP 配置编辑配置文件sudo nano /etc/network/interfaces以下代码均为自己的配置大家可以分别在Ubuntu和windows使用ifconfig和ipconfig命令查看。
auto lo iface lo inet loopback # --- 网卡1ens33 (NAT上网 SSH) --- # 必须与 Windows 的 VMnet8 在同一网段 (例如 72 网段) auto ens33 iface ens33 inet static address
192.
168.
7
100 netmask
255.
255.
2
0 gateway
192.
168.
7
2 dns-nameservers
114.
114.
1
114
8.
8.
8 # --- 网卡2ens37 (桥接连开发板) --- # 必须与 Windows 有线网口在同一网段 (例如 1 网段) auto ens37 iface ens37 inet static address
192.
168.
66 netmask
255.
255.
2
0 # 关键点这里千万不要写 gateway防止路由冲突开发板 U-Boot 联网配置 (NFS/TFTP)开发板必须通过 桥接网卡 (ens
与 Ubuntu 通信。
#
必须处于同一网段 (
x) setenv ipaddr
192.
168.
50 # 开发板 IP setenv serverip
192.
168.
66 # Ubuntu 桥接 IP (ens
setenv gatewayip
192.
168.
1 # 物理网关 #
bootargs 配置 (NFS挂载) # 重点root/dev/nfs且 nfsroot 和 ip 参数里的 IP 必须全是
x 网段 setenv bootargs consolettymxc0,115200 root/dev/nfs nfsroot
192.
168.
66:/home/alientek/linux/nfs/rootfs,prototcp rw ip
192.
168.
50:
192.
168.
66:
192.
168.
1:
255.
255.
2
0::eth0:off #
保存 saveenv遇到的经典“大坑”与解决方案
坑代码全对就是 Ping 不通现象配置文件没问题但 Ping 网关或主机全是Destination Host Unreachable。
原因 A网卡顺序反了。
这是我搞了一下午终于排查出来的问题排查VMware 设置里适配器 1 是桥接但 Ubuntu 代码里把 ens33 当作 NAT 配。
解决调整 VMware 设置保证 适配器 1 NAT适配器 2 桥接。
原因 BWindows 防火墙拦截。
解决关闭 Windows 专用和公用网络防火墙或卸载杀毒软件。
原因 C网段没对上。
排查Windows 的 NAT 网段变了比如重置过网络从 100 变到了 72但 Ubuntu 里还写着 100。
解决先在 Windows 查ipconfig以 Windows 为准修改 Ubuntu。
原因DWindows下VMware服务启动失败打开应用程序以及服务重启VMware相关的service
坑VSCode 连不上虚拟机现象IP 变了后 VSCode 报错或者提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED。
解决修改 SSH Config 中的HostName为新 IP。
删除 Windows 下C:\Users\用户名\.ssh\known_hosts文件清除旧指纹。
进阶配置 SSH 公钥认证ssh-keygenauthorized_keys实现免密登录。
坑SD 卡无法连接到虚拟机现象插入读卡器VMware 弹窗点连接但ls /dev/sd*看不到sdbWindows 总是抢占设备。
解决终极方案不要用 USB 连接模式。
在虚拟机设置里添加硬件 -硬盘-使用物理磁盘- 选择对应 SD 卡的 PhysicalDrive。
注意需要以管理员身份运行 VMware。