1.简介
支持多网络是电鱼嵌入式板卡的特色之一,电鱼电子推出的SAIL-IMX6系列核心板,都带有以太网口,同时还可以支持wi-fi以及3G/4G模块。本文是实现对于Linux系统在电鱼SAIL-IMX6Q开发板中的多网络的优先级的设置。
2.准备
软件:板上linux系统和PC上的超级终端
硬件:电鱼SAIL-IMX6Q开发板、PC和WiFi模块(连接到红框处)
SAIL-IMX6Q开发板利用232串口连接电脑,并连接上电源。
网线连接PC和开发板的网口
3.操作3.1 IP地址设置3.1.1 IP地址设置方法一
~# ifconfig
直接使用udhcpc命令,该命令会自动获取ip并设置默认网关:
~# udhcpc -i eth0 -q //通过DHCP自动获取IP地址
可以使用命令~# route –n查看系统所有的路由信息,参数-n是不进行地址解析,如果不添加-n选项,route命令会根据/etc/resolv文件中配置的DNS服务器进行地址解析,所以返回时间跟DNS服务器的响应时间有关系:
上边的方法网关和ip都是自动设置的也可以自己设置IP
~# ifconfig eth0 192.168.137.0
3.1.2 IP地址设置方法二
如果要通过eth0访问外网,还可以通过如下方法添加默认网关,linux系统中可以通过命令ip route命令添加默认网关,
命令格式为ip route add default via <gateway> dev <interface>:
~# ip route add default via 192.168.137.1 dev eth0
出现图示错误则输入 ~# ip addr flush dev eth0
再次输入 ~# ifconfig eth0 192.168.137.0
~# route -n
~# ip route add default via 192.168.137.1 dev eth0
3.2测试网卡eth0的连接
~# ping 192.168.137.93 //DPCH里边发送的地址
3.3多网络情况及优先级的设置
将WiFi模块插入开发板的P7插针处(三角形对着三角形)。
在多网络的情况下,比如以太网和wi-fi以及3G网络同时存在的时候,就会有多个路由信息多个默认网关。
在底板P7插针处中正确插入wifi模块,如果一开始未曾插入模块,则插入后需要重启,再进行一次上边的设置。开启开发板
~# ifconfig -a //显示wlan信息
打开wlan
~# ifconfig wlan0 up
~# ifconfig
设置wifi模块的ip地址
#ifconfig wlan0 192.168.137.21
设置WiFi模块网关
~# ip route add default via 192.168.137.22 dev wlan0
查看系统所有的路由信息
~# route –n
下图是核心板的以太网和wi-fi同时存在时的路由信息:
可以看到以太网eth0和wi-fi网络wlan0的路由信息都自动生成了,而且存在两个默认网关。如果访问外网,系统会根据路由缓存信息和速度最优的原则,通过速度更快的网关进行访问。Linux系统支持对默认网关的优先级进行设置,这时需要用到mteric这个参数,metric为跃点数,当系统中有多个默认网关时,数据包会通过metric更低的接口传输,通常情况下,默认的metric都为0,所以优先级是相同的。还是可以通过linux的命令ip route命令设置metric,命令格式为ip route add default via <gateway> dev <interface> metric <val>,下面我们就为eth0和wlan0设置优先级:
~# ip route del via 192.168.137.1 dev eth0
~# ip route del via 192.168.137.3 dev wlan0
~# ip route add default via 192.168.137.3 dev wlan0 metric 11
~# route -n
如图所示我们为eth0设置的metric为0/10,wlan0的metric为11,这样以太网eth0的优先级就高于wlan0,数据包就会有先通过eth0通讯,如果以太网eth0关闭,则相关路由信息也会被清除掉,这时metric为11的默认网关优先级变为最高,数据包会自动改为通过wlan0通讯。通过traceroute命令可以验证这一点:
所以现在网络的优先级设置完成了。
4.小结
如上述示例,通过Linux主板多网络的优先级的各种设置命令即可实现对于开发板的网络方面的多个网络进行优先级的设置,能够通过优先级的设置对开发板的网络进行想要的选择。