100ASK_V853-PRO开发板支持WIFI和有线网卡

100ASK_V853-PRO开发板支持WIFI和有线网卡

0.前言

​ 通过上一章节,我们已经成功下载Tina SDK包,完成编译并烧写Tina Linux系统,接下来展示100ASK-V853-PRO开发部如何通过WIFI和有线网卡进行上网。

1.使用WIFI实现上网

​ 100ASK_V853-PRO全功能底板上板载有全志XR829,烧录的开发板系统已经进行了适配,可以直接使用,在开发板上输入ifconfig,可以显示已经使能的网络设备。

root@TinaLinux:/# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 84:B0:AC:67:95:EE
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

可以看到wlan0默认已经使能了,如果没有使能可以输入ifconfig -a,查看所有网络接口是否存在wlan0设备,如果存在wlan0,则可输入ifconfig wlan0 up使能wlan0。

root@TinaLinux:/# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 92:A8:E0:01:3D:F9
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:59

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

p2p0      Link encap:Ethernet  HWaddr 84:B0:AC:67:95:EF
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 84:B0:AC:67:95:EE
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@TinaLinux:/# ifconfig wlan0 up

使能完成后,由于系统内置wifimanager-v2.0,可以使您快速实现配网,输入wifi -h,可以获得参数帮助

root@TinaLinux:/# wifi -h
=======================================================================
*************************  sta mode Options  **************************
=======================================================================
wifi -o sta
        : open sta mode
wifi -f
        : close sta mode
wifi -s
        : scan wifi
wifi -c ssid [passwd]
        : connect to an encrypted or non-encrypted ap
wifi -d
        : disconnect from ap
wifi -a [enable/disable]
        : Auto reconnect
wifi -l [all]
        : list connected or saved ap information
wifi -r [ssid/all]
        : remove a specified network or all networks
wifi -p [softap/ble/xconfig/soundwave]
        : softap/ble/xconfig/soundwave distribution network

=======================================================================
*************************  ap mode Options  ***************************
=======================================================================
wifi -o ap [ssid] [passwd]
        : open ap mode
        : if ssid and passwd is not set, start the default configuration: (allwinner-ap Aa123456)
        : if only set ssid, start the ap without passwd
wifi -l
        : list current ap mode information
wifi -f
        : close ap mode
=======================================================================
***********************  monitor mode Options  ************************
=======================================================================
wifi -o monitor
        : open monitor mode
wifi -f
        : close monitor mode
=======================================================================
***************************  other Options  ***************************
=======================================================================
wifi -D [error/warn/info/debug/dump/exce]
        : set debug level
wifi -g
        : get system mac addr
wifi -m [macaddr]
        : set system mac addr
wifi -h
        : print help
=======================================================================

接下来可以进行扫描wifi,注意扫描前需要检查天线是否安装好,安装位置如下图所示。

检查安装完成后,在开发板的串口终端输入wifi -s

root@TinaLinux:/# wifi -s
root@TinaLinux:/# 1970-01-01 04:00:42:003: WMG_DEBUG [wifi_daemon.c:cmd_handle_thread:702]:  get cmd: s
1970-01-01 04:00:42:003: WMG_DEBUG [wifi_daemon.c:cmd_handle_s:196]:  cmd handle s:
1970-01-01 04:00:42:004: WMG_DEBUG [src/wmg_sta.c:sta_mode_ctl:463]:  =====sta_mode_ctl  cmd: 8=====
1970-01-01 04:00:42:004: WMG_EXCESSIVE [src/os/linux/linux_wpa.c:command_to_supplicant:195]: do cmd SCAN
1970-01-01 04:00:42:004: WMG_EXCESSIVE [src/os/linux/linux_wpa.c:command_to_supplicant:203]: do cmd SCAN, reply: OK
...
1970-01-01 04:00:45:185: WMG_INFO [wifi_daemon.c:cmd_handle_s:220]:  bss[00]: bssid=94:d9:b3:b7:c9:0a  ssid=100ASK  channel=7(freq=2442)  rssi=-23  sec=WPA_PSK
1970-01-01 04:00:45:185: WMG_INFO [wifi_daemon.c:cmd_handle_s:220]:  bss[01]: bssid=d0:76:e7:f8:93:d8  ssid=TP-LINK_93D8  channel=6(freq=2437)  rssi=-70  sec=WPA_PSK
1970-01-01 04:00:45:185: WMG_INFO [wifi_daemon.c:cmd_handle_s:220]:  bss[02]: bssid=7a:60:5b:29:22:ab  ssid=  channel=2(freq=2417)  rssi=-70  sec=WPA2_PSK
1970-01-01 04:00:45:185: WMG_INFO [wifi_daemon.c:cmd_handle_s:220]:  bss[03]: bssid=7a:60:5b:59:22:ab  ssid=  channel=2(freq=2417)  rssi=-70  sec=WPA_PSK
1970-01-01 04:00:45:517: WMG_INFO [wifi_daemon.c:cmd_handle_s:222]:  ===Wi-Fi scan successful, total 21 ap(buff size: 60) time 3180.000000 ms===

扫描完成后会打印Wi-Fi scan successful和所用的时间time,可以看到输出信息中的ssid为扫描出来的WIFI名称,注意WIFI名称如果是含有中文字符可能会无法显示。

接下来可以进行连接WIFI进行上网,输入wifi -c ssid [passwd],其中ssid为WIFI名,passwd为密码

假设我现在连接的WIFI名称为100ASK,密码为12345678,则需要输入wifi -c 100ASK 12345678

root@TinaLinux:/# wifi -c 100ASK 12345678
root@TinaLinux:/# 1970-01-01 04:16:49:482: WMG_DEBUG [wifi_daemon.c:cmd_handle_thread:702]:  get cmd: c 100ASK 12345678
1970-01-01 04:16:49:482: WMG_DEBUG [wifi_daemon.c:cmd_handle_c:232]:  cmd handle c: 100ASK 12345678
1970-01-01 04:16:49:482: WMG_INFO [wifi_daemon.c:cmd_handle_c:256]:  connect to sta(100ASK) with pask(12345678)
...
1970-01-01 04:16:51:670: WMG_EXCESSIVE [src/os/linux/event.c:evt_read:128]: Excessive: read event 14
1970-01-01 04:16:51:670: WMG_DUMP [src/os/linux/linux_wpa.c:linux_supplicant_connect_to_ap:1531]: receive wpas event 'CONNECTED'
1970-01-01 04:16:51:671: WMG_EXCESSIVE [src/os/linux/linux_wpa.c:command_to_supplicant:195]: do cmd SAVE_CONFIG
1970-01-01 04:16:51:691: WMG_WARNG [src/os/linux/linux_wpa.c:linux_supplicant_connect_to_ap:1559]:  failed to save config to wpa_supplicant.conf
1970-01-01 04:16:51:691: WMG_DEBUG [src/wifimg.c:__wifi_sta_connect:87]:  wifi station connect success
1970-01-01 04:16:51:691: WMG_INFO [wifi_daemon.c:cmd_handle_c:265]:  ===Wi-Fi connect successful,time 2210.000000 ms===
udhcpc: started, v1.33.2
udhcpc: sending discover
udhcpc: sending select for 192.168.0.163
udhcpc: lease of 192.168.0.163 obtained, lease time 122
1970-01-01 04:16:53:689: WMG_DEBUG [src/os/linux/udhcpc.c:start_udhcpc:83]:  vflag= 4
1970-01-01 04:16:53:689: WMG_INFO [src/os/linux/udhcpc.c:start_udhcpc:85]:  get ip addr 192.168.0.163

可以看到当我们输入完成后,开发板会自动连接到WIFI并会自动获取IP地址,此时我们可以执行ping www.100ask.net,测试wifi是否可以ping通百问网的官方网址,按下Crtl+C结束测试。

root@TinaLinux:/# ping www.100ask.net
PING www.100ask.net (118.25.119.100): 56 data bytes
64 bytes from 118.25.119.100: seq=0 ttl=53 time=34.627 ms
64 bytes from 118.25.119.100: seq=1 ttl=53 time=34.894 ms
64 bytes from 118.25.119.100: seq=2 ttl=53 time=34.477 ms
64 bytes from 118.25.119.100: seq=3 ttl=53 time=36.828 ms
^C
--- www.100ask.net ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 34.477/35.206/36.828 ms

2.使用有线网卡实现上网

​ 对于有线网卡,我们在我们的补丁文件中已经做了支持,但没有默认使能,需要我们手动进行使能,在开发板的串口终端输入ifconfig -a查看所有支持的网络设备,我们可以看到输入后会出现eth0有线网卡的设备。

root@TinaLinux:/# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 92:A8:E0:01:3D:F9
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:59

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

p2p0      Link encap:Ethernet  HWaddr 84:B0:AC:67:95:EF
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 84:B0:AC:67:95:EE
          inet addr:192.168.0.163  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::86b0:acff:fe67:95ee/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2676 errors:0 dropped:14 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:440957 (430.6 KiB)  TX bytes:3968 (3.8 KiB)

​ 确认eth0有线网卡的设备存在,此时输入ifconfig eth0 up,使能有线网卡。

root@TinaLinux:/# ifconfig eth0 up
[ 3183.253385] libphy: gmac0: probed
[ 3183.302411] sunxi-gmac gmac0 eth0: eth0: Type(6) PHY ID 001cc816 at 0 IRQ poll (gmac0-0:00)
[ 3183.322880] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

​ 此时从路由器上引出一条网线,插上开发板的有线网口处。

当网线插入开发板后,开发板的串口终端则会输出以下信息,表示有线网络已经连接成功

root@TinaLinux:/# [ 3318.532310] sunxi-gmac gmac0 eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 3318.540797] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

此时需要为开发板设备的有线网口获取IP,输入udhcpc eth0

root@TinaLinux:/# udhcpc eth0
udhcpc: started, v1.33.2
udhcpc: sending discover
udhcpc: sending select for 192.168.1.38
udhcpc: lease of 192.168.1.38 obtained, lease time 86400
udhcpc: ip addr add 192.168.1.38/255.255.255.0 broadcast + dev eth0
udhcpc: setting default routers: 192.168.1.1

此时我们可以执行ping www.100ask.net,测试wifi是否可以ping通百问网的官方网址,按下Crtl+C结束测试。

root@TinaLinux:/# ping www.100ask.net
PING www.100ask.net (118.25.119.100): 56 data bytes
64 bytes from 118.25.119.100: seq=0 ttl=54 time=34.836 ms
64 bytes from 118.25.119.100: seq=1 ttl=54 time=32.367 ms
64 bytes from 118.25.119.100: seq=2 ttl=54 time=31.824 ms
^C
--- www.100ask.net ping statistics ---
4 packets transmitted, 3 packets received, 25% packet loss
round-trip min/avg/max = 31.824/33.009/34.836 ms