A-A+

LinuxMint编译内核驱动无线网卡

2016年02月01日 硬件配置 评论 3 条 阅读 5,284 views 次

感谢薄荷开源网资深网友 @离枝 投稿。

 

作为一个爱折腾的人,LZ讲一讲自己的笔记本配置外接 USB迷你无线网卡的经历吧,希望给大家做个参考,去探索Linux中更有意思的东西。

其实LZ的笔记本自带无线网卡(这不废话嘛~),不过在Linux下效果实在不太理想,从内核3.13开始免驱,使用起来却是另一回事,信号不好可以忍受,让人哭笑不得的是经常掉线,一遇下载必然掉线,这让浏览器下载困难重重。

某天好友送了一个杂牌USB无线网卡,好吧,它确实连商标之类的文字图案也没有。插在刚升级的 mint 17.3 上试了试,无法显示。也就是说,它需要安装驱动才可使用。好吧,我们就开始吧。

  • 先确定外接网卡对应的信息。在终端里 输入 lsusb 显示。为了识别,我们可以使用一个小技巧,比如在插入前后分别用lsusb查看,多出来的信息,就是无线网卡的。如下图,白色条状标出的即是。

01-compile-kernel-wireless

如上图,无线网卡的 USB ID 为148f 7601,这个ID可以简单理解为芯片的身份,每种芯片身份都是独一无二的。关于芯片的更多信息,可以在下面这个网站查到,https://wikidevi.com/wiki/List_of_Wi-Fi_Device_IDs_in_Linux

当然,为了方便大家,我做了一个表格,大家可以在表格里看到:

USB ID 内核开始支持 芯片
USB_cdab_8010 v4.4 rtl8xxxu
USB_0789_016d v4.4 rtl8xxxu
USB_7392_7710 v4.2 mt7601u
USB_2a5f_1000 v4.2 mt7601u
USB_2955_1001 v4.2 mt7601u
USB_2955_0001 v4.2 mt7601u
USB_2717_4106 v4.2 mt7601u
USB_2001_3d04 v4.2 mt7601u
USB_2001_3c25 v4.1 rt2800usb
USB_2001_330d v4.1 rtl8192cu
USB_2001_330b v4.4 rtl8xxxu
USB_1b75_3070 v4.3 rt2800usb
USB_148f_760d v4.2 mt7601u
USB_148f_760c v4.2 mt7601u
USB_148f_760b v4.2 mt7601u
USB_1286_204e v4.3 mwifiex_usb
USB_1286_204d v4.3
USB_1286_204a v4.0 mwifiex_usb
USB_1286_2049 v4.0 mwifiex_usb
USB_1058_0631 v4.4 rtl8xxxu
USB_0e8d_760b v4.2 mt7601u
USB_0bda_8724 v4.4 rtl8xxxu
USB_0bda_2e2e v4.4 rtl8xxxu
USB_0bda_1e1e v4.4 rtl8xxxu
USB_0bda_1724 v4.4 rtl8xxxu
USB_0bda_0724 v4.4 rtl8xxxu
USB_0b05_17d3 v4.2 mt7601u
USB_0b05_17ba v4.1 rtl8xxxu,rtl8192cu
USB_0846_9043 v4.3 rtl8192cu
USB_06f8_e035 v4.4 rtl8xxxu
USB_04bb_094c v4.4 rtl8xxxu
USB_04bb_0950 v4.4 rtl8xxxu
USB_0471_209e v4.1 ath9k_htc
USB_043e_3101 v4.5-rc1
USB_148f_760a v4.2 mt7601u
USB_148f_7601 v4.2 mt7601u
USB_13d3_3434 v4.2 mt7601u
USB_13d3_3431 v4.2 mt7601u

如上面表格所示,usb ID  148f 7601, 为mt7601u的芯片,他在内核4.2开始支持。也就是说,要想让这个芯片工作,可以靠升级内核解决。而很可惜,貌似我安装的mint 17.3 不支持4.2及以上的内核,我们就来编译吧。

2、找到芯片的驱动,由于官方默认驱动有bug,好多热心的大神已经在原有驱动上重新编译了一遍,比如下面两个:

https://github.com/porjo/mt7601 (有相关的ZIP压缩包)。

https://github.com/kuba-moo/mt7601u(里面有作者本人的详细教程)

02-compile-kernel-wireless

我们可以下载 porjo 的压缩包,并用 kuba-moo 给出的方法安装。

 

  • 下载 mt7601-master.zip,并解压。我们可以在 ./src/common/rtusb_dev_id.c里看到里面有关于148f 7601 的信息,没有的话,就添加一行

{USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */

03-compile-kernel-wireless

4、使用终端打开文件夹    (下载的目录)/mt7601-master/src ,如下图

04-compile-kernel-wireless

依次执行 $ make

# modprobe mac80211

# insmod  ./mt7601Usta.ko (解释一下,mt7601Usta.ko这个文件可能在 你下载的文件夹/mt7601-master/src/os/linux 里找到)

而后网卡成功识别。

==============我是分割线========================

不过同类资源有好多,而我在这里另找了一个资源,如下:

http://bazaar.launchpad.net/~victored/+junk/mt7601U-linux-driver-64bit/tarball/2

点击链接下载后,得到一个*.tgz 的压缩包,解压后得到一个文件夹,使用终端打开 ~/mt7601U-linux-drive-64bit 文件夹 (在文件夹上右击,出现相关选项)。

依次执行 $ sudo make

05-compile-kernel-wireless

$ sudo make install

$ sudo modprobe mt7601Usta

成功识别。

==============我是分割线========================

可能有朋友会说,我按同样的方法安装好了,网卡也识别了,可是有时会出现死机,或是重启显示黑屏。我们继续研究,打开 /var/lib/usbutils/usb.ids 这个文件,可以看到,在mint 17.3 里, usb.ids的版本日期是2013年5月,许多新的usb ID它就不认识啦。别担心,我们可以去 http://www.linux-usb.org/usb.ids 里下载最新的版本。(打开网页,鼠标右击,选择“将页面另存为(P)”即可下载。)然后将旧文件 usb.ids 替换掉就可以了,这里可能需要root权限。

OK,开始愉快地网上冲浪吧~

Copyright © 薄荷开源网 保留所有权利.   Theme  Ality

用户登录

分享到: