最近一直在开发机顶盒上的无线功能,把这一段的经验记录下来,以后还有需要的时候。
硬件、驱动和系统
- USB无线网卡:ralink3070
- 驱动:ralink3070的驱动源代码
- 操作系统:linux
内核模块和工具
- 内核模块:源码编译的内核模块rt5370sta.ko
- 工具:iwconfig,iwpriv,iwlist
使用时首先加载内核模块
insmod /root/modules/rt5370sta.ko
激活无线网卡(会加载无线的默认配置文件 /etc/Wireless/RT2870STA/RT2870STA.dat,相关设置可参考资料1)
ifconfig ra0 up
无线扫描结果与无线设置
无线热点扫描
iwlist ra0 scan
无线热点信息查看与设置
iwpriv ra0 set
iwpriv ra0 show
查看无线连接状态
iwpriv ra0 connStatus
使用iwpriv设置好无线参数,如果能连接上无线,使用iwconfig就能看到刚才所连接无线的essid。
下面主要说明一下无线扫描结果与无线连接设置之间的关系
1. 认证方式:开放或者共享,密码:无
Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=94/100 Signal level=-53 dBm Noise level=-92 dBm
Encryption key: off
Bit Rates:54 Mb/s
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WEPAUTO
iwpriv ra0 set EncrypType=NONE
iwpriv ra0 set SSID="wlan_test"
2. 认证方式:开放或者共享,密码:有,加密方式:WEP
Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=94/100 Signal level=-53 dBm Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WEPAUTO
iwpriv ra0 set EncrypType=WEP
iwpriv ra0 set SSID="wlan_test"
3. 认证方式:WPAPSK,加密方式:TKIP
Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100 Signal level=-17 dBm Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPAPSK
iwpriv ra0 set EncrypType=TKIP
iwpriv ra0 set SSID="wlan_test"
iwpriv ra0 set WPAPSK="12345678"
4. 认证方式:WPAPSK,加密方式:AES
Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100 Signal level=-15 dBm Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPAPSK
iwpriv ra0 set EncrypType=AES
iwpriv ra0 set SSID="wlan_test"
iwpriv ra0 set WPAPSK="12345678"
5. 认证方式:WPA2PSK,加密方式:TKIP
Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100 Signal level=-17 dBm Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK
Preauthentication Supported
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPA2PSK
iwpriv ra0 set EncrypType=TKIP
iwpriv ra0 set SSID="wlan_test"
iwpriv ra0 set WPAPSK="12345678"
6. 认证方式:WPA2PSK,加密方式:AES
Cell 03 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100 Signal level=-17 dBm Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Preauthentication Supported
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPA2PSK
iwpriv ra0 set EncrypType=AES
iwpriv ra0 set SSID="wlan_test"
iwpriv ra0 set WPAPSK="12345678"
7. 认证方式:自动(WPAPSK/WPA2PSK),加密方式:自动(AES或TKIP)
Cell 04 - Address: 00:21:27:80:88:00
Protocol:802.11b/g
ESSID:"wlan_test"
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality=100/100 Signal level=-47 dBm Noise level=-92 dBm
Encryption key: on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
Preauthentication Supported
从扫描结果可以看到,所谓自动模式,即包含所有的认证方式或者加密方式。
故在上面的扫描结果下,使用3,4,5,6中的任何iwpriv设置都可以连接到无线。
注意事项
1. 无线热点之间切换的问题
如果已经连接上一个无线热点,切换到另一个时,直接通过iwpriv设置,新无线不会生效。
我通过调用iwconfig ra0 essid off解决了这个问题,不知道是否合适,有待进一步的查找资料和验证。
2. 路由的问题
开机设置了有线连接的默认路由,当无线连接后,也设置了一个默认路由
两个默认的路由网段一样时,会导致不插网线,但连上无线时,ping不通无线路由器。
删除之前的默认路由,或者关闭eth0能解决问题,但还是要注意无线网卡和有线网卡共同工作时可能会出现问题。
参考资料
1. https://wiki.archlinux.org/index.php/Rt2870