为树莓派配置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

然后配置/etc/network/interfaces

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以上的电流?给跪了

============Update 2014-4-28============== 试过插上无线网卡之后,接标称1A的店小二电源,直接驱动8个LED和通过74HC164驱动8个LED。过程中出现了不能正常传输串行信号异常的情况,强烈怀疑是供电不足。说是 如果怀疑树莓派供电不足,可以测量TP1和TP2之间的电压,是否在5V上下15%之间。可惜没有万用表... google了关于充电器的识别电阻的资料后发现,对于一些充电器,需要给数据的两脚上加指定的电压才能激活1A(或者有些是2A输出)。 另外,使用树莓派的micro usb口供电的话,要经过一个 类似于电压转换的电路。我表示不太懂,但是感觉这电路肯定是有损耗的...而直接通过GPIO取电的话没有经过这个电路,所以GPIO供电的效率更高。

评论!

社交