news 2026/4/16 13:34:46

Ubuntu 虚拟机双网卡配置:连接外网与嵌入式开发板IMX6ULL

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu 虚拟机双网卡配置:连接外网与嵌入式开发板IMX6ULL

在嵌入式 Linux 开发中,最理想的网络环境是“双网卡架构”

  1. 网卡 1 (NAT 模式):用于 Ubuntu 上网(下载软件、源码),以及与 Windows 主机进行 SSH/VSCode 通信。

  2. 网卡 2 (桥接模式):专线连接开发板,模拟真实的物理局域网,用于 TFTP/NFS 挂载调试。

我的环境参数(示例):

  • Windows 主机 NAT 网段 (VMnet8):192.168.72.x

  • Windows 有线网口网段:192.168.1.x

  • Ubuntu: 16.04 (VMware Workstation)

核心配置步骤

1. VMware 虚拟网络编辑器设置

必须手动指定物理网卡

  • 打开“虚拟网络编辑器”。

  • 点击 VMnet0 (桥接模式)。

  • 关键点:将“已桥接至”从“自动”改为你的有线网卡名称(如 Realtek PCIe GBE...)。

    • 避坑理由:“自动”模式经常会错误地桥接到 WiFi 网卡,导致开发板 Ping 不通虚拟机。

2. 虚拟机网络适配器设置

在虚拟机设置中添加两个网络适配器,注意顺序:

  • 网络适配器 1 (对应 ens33):选择 NAT 模式。

  • 网络适配器 2 (对应 ens37):选择 桥接模式。

  • 关键检查:确保两个适配器的 “已连接” 和 “启动时连接” 均已勾选。

3. Ubuntu 内部 IP 配置

编辑配置文件:sudo nano /etc/network/interfaces

以下代码均为自己的配置,大家可以分别在Ubuntu和windows使用ifconfig和ipconfig命令查看

auto lo iface lo inet loopback # --- 网卡1:ens33 (NAT上网 & SSH) --- # 必须与 Windows 的 VMnet8 在同一网段 (例如 72 网段) auto ens33 iface ens33 inet static address 192.168.72.100 netmask 255.255.255.0 gateway 192.168.72.2 dns-nameservers 114.114.114.114 8.8.8.8 # --- 网卡2:ens37 (桥接连开发板) --- # 必须与 Windows 有线网口在同一网段 (例如 1 网段) auto ens37 iface ens37 inet static address 192.168.1.66 netmask 255.255.255.0 # 关键点:这里千万不要写 gateway,防止路由冲突!

开发板 U-Boot 联网配置 (NFS/TFTP)

开发板必须通过 桥接网卡 (ens37) 与 Ubuntu 通信。

# 1. 必须处于同一网段 (1.x) setenv ipaddr 192.168.1.50 # 开发板 IP setenv serverip 192.168.1.66 # Ubuntu 桥接 IP (ens37) setenv gatewayip 192.168.1.1 # 物理网关 # 2. bootargs 配置 (NFS挂载) # 重点:root=/dev/nfs,且 nfsroot 和 ip 参数里的 IP 必须全是 1.x 网段 setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.1.66:/home/alientek/linux/nfs/rootfs,proto=tcp rw ip=192.168.1.50:192.168.1.66:192.168.1.1:255.255.255.0::eth0:off' # 3. 保存 saveenv

遇到的经典“大坑”与解决方案

1. 坑:代码全对,就是 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。

  • 原因D:Windows下VMware服务启动失败

  • 打开应用程序以及服务重启VMware相关的service

2. 坑:VSCode 连不上虚拟机

  • 现象:IP 变了后 VSCode 报错,或者提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

  • 解决

    1. 修改 SSH Config 中的HostName为新 IP。

    2. 删除 Windows 下C:\Users\用户名\.ssh\known_hosts文件(清除旧指纹)。

    3. 进阶:配置 SSH 公钥认证(ssh-keygen+authorized_keys),实现免密登录。

3. 坑:SD 卡无法连接到虚拟机

  • 现象:插入读卡器,VMware 弹窗点连接,但ls /dev/sd*看不到sdb,Windows 总是抢占设备。

  • 解决(终极方案)

    • 不要用 USB 连接模式。

    • 在虚拟机设置里添加硬件 ->硬盘->使用物理磁盘-> 选择对应 SD 卡的 PhysicalDrive。

    • 注意:需要以管理员身份运行 VMware。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 22:49:04

年薪五十万的硬件工程师应该具备哪些业务技能

目录 简介 职业习惯 ZL01-各类元器件相关资料 ZL02-电源设计资料 ZL03-大厂参考资料 ZL04-开发工具 ZL05-仿真工具 ZL06-各类电路接口设计指南 ZL08-优质电子书 ZL09-硬件工程师 ZL10FPGA工程师教程华为资料展示 ZL14各类协议稀缺资料汇总 一.核心技术能力 简介 回…

作者头像 李华
网站建设 2026/4/8 20:58:17

Java面试必看:如何高效列出所有文件?

文章目录Java面试必看:如何高效列出所有文件?引言正文一、File类的基本用法二、使用递归实现文件遍历三、使用NIO库实现高效文件遍历四、使用第三方工具类库五、性能优化六、总结结语好了,今天的分享就到这里。希望这篇文章能够帮助大家在Jav…

作者头像 李华
网站建设 2026/4/9 15:13:12

Nature | 清北合作研发全球首个全柔性存算一体AI芯片

FLEXI团队 投稿 量子位 | 公众号 QbitAI一张薄如纸片、能卷在手指上的柔性芯片(不是柔性印刷电路板,是柔性集成电路),能做什么?在可穿戴设备中实时识别心律失常?在柔性机器人中执行复杂感知?在未…

作者头像 李华