RaspberryPi, Use an external wireless card(ComFast-WU855P)

  树莓派3已经自带无线网卡,这是一种极大的便捷,真正将树莓派变成躲在一个角落里,安静地搞事情的计算机。然而对于树莓派B+或者树莓派2,除了少数免驱的外接无线网卡外(树莓派系统已经自带了驱动),大多数外接无线网卡还是需要经过配置才能使用的,下面就介绍使用过的一款无线网卡(ComFast-WU855P)的驱动配置过程,该无线网卡采用 REALTEK8192 高阶芯片(从淘宝上了解到的,不知道对不对),这是一款常用的芯片,本文安装的驱动理论上对采用该芯片的无线网卡都是可用的。

COMFAST-WU855P

  本文使用的是与下图这款无线网卡类似的 COMFAST 的一款无线网卡产品。

以内核模块的形式编译安装RTL8192驱动

Reference:树莓派2编译天猫魔盘驱动(8192eu)

  注意,下面的所有操作都是通过 ssh 直接在树莓派上进行构建,所以相对耗时。通过交叉编译环境进行构建则速度明显加快,不过配置交叉编译环境过程也不是那么简单,有兴趣的同学可以尝试一下。
  具体的步骤如下:

  1. 下载内核源代码,为编译 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

    因此会在 “~ 目录” 下看到(如下图),此外还创建了一些快捷方式,总之,就是为下一步编译内核模块做好准备。

  2. 获取 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/armv6larm 的软链接,
    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
  3. 加载 RTL8192 内核模块

    1
    $ sudo modprobe 8192eu

    然后,插上USB无线网卡,ifconfig 或者 iwconfig 应该可以看到 wlan0,如下图:

文章目录
  1. 1. COMFAST-WU855P
  2. 2. 以内核模块的形式编译安装RTL8192驱动