配置条件说明
本人开发的硬件条件是:云服务器,电脑,imx6ul开发板(正点原子)。网络为校园网。
开发板网络配置
布置说明
使用网线将开发板和电脑直连,电脑wifi接入校园网,通过开发板TTL接口访问开发板linux系统。
电脑和开发板互ping
- 将电脑和开发板的eth0的IP地址设置在同一个网段
电脑网段配置:搜索“查看网络连接”—>以太网的未识别的网络(这是开发板和电脑出现才有的)的“属性”—>点击“internet协议版本4(TCP/IPV4)”—>属性。设置IP地址、子网掩码、默认网关、DNS服务器,可以按照自身情况配置,也可直接按照下图配置:
- 开发板配置
通过串口登录到开发板的Linux系统后,配置相关IP。
方法1:
通过以下指令暂时性修改ip
ifconfig eth0 192.168.137.xxx
方法2:永久性修改,不用每次开机都手动配置
修改网络配置文件
# 打开interfaces文件
sudo vim /etc/network/interfaces
# 修改内容如下
auto eth0
iface eth0 inet static
address 192.168.137.101 # 此处改为192.168.137.x,x为2~255内的任意数
netmask 255.255.255.0
gateway 192.168.137.1
重启板卡,测试互ping
电脑ping板卡:
板卡ping电脑:
开发板外网访问
上面的步骤只能保证电脑和主板的互ping,但是板卡依旧不能访问外网(ping baidu.com失败)。下面是解决方法:
- 打开电脑的网络共享
搜索“查看网络连接”—>连接到的WLAN网络的“属性”—>点击“共享”—>都打上钩。操作之后会自动分配静态IP,如果按照前文步骤的直接配置,会发现分配的静态IP和已经配置好的是一样的。
- 后续的操作就是开发板的配置,操作和上一节的“开发板配置”一致,不再赘述。
- 配置之后ping外网可能尚存问题
先查看路由表问题
sudo route # 查看路由表
如果发现是默认的路由有问题,敲一下这两条命令就好了
sudo route del default
sudo route add default gw 192.168.137.1 netmask 0.0.0.0
意思是,所有的出口都去找 192.168.137.1
然后,查看一下路由表。
如果还是ping不通百度,可以看看目标设备的的域名解析服务器有没有设置:
cat /etc/resolv.conf
如果没有设置,可以添加:
echo "nameserver 114.114.114.114" >> /etc/resolv.conf
开发板ping baidu.com测试:
写在最后
本人使用的是云服务器,不是虚拟机,所以也没有实现所谓的“三网通(虚拟机、主机、开发板三者互通)”。对于虚拟机玩家来说,实现电脑和开发板互ping是三网通必不可少的一步,因为需要实现开发板文件系统的挂载,方便后续的开发;对于云服务器玩家,只需实现电脑和开发板互ping,三网通不易实现(因为云服务器和电脑、板卡不在一个局域网下),在实际使用中,利用mobxterm中的SFTP通过开发板的IP直接访问开发板的文件系统(需实现电脑和开发板互ping的原因),从而实现开发板和电脑的文件互传;开发在vscode中通过remote ssh在云服务器中完成。所以,对于目前的我而言,工作流是:vscode中利用remote ssh远程连接服务器完成开发,将开发文件通过mobxterm下载到本机,再利用mobxterm中的SFTP将开发文件上传到开发板中。ps:如果能够将板卡的文件系统挂载到云服务器就好了。
参考
[1] 让开发板通过个人电脑访问互联网