替树莓派配置Wifi
如我的这篇文章结尾所说,我有一个小度Wifi。 本来打算是用小度Wif做树莓派的无线网卡。但一来需要搭建Linux环境,二来突然意识到每次系统升级都需要重新下载linux头文件,重新编译驱动,实在是极不方便。于是决定还是买一个免驱的。
选择的USB无线网卡是各个网站和教程中推荐的 EDUP EP-N8508GS,目前市价大概¥30~40,但是因为树莓派逐渐热了起来,一些无良商家也提高了这款USB无线网卡的价格。如果没有找到价钱合适的,可以到这里来查看树莓派raspbian支持免驱的无线网卡型号列表,从中选择价格合适的免驱无线网卡。
关于EDUP EP-N8508GS这款USB无线网卡的评价我放在了文章的最后,有兴趣的人可以去看看。
Wifi配置
我的Wifi配置基本上是跟着这个教程来的,下面将过程简述,并解释每个命令/语句的作用。
1、检查USB无线网卡是否已经正确识别
将无线USB网卡插入树莓派后启动树莓派,比较不建议热插拔,因为插入的一瞬间会有比较高的电流,如果电源输出不够可能导致树莓派重启。用自己的方法进入shell界面后输入命令:
lsusb
如果树莓派已经正常识别,在显示类似于如下的信息中可以看到你的USB无线网卡设备ID和芯片型号
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter以我的EDUP为例,使用的是Realtek RTL8188CUS的芯片。
最新的raspbian已经有了wifi必要的包,直接插上就可以用了。不过最好还是可以看看iwconfig确认一下,输入
iwconfig
显示如下:
wlan0 IEEE 802.11bgn ESSID:"BabyBeaR_du" Nickname:"<WIFI@REALTEK>" Mode:Managed Frequency:2.412 GHz Access Point: BC:96:80:19:FD:98 Bit Rate:150 Mb/s Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Power Management:off Link Quality=100/100 Signal level=100/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 lo no wireless extensions. eth0 no wireless extensions.
如果出现了wlan0,那说明网卡已经正常工作了。(这里的示例是已经用usb无线网卡连接上网络了,所以会显示ESSID。)如果这里的显示不正常,请安装连接wifi必要的包
sudo apt-get install wireless-tools wpasupplicant firmware-realtek
2、设置wifi
输入如下命令可以搜索附近所有可连接的Wifi AP:
iwlist wlan0 scan
wlan0 Scan completed : Cell 01 - Address: 00:1D:7E:FB:BA:F1 ESSID:"tociek-net" Protocol:IEEE 802.11bg Mode:Master Frequency:2.437 GHz (Channel 6) Encryption key:on Bit Rates:54 Mb/s Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000 IE: WPA Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK Quality=100/100 Signal level=100/100 Cell 02 - Address: 00:21:27:E9:EA:00 ESSID:"Jacek" Protocol:IEEE 802.11bg Mode:Master Frequency:2.437 GHz (Channel 6) Encryption key:on Bit Rates:54 Mb/s Extra:wpa_ie=dd1a0050f20101000050f20202000050f2020050f20401000050f202 IE: WPA Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : TKIP CCMP Authentication Suites (1) : PSK Extra:rsn_ie=30180100000fac020200000fac02000fac040100000fac020100 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : TKIP CCMP Authentication Suites (1) : PSK Preauthentication Supported Quality=61/100 Signal level=54/100(这段返回信息是从这个帖子里复制的,我这边的wifi比较多,返回信息太长了,所以就不贴过来了)
值得注意的是,在windows下使用ICS建立的虚拟无线AP是无法被树莓派检测到的,具体原因不清楚,有时间了再研究。如这篇文章中我说过的,我这里没有wlan环境,之前也是一直用的windows建立的软AP。因此我把之前提到的那个小度WIFI插上了,还真能连上。。。
确定树莓派可以检测到你建立的wifiap之后,按照如下方法配置
使用如下命令获得wifi设置:
wpa_passphrase SSID名称 密码回显如下
network={ ssid="SSID名称" #psk="密码" psk=4b7084a26fea96aaf67518820cc1151fb8f47c5fc0674cd6e877a2ecd70b596e }复制这段回显并保存到自己的配置文件中
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
sudo nano /etc/network/interfaces如果自动获得IP地址,配置内容如下:
allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp pre-up wpa_supplicant -B w -D wext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf post-down killall -q wpa_supplicant如果设置固定IP地址,配置内容如下:
allow-hotplug wlan0 auto wlan0 iface wlan0 inet static address 192.168.1.137 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
连接网络
sudo ifup wlan0
rfkill: Cannot open RFKILL control device ioctl[SIOCSIWAP]: Operation not permitted ioctl[SIOCSIWENCODEEXT]: Invalid argument ioctl[SIOCSIWENCODEEXT]: Invalid argument Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/wlan0/a0:f3:c1:08:21:ac Sending on LPF/wlan0/a0:f3:c1:08:21:ac Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPOFFER from 192.168.1.1 DHCPACK from 192.168.1.1 Reloading /etc/samba/smb.conf: smbd only. bound to 192.168.1.137 -- renewal in 39240 seconds.
关闭连接使用如下命令
pi@raspbmc:~$ sudo ifdown wlan0
Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/wlan0/a0:f3:c1:08:21:ac Sending on LPF/wlan0/a0:f3:c1:08:21:ac Sending on Socket/fallback DHCPRELEASE on wlan0 to 192.168.1.1 port 67 Reloading /etc/samba/smb.conf: smbd only
关于EDUP EP-N8508GS
我选择这款网卡的原因是很多人推荐,但使用过程中发现一些问题。
我拿到这款网卡之后先在电脑上试了一下,发现这款USB无线网卡搜索到的无线AP数量比笔记本上自带的无线网卡少得多。小区中的无线路由很多,电脑自带的无线网卡能够搜到5~7个,然而这款无线网卡只能搜到一个AP。这或许是驱动问题,但是我在实际配置wifi的时候,把树莓派放在路由器(有线)旁边,电脑在隔壁房间建立的wifi,连接及其不稳定。电脑ping树莓派,树莓派ping电脑,丢包率都在90%以上。我只好将树莓派拿到电脑旁边用串口对树莓派进行操作。
并且十分奇怪的是,网络连接也称不上稳定。但是感觉还是有些不稳定。难道是因为电流不足?之前我用树莓派驱动8个LED的时候是直接通过USB转TTL串口的刷机板,用笔记本的USB口对RPi供电。都知道笔记本的USB供电基本上在500mA左右,并且我还同时外接有键盘、显示器和散热器。这说明树莓派在低负荷下,使用电流不会超过500mA。然而,我的RPi使用的电源标称输出是1A,那即是说这款无线网卡自身需要500mA以上的电流?给跪了