ubuntu 14.04 linux下wifi驱动安装使用的一些笔记

来源:互联网 发布:网络硬件设备 编辑:程序博客网 时间:2024/06/02 01:33

本文整理一下在学习wifi驱动安装过程中的一些笔记。本来想研究无线网卡驱动源码的,但水太深了,目前认知还不够,为有留待后续再说(这个“后续”一般都是无下文的伏笔)。

一般地,无线网卡需要驱动和对应的固件才能正常使用。而固件一般只有二进制格式的bin文件。本文使用的系统是ubuntu14.04,这个系统上的KO比较多(在/lib/modules/3.13.0-32-generic/)、固件也比较多(在/lib/firmware目录),一般常见的驱动都会支持。但一些新的硬件没有及时被支持,可以选择更新系统——话说现在ubutun都到16.04了。如果最新的系统都不支持,只好自己找资源,自己编译搜索了。

常用的系统,都支持用户空间固件加载,内核配置如下:

Device Drivers  --->   Generic Driver Options  ---> -*- Userspace firmware loading support

如果不想编译内核,可以查一下系统配置文件(我的系统是/boot/config-3.13.0-32-generic),看看里面是否有:CONFIG_FW_LOADER=y这个编译选项,如有,就无须重新编译内核了。

下面介绍三款常见的无线网卡在ubuntu系统的识别过程(不是使用)。

一、Intel 7260

Intel的无线网卡使用ilwifi驱动,Intel官网有其驱动固件,在http://linuxwireless.org/en/users/Drivers/iwlwifi/上面也有部分固件文件。Intel的固件文件形式是iwlwifi-xxx.ucode,比如7260的固件文件名称是iwlwifi-7265-9.ucode。把固件拷贝到系统的/lib/firmware目录,命令如下:

# cp iwlwifi-*.ucode /lib/firmware

除了固件,还需要驱动的支持。幸运的是,ubuntu14.04已经有7260的支持了,用lspci查看一下:

$ lspci | grep 7260
03:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb)

如果没有输出信息说明没有驱动支撑,则要自己编译iwlwifi了。本文不涉及。

二、博通 bcm


$ lspci

....
03:00.0 Network controller: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter (rev 03)

...

三、高通 QCA988x

Atheros公司(Atheros 被高通收购了)的QCA988x芯片使用的驱动是ath10k。Linux下有一系列的Atheros驱动,如ath6k,ath9k。最新的是ath10k,它驱动支持802.11n和802.11ac。幸运的是,ubuntu14.04已经安装有ath10k的驱动,支持qca988x,用lspci查看:

# lspci

...
04:00.0 Network controller: Qualcomm Atheros QCA988x 802.11ac Wireless Network Adapter

...

类似地,还要看固件的支持,如果固件不存在或版本不对,在系统启动时会提示错误信息,下面是固件文件不存在的错误信息:

[   10.715467] ath10k: could not fetch firmware file 'ath10k/QCA988X/hw2.0/firmware-2.bin': -2
[   10.723987] ath10k: could not fetch board data (-2)
[   10.728975] ath10k: could not fetch firmware files (-2)
[   10.729181] do_IRQ: 0.130 No irq handler for vector (irq -1)
[   10.974764] ath10k: could not probe fw (-2)
根据信息提示,需要在/lib/firmware/ath10k/QCA988X/hw2.0存在firmware-2.bin文件。那么下载固件拷贝到该目录即可。地址:https://github.com/kvalo/ath10k-firmware。


参考资料:

1、http://linuxwireless.org/en/users/Drivers/iwlwifi/

2、http://linuxwireless.org/en/users/Drivers/ath10k

3、https://github.com/kvalo/ath10k-firmware

4、http://zh-cn.broadcom.com/support/?gid=1

5、Linux固件大本营:http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git


李迟 2016.7.21 周四 夜 

1 0