0%

树莓派使用USB网卡连接无线网络

说明

前面说过,我买到的这个树莓派是一代A+,没网口,Wi-Fi和蓝牙也都没有,就仅仅只有一个USB接口,资源少的可怜,怎么办呢,手里闲置的USB网卡刚刚好可以用到了。这个网卡是802.11/n的,免驱,插上就能用。于是网上爬了一些内容,也顺利连接了家里的Wi-Fi,感觉美滋滋~~

说明一下,一代树莓派A+的功耗非常低,但是线材还是要有保障的,今天刚刚连接USB网卡的时候开机一直提示低电压保护,虽然可以使用但是我担心后面会出问题,所以换了一根线,完美解决!参考威胁电子的统计资料,这个型号功耗在3.5W左右,但是这里建议还是使用5V2A及以上的供电!

好了,说了这么多废话,赶紧插上网卡准备折腾吧。

硬件的相关信息

首先查看使用的无线网卡,指令如下:

1
2
3
root@raspberrypi:~# lsusb
Bus 001 Device 002: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这里偷懒,直接使用的root用户,可以看到,上面显示的 Device 002就是我的无线网卡,系统已经自带该网卡的驱动。

这里比较推荐使用新的系统,最好是直接去树莓派的官网下载,因为系统增加新网卡的支持,能免去编译驱动的麻烦,如果你的无线网卡在系统中无法识别,请自行编译安装驱动,这个的话就需要一定的工地了,最好是买免驱的吧,基本上都是免驱的吧。

查看已经连接的网络

使用iwconfig查看wlan0的详情,使用如下:

1
2
3
4
5
6
7
8
9
10
11
12
root@raspberrypi:~# iwconfig
wlan0 IEEE 802.11 ESSID:"OpenWrt"
Mode:Managed Frequency:2.467 GHz Access Point: 6C:FD:B9:CC:9B:1B
Bit Rate=72.2 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=70/70 Signal level=-37 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:1420 Invalid misc:135 Missed beacon:0

lo no wireless extensions.

这个OpenWrt 就是连接的Wi-Fi,还有连接频段和信号质量等等信息,如果没有连接的话就不会显示这么多信息,而且是”off/any”这个状态。

配置无线网络

扫描可见SSID

使用sudo iwlist wlan0 scan指令扫描附近可见的SSID,并截取想要连接的无线路由器的信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
root@raspberrypi:~# iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 6C:FD:B9:CC:9B:1B
Channel:12
Frequency:2.467 GHz (Channel 12)
Quality=67/70 Signal level=-43 dBm
Encryption key:on
ESSID:"OpenWrt"
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=00000120c308241c
Extra: Last beacon: 60ms ago
IE: Unknown: 00074F70656E577274
IE: Unknown: 010882848B960C121824
IE: Unknown: 03010C
IE: Unknown: 0706303020010C14
IE: Unknown: 2A0100
IE: Unknown: 32043048606C
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: 0B050300A20000
IE: Unknown: 2D1AEC0213FFFF000001000000000000000100000000000000000000
IE: Unknown: 3D160C070600000000000000000000000000000000000000
IE: Unknown: 7F080000000000000140
IE: Unknown: DD180050F2020101010003A4000027A4000042435E0062322F00

设置SSID和对应密码

使用如下命令密码生成SSID和对应的密码,复制内容备用

1
2
3
4
5
6
root@raspberrypi:~# wpa_passphrase OpenWrt Password
network={
ssid="OpenWrt"
#psk="Password"
psk=583be43e0ffa97c1247d697a765edde350b37c98914307c46e87a00c2365dffc
}

上面的OpenWrtPassword对应自己的Wi-Fi的SSID和密码。

然后通过重定向命令写入到文件备用:

1
root@raspberrypi:~# wpa_passphrase MERCURY_4E1A blackcar > ~/wifi.conf

修改wpa_supplicant.conf

这一步需要管理员权限的,现在把内容粘贴到 /etc/wpa_supplicant/wpa_supplicant.conf,如下:

1
root@raspberrypi:~# less wifi.conf >> /etc/wpa_supplicant/wpa_supplicant.conf

或重定向的方式给 wpa_supplicant.conf 追加 wifi.conf :

1
root@raspberrypi:~# less wifi.conf >> /etc/wpa_supplicant/wpa_supplicant.conf

配置文件

配置/etc/network/interfaces,命令如下:

1
root@raspberrypi:~# nano /etc/network/interfaces

下面是参考的配置,当网线和Wifi同时连接时会独立获得ip,wlan0的配置表示通过DHCP获取IP地址,默认的只到了第七行 source 这里,后面的内容复制过去保存即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

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

重启网络

设置完成后保存退出,并重启树莓派的的网络:

1
2
root@raspberrypi:~# /etc/init.d/networking restart
root@raspberrypi:~# ifup wlan0

我看到这里前面的都完满成功,但是Wi-Fi就是连不上,有一点点懵,最后干脆使用重启大法,后期之后就好啦!

1
root@raspberrypi:~# reboot

查看连接后信息

连接成功后,用iwconfig查看信息,然后用ifconfig查看可知获得IP地址,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
root@raspberrypi:~# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2 bytes 78 (78.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 78 (78.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.153 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::2232:33ff:fec7:185b prefixlen 64 scopeid 0x20<link>
ether 20:32:33:c7:18:5b txqueuelen 1000 (Ethernet)
RX packets 19440 bytes 27371475 (26.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11646 bytes 1101351 (1.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

结语

到这里就全部结束了,按照惯例还是感谢看到的各路大神的分享,分别有:phantomvk 的简书,brightmingweixin_33918357hustsselbj在CSDN上的分享,十分感谢!

-------------本文结束感谢您的阅读-------------