ELF1开发板与Ubuntu网络共享配置指南

发布时间:2026/7/17 3:34:51
ELF1开发板与Ubuntu网络共享配置指南 1. 项目背景与硬件准备ELF 1开发板是飞凌嵌入式推出的基于NXP i.MX6ULL处理器的嵌入式学习平台采用Cortex-A7架构主频800MHz运行Linux4.10系统。这款板卡专为嵌入式学习者设计具有丰富的外设接口和完整的教学资源支持。在实际开发中我们经常需要让开发板与主机共享网络连接。当开发环境如Ubuntu18.04主机通过WiFi连接互联网而开发板需要通过网线与主机通信时网络共享就变得尤为重要。这种配置特别适合以下场景实验室环境中开发板需要联网下载软件包调试时需要主机与开发板保持稳定网络连接需要从主机通过SSH登录开发板进行远程操作注意确保你的Ubuntu18.04主机已经通过WiFi正常连接互联网并且开发板与主机通过网线直连。建议使用质量可靠的网线避免因物理连接问题导致后续配置失败。2. Ubuntu主机网络配置2.1 检查网络接口首先我们需要确认主机的网络接口状态。在终端执行ifconfig正常情况下你应该能看到至少两个网络接口wlp3s0或其他类似名称 - 无线网卡通常已连接互联网enp0s25或其他类似名称 - 有线网卡连接开发板如果看不到有线网卡接口可能是驱动问题或网线未插好。可以尝试sudo lshw -class network查看所有网络设备的状态。2.2 配置网络共享Ubuntu18.04使用NetworkManager管理网络连接我们可以通过GUI或命令行配置共享GUI方式右上角网络图标 → 编辑连接选择有线连接 → 点击齿轮图标切换到IPv4设置标签方法选择共享给其他计算机保存设置命令行方式nmcli connection modify Wired connection 1 ipv4.method shared nmcli connection up Wired connection 1实测中发现Ubuntu18.04的NetworkManager版本可能存在bug如果共享不成功可以尝试重启NetworkManager服务sudo service NetworkManager restart3. 开发板网络配置3.1 连接开发板通过串口或SSH连接到ELF 1开发板。默认登录凭证通常是用户名root密码无或root取决于具体镜像3.2 配置动态IP获取开发板应该能通过DHCP自动获取IP地址。检查网络接口ifconfig eth0如果没有获取到IP可以手动触发DHCP请求udhcpc -i eth03.3 静态IP配置可选如果动态IP不可用可以配置静态IP。编辑网络配置文件vi /etc/network/interfaces添加以下内容auto eth0 iface eth0 inet static address 192.168.137.100 netmask 255.255.255.0 gateway 192.168.137.1然后重启网络服务/etc/init.d/networking restart4. 网络连通性测试4.1 基础测试在开发板上执行ping 192.168.137.1 # 应该能ping通主机 ping 8.8.8.8 # 测试互联网连接如果第一个ping通但第二个不通说明共享配置有问题。4.2 常见问题排查问题1开发板无法获取IP检查网线连接确认主机共享配置正确尝试重启主机的NetworkManager服务问题2能ping通主机但无法上网检查主机的IP转发是否开启cat /proc/sys/net/ipv4/ip_forward如果返回0需要开启sudo sysctl -w net.ipv4.ip_forward1检查NAT规则sudo iptables -t nat -L应该能看到类似这样的规则MASQUERADE all -- anywhere anywhere问题3网络时断时续可能是网线质量问题尝试更换网线检查接口双工模式ethtool eth0建议设置为全双工ethtool -s eth0 duplex full5. 进阶配置与优化5.1 持久化IP转发设置为了让IP转发设置开机自动生效编辑sudo vi /etc/sysctl.conf添加或取消注释net.ipv4.ip_forward1然后应用sudo sysctl -p5.2 防火墙配置如果主机启用了UFW防火墙需要允许转发sudo ufw default allow FORWARD5.3 开发板DNS配置如果开发板能ping通IP但无法解析域名需要配置DNS。编辑vi /etc/resolv.conf添加nameserver 8.8.8.8 nameserver 8.8.4.45.4 网络性能优化对于需要大流量传输的场景可以调整MTU值ifconfig eth0 mtu 1500 # 开发板 ifconfig enp0s25 mtu 1500 # 主机6. 实际应用场景6.1 通过NFS共享文件系统配置好网络共享后可以方便地设置NFS主机端sudo apt install nfs-kernel-server sudo vi /etc/exports添加/home/yourname/elfboard 192.168.137.100(rw,sync,no_subtree_check)然后重启服务sudo service nfs-kernel-server restart开发板端mount -t nfs 192.168.137.1:/home/yourname/elfboard /mnt6.2 交叉编译开发流程在Ubuntu主机上安装交叉编译工具链通过共享网络将编译好的程序scp到开发板在开发板上测试运行示例命令scp hello root192.168.137.100:/root6.3 远程调试配置可以使用gdbserver进行远程调试开发板端gdbserver :1234 ./your_program主机端gdb-multiarch (gdb) target remote 192.168.137.100:12347. 经验分享与注意事项在实际使用ELF 1开发板进行开发时我总结了以下几点经验网络稳定性开发板与主机之间的网络连接对开发效率影响很大。建议使用质量好的六类网线避免过长的网线最好不超过3米定期检查接口是否有氧化电源管理i.MX6ULL对电源质量比较敏感网络不稳定有时是电源问题导致的。建议使用原装电源适配器避免使用劣质USB转TTL模块供电在关键位置添加滤波电容系统时钟同步开发板与主机时间不同步可能导致各种奇怪问题。可以配置NTPntpdate pool.ntp.org备份配置网络配置好后建议备份相关配置文件tar czf network_config.tar.gz /etc/network/interfaces /etc/resolv.conf性能监控可以使用以下命令监控网络性能bmon # 带宽监控 iftop # 流量监控对于嵌入式学习的新手我建议先从简单的网络应用开始比如通过curl获取网页内容用wget下载小文件简单的socket通信程序逐步熟悉后再尝试更复杂的网络应用开发。遇到问题时多查阅i.MX6ULL的参考手册和Linux网络相关文档这对深入理解嵌入式网络工作原理很有帮助。