红联Linux门户
Linux帮助

Linux环境编译安装USB无线网卡驱动

发布时间:2015-12-18 21:49:25来源:linux网站作者:ostatsu

引言

本文记录我在 Linux 环境下编译安装 USB 无线网卡驱动的一次经历,供和我一样的初学者参烤。
ps.本文中所有“烤”字均为错别字,原因是 OSC 居然惨无人道用文章中所有字判断是否能组成敏感词。
先说些废话。我对于 Linux 的了解仅限于几年前还未工作时装过十七八次各种发行版学过一些基础操作,以及在工作中需要对 DEV 和 UAT 环境做一些配置、项目部署、查看日志等操作。这次想要提高一下自己,啃完本入门书后便下定决心把电脑换成 Linux 系统,整装入坑。谁知刚开始就遇到了不能上网的问题,经过一番查找,也算是第一次解决了问题,理解了一些东西,故记录下过程。


步骤

我是在前两天安装的,今天有时间才写了文,若步骤有啥问题,还望指出。
Linux 发行版 Fedora 23,无线网卡型号 TP-LINK TL-WN823N。若与各位环境不符,其实也没太大关系,一般情况应该均可解决。


1.背景说明

又一些废话。在刚开始进入 LiveCD 安装 Fedora 时我脑子卡壳并没有烤虑到 USB 无线网卡没有被识别到,安装好后才发现无法上网。这是我自己家里的电脑,放在卧室的台式机,我家路由用的华为荣耀立方,当然就放到了客厅电视旁边当电视盒用,觉得电力猫太贵,随便买了个无线网卡来上网。
发现无线无法上网以及没有太长的网线后,我懒得把又大又重的主机搬到客厅来安装,尝试与我另一台笔记本用网线直连共享网络,无奈笔记本也被我装了 CentOS,随便配了配居然不行,就打算从笔记本上下载包来安装,但实在太麻烦,就在我打算搬主机的时候,想到了我家里不止一个 USB 无线网卡,我还有 360 随身 WIFI 2 和 360 随身 WIFI 3 各一个,都插上试了试,当然也不行,但我以前旧电脑上还用过另一个 USB 无线网卡,是 FAST FW150U,翻箱倒柜找到后,发现居然可以即插即用来上网,所以全文完……
开玩笑的,驱动还是要装的,原来的网卡是 150M 的速度比较慢,信号也从来不满格,这次拿来充当临时网络环境。
关于 360 随身 WIFI 3 的题外废话

上文说到那个 360 随身 WIFI 3 是我原来配电脑时本来想当成无线网卡才图便宜买的,结果当时装好系统后,装完它的驱动就去下载其他驱动程序和软件,但我发现只要下载个文件安装时就会提示 “XXX 已停止工作”,我把程序拷到其他电脑上,查看 hash,发现被篡改了。我当时用了各种办法重装系统,以为是 SSD 问题就换成了原来的 HDD,还换了内存,都一样,后来想到用原来的 USB 无线网卡试试,居然是好的。我去网上搜了一下,发现也有人出现了这种情况,经过讨论确认都是使用 360 随身 WIFI 3 当无线网卡用的,据说需要修复 IE。于是我给 360 发了邮件说明详情,回复我说请在其他环境测试之类的,我就没理,换成了现在的这个 USB 无线网卡。


2.准备工作

首先就像上文说的,还是需要有个网络环境,Fedora 自带软件不是特别多,若无网络环境各种依赖包还需要自己找,应该比较麻烦。
装好系统后先进行更新:

[ostatsu@localhost ~]$ sudo dnf update -y

更新内核后重启。
查看系统中的 USB 设备:

[ostatsu@localhost ~]$ lsusb
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 005: ID 0bda:818b Realtek Semiconductor Corp.
Bus 005 Device 006: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 003: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 007 Device 002: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Ralink 那个是我能上网的无线网卡,不管它。
Realtek 这个就是需要安装驱动的无线网卡了,其 ID 为 0bda:818b。
Google 此 ID,得知其芯片组型号为 RTL8192EU。
去 Realtek 官网找一下,发现没有提供 Linux 版驱动,于是去 github 上找到了源码。
git 或直接下载 zip 包:

[ostatsu@localhost ~]$ wget -P ~/Downloads/tmp https://github.com/jpostma/rtl8192eu/archive/master.zip


3.编译环境

安装开发工具组:

[ostatsu@localhost ~]$ sudo dnf groupinstall "Development Tools" -y

主要使用其 gcc 来编译。
安装内核头文件:

[ostatsu@localhost ~]$ sudo dnf install kernel-devel kernel-headers -y

要编译内核模块需要引入内核头文件及其他相关配置。
安装 DKMS:

[ostatsu@localhost ~]$ sudo dnf install dkms -y

编译好的模块与内核之间有依赖关系,如果内核升级,那么之前编译的模块就不能用了,需要重新编译。DKMS 全称 Dynamic Kernel Module Support,动态内核模块支持,顾名思义就是内核变动后可以解决模块不能用的问题。


4.编译安装

解压源码:

[ostatsu@localhost ~]$ cd ~/Downloads/tmp/
[ostatsu@localhost tmp]$ unzip ./master.zip

Makefile 都写好了,编译安装很简单。
编译:

[ostatsu@localhost tmp]$ cd rtl8192eu-master/
[ostatsu@localhost rtl8192eu-master]$ make

安装:

[ostatsu@localhost rtl8192eu-master]$ sudo make install

未报错,插上 USB 无线网卡已经可以使用了。


总结

Linux 新手经历,有所得。
 

ubuntu15.04安装usb无线网卡:http://www.linuxdiyf.com/linux/14449.html

Ubuntu下Edimax EW-7711UAn usb无线网卡配置:http://www.linuxdiyf.com/linux/11180.html

Ubuntu成功编译腾达W541U V2.0 USB无线网卡驱动:http://www.linuxdiyf.com/linux/9782.html

使用USB无线网卡和USB摄像头打造mini2440无线监控系统:http://www.linuxdiyf.com/linux/6102.html

在Fedora 7下安装USB无线网卡TL-WN321G:http://www.linuxdiyf.com/linux/4969.html