按照惯例,还是先将要感谢的兄弟姐妹感谢完了再写正文。感谢CSDN论坛、EEWorld论坛上的兄弟姐妹,请原谅我在事后记录的时候忘了你们的大名,如果对大家有用,是你们的功力深厚,如果是对大家无用,原谅我的才疏学浅!
BBB上有USB Host,因而使用无线网卡是可以通过WIFI上网的。WIFI的加密方式有多种,无线网卡本身的控制芯片也有多种,因此,BBB通过无线上网也有要注意的地方。
以下操作的前提是:你已经可以控制你的BBB,无论是通过以太网或USB OTG的SSH,还是串口。我的无线路由采用WPA2-PSK加密方式,这是现在最常用也是较安全的一个模式,其它的加密方式不详说,用的少。需要的话请自行度娘。
一、无线网卡
无线网卡的控制芯片主流的就那么几种,但不管是BBB的angstrom还是网上的已编译好的debian、ubuntu的img,内核主要是linux 3.8.13(最常见),因此支持的无线网卡种类有限,具体可参考BBB的官方WIKI(http://eewiki.net/display/linuxonarm/BeagleBone+Black)。
需要提的是大家常用的USB无线网卡中,TPLink,水星、能达等,水星的芯片比较特殊,3.8的内核不能够原生支持,若想使用,请自行编译其驱动,并加入内核。从初学者来说,不建议使用,当然可以用,可能需要至少两篇blog才能说清楚,这个问题我们以后再说。
我使用的是一款以前老机上用的一个能达的USB无线网卡,控制芯片是RT5370系列,3.8内核本身就带它的驱动。
二、查询是否支持USB无线网卡
上电以后,插入无线网卡,稍等片刻(像我这样的懒人是直接插上以后,再通电,这个就没有拔下来过,)输入以下命令,查询USB设备,可以看到已经挂载的USB设备。
1: debian@arm:~$ sudo lsusb
2: Bus 001 Device 002: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
3: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
4: Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
如果你看到以上类似的信息,wireless Adapter,恭喜你,你的网卡是支持的,并且已挂载。
三、配置无线网卡
1、安装无线上网工具
1: debian@arm:~$ sudo aptitude install wireless-tools
2: No packages will be installed, upgraded, or removed.
3: 0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
4: Need to get 0 B of archives. After unpacking 0 B will be used.
当然,我已安装,故而显示不需再安装。
2、查询无线网卡是否正常
如果无线网卡正常,会生成相应的节点,wlan0。查询便知:
1: debian@arm:~$ sudo ifconfig -a
2: eth0 Link encap:Ethernet HWaddr c8:a0:30:b0:16:72
3: UP BROADCAST MULTICAST MTU:1500 Metric:1
4: RX packets:0 errors:0 dropped:0 overruns:0 frame:0
5: TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
6: collisions:0 txqueuelen:1000
7: RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
8: Interrupt:56
9:
10: lo Link encap:Local Loopback
11: inet addr:127.0.0.1 Mask:255.0.0.0
12: inet6 addr: ::1/128 Scope:Host
13: UP LOOPBACK RUNNING MTU:65536 Metric:1
14: RX packets:0 errors:0 dropped:0 overruns:0 frame:0
15: TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
16: collisions:0 txqueuelen:0
17: RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
18:
19: usb0 Link encap:Ethernet HWaddr 62:91:b6:06:4e:51
20: inet addr:192.168.7.2 Bcast:192.168.7.3 Mask:255.255.255.252
21: UP BROADCAST MULTICAST MTU:1500 Metric:1
22: RX packets:0 errors:0 dropped:0 overruns:0 frame:0
23: TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
24: collisions:0 txqueuelen:1000
25: RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
26:
27: wlan0 Link encap:Ethernet HWaddr c8:3a:35:c4:04:8e
28: inet addr:192.168.100.102 Bcast:192.168.100.255 Mask:255.255.255.0
29: inet6 addr: fe80::ca3a:35ff:fec4:48e/64 Scope:Link
30: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
31: RX packets:3711 errors:0 dropped:0 overruns:0 frame:0
32: TX packets:2784 errors:0 dropped:0 overruns:0 carrier:0
33: collisions:0 txqueuelen:1000
34: RX bytes:1648932 (1.5 MiB) TX bytes:440600 (430.2 KiB)
我的已配置好,故有IP,如果无线网卡正常,是可以看到wlan0的!先不管有没有IP。
三、启用你的wlan0节点
1: debian@arm:~$ sudo ifconfig wlan0 up
2: [sudo] password for debian:
3: [ 9228.336381] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
4: debian@arm:~$ [ 9235.758646] wlan0: authenticate with a8:57:4e:c8:f8:22
5: [ 9235.795149] wlan0: send auth to a8:57:4e:c8:f8:22 (try 1/3)
6: [ 9235.803004] wlan0: authenticated
7: [ 9235.812066] wlan0: associate with a8:57:4e:c8:f8:22 (try 1/3)
8: [ 9235.823099] wlan0: RX AssocResp from a8:57:4e:c8:f8:22 (capab=0x431 status=0 aid=4)
9: [ 9235.839171] wlan0: associated
10: [ 9235.842480] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
如果看到ready,你成功的启用了你的无线网卡。
四、扫描你的无线网络
1: debian@arm:~$ sudo iwlist wlan0 scan
2: wlan0 Scan completed : Cell 01 - Address: 9C:21:6A:DA:A2:8A Channel:1 Frequency:2.412 GHz (Channel 1) Quality=31/70 Signal level=-79 dBm Encryption key:on ESSID:"TP-LINK_DAA28A" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=0000002cf8ad5180 Extra: Last beacon: 1580ms ago IE: Unknown: 000E54502D4C494E4B5F444141323841 IE: Unknown: 010882848B960C121824 IE: Unknown: 030101 IE: Unknown: 2A0100 IE: Unknown: 32043048606C IE: Unknown: 2D1A6E1003FFFF000000000000000000000000000000000000000000 IE: Unknown: 3D1601051100000000000000000000000000000000000000 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: WPA Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00 IE: Unknown: DD05000AEB0100 IE: Unknown: DD8E0050F204104A0001101044000102103B00010310470010000000000000100000009C216ADAA28A1021000754502D4C494E4B10230009544C2D57523834324E10240003342E3010420007312E312E312E331054000800060050F204000110110018576972656C657373204E20526F757465722057523834324E100800022288103C0001011049000600372A000120 Cell 02 - Address: A8:57:4E:C8:F8:22 Channel:1 Frequency:2.412 GHz (Channel 1) Quality=70/70 Signal level=-25 dBm Encryption key:on ESSID:"Sys_TP_Net" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=0000002d0d14c180 Extra: Last beacon: 357ms ago IE: Unknown: 000A5379735F54505F4E6574 IE: Unknown: 010882848B960C121824 IE: Unknown: 030101 IE: Unknown: 2A0100 IE: Unknown: 32043048606C IE: Unknown: 2D1A6E1003FFFF000000000000000000000000000000000000000000 IE: Unknown: 3D1601050000000000000000000000000000000000000000 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: WPA Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00 IE: Unknown: DD05000AEB0100 IE: Unknown: DD8E0050F204104A0001101044000102103B0001031047001000000000000010000000A8574EC8F8221021000754502D4C494E4B10230009544C2D57523834324E10240003342E3010420007312E312E312E331054000800060050F204000110110018576972656C657373204E20526F757465722057523834324E100800022288103C0001011049000600372A000120
3:
你应该看到你的无线网络了吧?
五、生成密钥文件
生成密匙文件/etc/wpa_supplicant.conf 连接的无线路由ESSID为TEST,密码是12345678,使用如下命令行生成文件。
1: debian@arm:~$ sudo wpa_passphrase TEST 12345678 > /etc/wpa_supplicant.conf
六、连接你的无线路由器
1: debian@arm:/etc/network$ sudo nano /etc/network/in*ces
2:
加入以下内容(或修改原有内容)为:
1: # WiFi Example
2: auto wlan0
3: iface wlan0 inet dhcp
4: wpa-ssid "你?的?无?线?网?络?ssid"
5: wpa-psk "你?的?无?线?网?络?密?码?"
1: debian@arm:/etc/network$ sudo ifup wlan0
2: [10257.062541] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
3: Internet Systems Consortium DHCP Client 4.2.2
4: Copyright 2004-2011 Internet Systems Consortium.
5: All rights reserved.
6: For info, please visit https://www.isc.org/software/dhcp/
7:
8: Listening on LPF/wlan0/c8:3a:35:c4:04:8e
9: Sending on LPF/wlan0/c8:3a:35:c4:04:8e
10: Sending on Socket/fallback
11: DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
12: [10259.727874] wlan0: authenticate with a8:57:4e:c8:f8:22
13: [10259.760947] wlan0: send auth to a8:57:4e:c8:f8:22 (try 1/3)
14: [10259.769460] wlan0: authenticated
15: [10259.776952] wlan0: associate with a8:57:4e:c8:f8:22 (try 1/3)
16: [10259.787700] wlan0: RX AssocResp from a8:57:4e:c8:f8:22 (capab=0x431 status=0 aid=4)
17: [10259.803861] wlan0: associated
18: [10259.807175] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
19: DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 9
20: DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 15
21: DHCPREQUEST on wlan0 to 255.255.255.255 port 67
22: DHCPOFFER from 192.168.100.253
23: DHCPACK from 192.168.100.253
24: bound to 192.168.100.102 -- renewal in 754144638 seconds.
1: debian@arm:/etc/network$ sudo ping www.163.com.cn
2: PING www.163.com.cn (219.137.167.157) 56(84) bytes of data.
3: 64 bytes from 219.137.167.157: icmp_req=1 ttl=54 time=57.0 ms
4: 64 bytes from 219.137.167.157: icmp_req=2 ttl=54 time=55.5 ms
5: 64 bytes from 219.137.167.157: icmp_req=3 ttl=54 time=56.9 ms
6: 64 bytes from 219.137.167.157: icmp_req=4 ttl=54 time=59.0 ms
7: 64 bytes from 219.137.167.157: icmp_req=5 ttl=54 time=57.5 ms
8:
9: --- www.163.com.cn ping statistics ---
10: 5 packets transmitted, 5 received, 0% packet loss, time 22715ms
11:
速度不快啊。,记得用ctrl-c退出ping状态哈,否则。。。。。
以上均是个人在玩中间的一点记录,当然希望与大家多多交流!啰嗦了这么多,如果有疑问请直接在评论中留言或站内交流。我水平有限,刚接触嵌入式linux,以前在51和cortexM3上用的多,上位机的软件编的多,用C和汇编多,也画一些双面板、四层板。
下次我们说点什么呢,我想还是说点开发环境相关的东东吧,比如交叉编译,hello world什么的吧。