码迷,mamicode.com
首页 > 其他好文 > 详细

ARM开发板加载Realtek-8188CUS USB无线网卡(二)

时间:2015-04-08 19:53:04      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:linux   内核   usb无线网卡   arm   

平台参数:
内核: Linux 3.6
文件系统:Busybox-1.20.2
硬件参数:S3C2416

三、工具准备、知识准备

曾经一个山民说过,磨刀不误砍柴工。捣鼓WiFi,,那么WiFi相关的知识总要了解些吧,比如该无线网络的标准、涉及到的名词、加密术语等等,这些在附录里面提及。

现在要说的是,调试无线网卡需要的几个工具。

所有需要的工具都在源码包里,即wireless_tools/wireless_tools.30.rtl.tar.gz。解压之,修改Makefile:

## Compiler to use (modify this for cross compile).
#CC = gcc
CC = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc
## Other tools you need to modify for cross compile (static lib only).
#AR = ar
AR = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-ar
#RANLIB = ranlib
RANLIB = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-ranlib
编译即可,然后把它们传到文件系统里:ifrename、iwconfig、iwevent、iwgetid、iwlist、iwpriv、iwspy

每个工具怎么用,可以先稍稍了解下,完了在详细记载。


四、调试

关键时刻来了,也是奇迹再现的时分!

1、执行ifconfig命令,并没有出现无线网卡对应的节点,那么我们UP一下

/sbin/ifconfig wlan0 up
为什么是wlan0,你可以问问自己为什么有线连接是eth0。

为了方便,这句也加到启动脚本里。

之后看到:

wlan0     Link encap:Ethernet  HWaddr 6C:E8:73:C7:6F:92  
          UP BROADCAST RUNNING 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)
网络环境已经准备好了,接下来就需要在PUSH一下。你不是没东风吗,我给你。


2、搜索我们身边的可用WiFi网络

[root@lnx /]# iwlist wlan0 scan
iwlist会把存在的网络全部罗列出来,剪切部分出来:

          Cell 09 - Address: F0:29:29:A9:CE:B0
                    ESSID:"BDXT"
                    Protocol:IEEE 802.11bgn
                    Mode:Master
                    Frequency:2.437 GHz (Channel 6)
                    Encryption key:off
                    Bit Rates:144 Mb/s
                    Quality:20  Signal level:0  Noise level:0
          Cell 10 - Address: F0:29:29:A9:CE:B1
                    ESSID:"BDXT-GUEST"
                    Protocol:IEEE 802.11bgn
                    Mode:Master
                    Frequency:2.437 GHz (Channel 6)
                    Encryption key:on
                    Bit Rates:144 Mb/s
                    Extra:wpa_ie=dd1c0050f20101000050f20202000050f2020050f20401000050f2020000
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    Extra:rsn_ie=30180100000fac020200000fac02000fac040100000fac022800
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                    Quality:68  Signal level:0  Noise level:0
          Cell 11 - Address: F0:29:29:A9:CE:B3
                    ESSID:"XXJSB"
                    Protocol:IEEE 802.11bgn
                    Mode:Master
                    Frequency:2.437 GHz (Channel 6)
                    Encryption key:on
                    Bit Rates:144 Mb/s
                    Extra:wpa_ie=dd1c0050f20101000050f20202000050f2020050f20401000050f2010000
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : 802.1x
                    Extra:rsn_ie=30180100000fac020200000fac02000fac040100000fac012800
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : 802.1x
                    Quality:0  Signal level:0  Noise level:0
其中,ESSID是Wifi的名字,我们使用名为”BDXT“的测试,它不需要密码,Cell 09: ESSID:"BDXT"


3、连接到Wifi网络

[root@lnx /]# iwconfig wlan0 essid BDXT
然后执行iwconfig wlan0查看连接情况,出现ESSID:"BDXT"即说明我们已经连接到名为”BDXT“的网络

[root@lnx /]# iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:"BDXT"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.412 GHz  Access Point: F0:29:29:A9:CA:60   
          Bit Rate:72.2 Mb/s   Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=97/100  Signal level=53/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
此时网络是不能用的,IP、GW、NETMASK都没有呢!


4、配置网络

a、手动配置

查询”BDXT“的网络使用的网段和网关,如下配置:

[root@lnx /]# ifconfig wlan0 10.209.0.83
[root@lnx /]# ifcofnig
wlan0     Link encap:Ethernet  HWaddr 6C:E8:73:C7:6F:92  
          inet addr:10.209.0.83  Bcast:10.255.255.255  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:41 errors:0 dropped:44 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7634 (7.4 KiB)  TX bytes:0 (0.0 B)
添加网关,ping下外网IP:

[root@lnx /]# route add default gw 10.209.0.1
[root@lnx /]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.209.0.1      0.0.0.0         UG    0      0        0 wlan0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 wlan0
[root@lnx /]# ping 114.242.203.140
PING 114.242.203.140 (114.242.203.140): 56 data bytes
64 bytes from 114.242.203.140: seq=0 ttl=63 time=15.100 ms
64 bytes from 114.242.203.140: seq=1 ttl=63 time=4.644 ms
64 bytes from 114.242.203.140: seq=2 ttl=63 time=6.732 ms
64 bytes from 114.242.203.140: seq=3 ttl=63 time=10.670 ms
64 bytes from 114.242.203.140: seq=4 ttl=63 time=7.753 ms
64 bytes from 114.242.203.140: seq=5 ttl=63 time=7.774 ms
64 bytes from 114.242.203.140: seq=6 ttl=63 time=7.763 ms
64 bytes from 114.242.203.140: seq=7 ttl=63 time=7.785 ms
ping域名的话,需要在/etc/resolv.conf添加DNS服务器:
cat /etc/resolv.conf 
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 202.96.128.86
试下baidu.com:
[root@lnx /]# ping www.baidu.com
PING www.baidu.com (220.181.111.188): 56 data bytes
64 bytes from 220.181.111.188: seq=0 ttl=56 time=7.406 ms
64 bytes from 220.181.111.188: seq=1 ttl=56 time=15.358 ms
64 bytes from 220.181.111.188: seq=2 ttl=56 time=7.254 ms
64 bytes from 220.181.111.188: seq=3 ttl=56 time=11.262 ms
64 bytes from 220.181.111.188: seq=4 ttl=56 time=13.297 ms
64 bytes from 220.181.111.188: seq=5 ttl=56 time=12.235 ms
64 bytes from 220.181.111.188: seq=6 ttl=56 time=7.273 ms
64 bytes from 220.181.111.188: seq=7 ttl=56 time=7.298 ms
64 bytes from 220.181.111.188: seq=8 ttl=56 time=10.413 ms

b、动态分配IP

这需要我们在配置busybox的时候,启用它的DHCP功能,这样,在文件系统中就会有一个命令:

udhcpc

该命令默认是配置eth0网络,配置我们的wlan0的话需要带-i选项:

udhcpc -i wlan0
关于该命令,参见Busybox附带文档,该命令需要 /usr/share/udhcpc/default.script 脚本存在。


五、暂时打住

这种连接是不安全的,没有采用任何加密措施,更好的联网方式在document/wpa_cli_with_wpa_supplicant.pdf有说明。

PS:WiFi名词解释

WiFi基本名词
AP:无线接入点,即无线路由器。
信道:不同的传输频率点。
P2P:点对点无线网模式。
WiFi是由AP(Access Point)和无线网卡组成的无线网络。AP称为网络桥接器或接入点,它是当作传统的有线局域网络与无线局域网络之间的桥梁,因此任何一台装有无线网卡的PC均可透过AP去分享有线局域网络甚至广域网络的资源,其工作原理相当于一个内置无线发射器的HUB或者是路由,而无线网卡则是负责接收由AP所发射信号的CLIENT端设备。

 
WiFi在IEEE中的定义是 802.11,802.11a/b/g/n其实是802.11通用标准的补充协议:
1、802.11a,1999年,物理层补充(54Mbit/s,5GHz频道);
2、802.11b,1999年,物理层补充(11Mbit/s,2.4GHz频道);
3、802.11g,物理层补充(54Mbit/s,2.4GHz频道);
4、802.11i,2004年,无线网络的安全方面的补充。(与安全有关与网速改进无关);
5、802.11n,导入多重输入输出(MIMO)和40Mbit信道宽度(HT40)技术,基本上是802.11a/g的延伸版。

无线认证相关名词有:WEP、WPA、WPA2、WPA/WPA2 MIXEDMODE、WPA-PSK、WPA2-PSK、WPS
信息加密的相关名词有:AES、TKIP、AES-CCMP
名词解释:
WEP(Wired Equivalent Privacy):有线等效加密 WEP使用一个静态的密钥来加密所有的通信,已证明易被攻击。
WPA(Wi-Fi Protected Access):WPA 实现了802.11i标准的大部分,是在802.11i完备之前替代 WEP 的过渡方案。
WPA2(Wi-Fi Protected Access 2):WPA2完整的实现了802.11i标准,但不能用在某些旧的网卡上。
WPA/WPA2 MIXEDMODE(WPA/WPA2共混模式):主要为了使仅支持WPA的老网卡和WPA/WPA2都支持的新网卡都能够同时连接到访问点而开发的。当家里无线设备种类很多 且新旧都有时,可以选用共混模式。
WPA-PSK(Wi-Fi Protected Access pre-sharedkey):对应于WPA认证
WPA2-PSK(Wi-Fi Protected Access 2pre-shared key):对应于WPA2认证
WPA/WPA-PSK,WPA2/WPA2-PSK的区别::
使用WPA和WPA2认证时需要一台Radius(Remote Authentication Dial In UserService)服务器的配合,对大企业而言是非常安全的。
使用WPA-PSK/WPA2-PSK认证时,只需要一个共有的key就可以了,8位以上(可以理解为密码),不需要验证服务器,对中小企业及机场等公共场合非常的方便。
WPS( Wi-Fi Protected Setup )不是金山办公软件,2007年初才发布的认证,目的是可以更简单方式来设定无线网络装置,并且保证有一定的安全性。
 
信息加密相关词汇:
AES(Advanced Encryption Standard):高级加密标准 对称密钥加密中最流行的算法之一,也是目前最成熟的。
TKIP(Temporal Key Integrity Protocol):暂时密钥集成协议TKIP是包裹在已有WEP密码外围的一层"外壳"。他解决了WEP的密钥过短和重放攻击(replay attacks)
AES-CCMP(Counter Mode with Cipher Block Chaining Message Authentication CodeProtocol)计数器模式密码块链接消息认证码协议,CCMP是一个协议,它是使用了AES算法又加了一些东西,AES仅是算法,CCMP是加密的协议。
 

ARM开发板加载Realtek-8188CUS USB无线网卡(二)

标签:linux   内核   usb无线网卡   arm   

原文地址:http://blog.csdn.net/u013686019/article/details/44944829

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!