树莓派3已经自带无线网卡,这是一种极大的便捷,真正将树莓派变成躲在一个角落里,安静地搞事情的计算机。然而对于树莓派B+或者树莓派2,除了少数免驱的外接无线网卡外(树莓派系统已经自带了驱动),大多数外接无线网卡还是需要经过配置才能使用的,下面就介绍使用过的一款无线网卡(ComFast-WU855P)的驱动配置过程,该无线网卡采用 REALTEK8192 高阶芯片(从淘宝上了解到的,不知道对不对),这是一款常用的芯片,本文安装的驱动理论上对采用该芯片的无线网卡都是可用的。
COMFAST-WU855P
本文使用的是与下图这款无线网卡类似的 COMFAST 的一款无线网卡产品。
以内核模块的形式编译安装RTL8192驱动
Reference:树莓派2编译天猫魔盘驱动(8192eu)
注意,下面的所有操作都是通过 ssh 直接在树莓派上进行构建,所以相对耗时。通过交叉编译环境进行构建则速度明显加快,不过配置交叉编译环境过程也不是那么简单,有兴趣的同学可以尝试一下。
具体的步骤如下:
下载内核源代码,为编译 RTL8192 驱动模块做准备
- 下载 rpi-source 程序
1
2
3
4$ cd ~/Workspace
$ mkdir wireless && cd wireless
$ wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source
$ chmod a+x rpi-source- 运行 rpi-source,这个程序会根据当前内核信息去官方github上下载相应的源码,下载根据网络需要一些时间(我大概等了15分钟)。
1
$ ./rpi-source
- 下载程序需要一些依赖,根据提示通过 apt-get 安装即可,
ERROR:
bc is NOT installed. Needed by ‘make modules_prepare’. On Raspbian, run ‘sudo apt-get install bc’ to install it.
*** ncurses-devel is NOT installed. Needed by ‘make menuconfig’. On Raspbian sudo apt-get install libncurses5-dev
这里我就需要安装下面几个依赖:1
2
3$ sudo apt-get install bc
$ sudo apt-get install libncurses5-dev
$ ./rpi-source- 下载程序运行中间的部分打印信息如下:
Saving to: ‘/home/pi/linux-fa00f31867d8f7b7bb2ad2eb6c35f32fa468ca1e.tar.gz’
/home/pi/linux-fa [ <=> ] 129.96M 1.92MB/s in 73s
2017-02-03 05:46:58 (1.79 MB/s) - ‘/home/pi/linux-fa00f31867d8f7b7bb2ad2eb6c35f32fa468ca1e.tar.gz’ saved [136269962]
Unpack kernel source…
*** Create symlink: /home/pi/linux
*** Create /lib/modules//{build,source} symlinks
*** Kernel source already installed: /home/pi/linux-fa00f31867d8f7b7bb2ad2eb6c35f32fa468ca1e因此会在 “~ 目录” 下看到(如下图),此外还创建了一些快捷方式,总之,就是为下一步编译内核模块做好准备。
获取 RTL8192 驱动源代码,构建并安装 RTL8192 内核模块
1
2
3
4
5
6
7$ cd ~/wireless
$ git clone https://github.com/Mange/rtl8192eu-linux-driver.git
# or
# git clone https://github.com/pvaret/rtl8192cu-fixes.git
$ cd <your-git-clone-driver>
$ make
$ sudo make install注:亲测两个仓库的代码都可以编译构建。
- 可能会出现的问题
Makefile:616: arch/armv6l/Makefile: No such file or directory
make[1]: *** No rule to make target ‘arch/armv6l/Makefile’. Stop.
make[1]: Leaving directory ‘/home/pi/linux-fa00f31867d8f7b7bb2ad2eb6c35f32fa468ca1e’
Makefile:1335: recipe for target ‘modules’ failed
make: *** [modules] Error 2- 解决的方法是,根据提示创建通过 arch/armv6l 到 arm 的软链接,
1
2
3
4# `uname -r`是uname -r命令返回的结果,会自适应到不同的内核版本
$ cd /lib/modules/`uname -r`/build
# 根据错误提示,参考博文是作 **arch/armv7l** 的软连接,我这里是 **arch/armv6l**
$ ln -sf arm arch/armv6l- 顺利进行编译构建(树莓派B+大约需要17分钟),然后安装到系统目录下:
1
2
3$ cd <your-git-clone-driver>
$ make
$ sudo make install加载 RTL8192 内核模块
1
$ sudo modprobe 8192eu
然后,插上USB无线网卡,ifconfig 或者 iwconfig 应该可以看到 wlan0,如下图: