一般来说USB设备的驱动都是自动安装上的,但是对于linux系统,部分厂家不提供驱动程序,例如我使用的TL-WN823N网卡,搞驱动的时候真的是很头大。针对这种情况,以下提供了一条算是比较通用的安装驱动的方式。
1 让你的电脑连上网络
由于不是很推崇离线安装,所以在这一步,我比较推荐用网线临时接一根线,或者拿手机共享一下网络。总而言之,让你的电脑临时连个网就够了。
当然,对于下述内容,如果你愿意在别的设备上下载好,然后copy到需要安装的设备上,也是很棒的。
2 查看网卡的驱动芯片型号
输入以下命令查看USB上挂载的设备
lsusb
输出结果中找到如下内容:
Bus 002 Device 026: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
Bus 001 Device 007: ID 0bda:1a2b Realtek Semiconductor Corp.
此处我插了两个USB网卡,其中一个直接显示了芯片型号为
RTL8192CU
,另一个则没有任何显示。对于没有显示芯片型号的网卡,将其ID号
ID 0bda:1a2b
输入搜索引擎,很容易可以知道其芯片型号是
RTL8821CU
。
3 查找驱动
如果有可能,还是尽量使用厂家的驱动。所以我们首先进入
Realtek
官网查找。很遗憾,没有找到Ubuntu18可以使用的驱动。
实在是太可惜了,我们只能寄希望于
Github
的朋友帮帮忙了。进入
Github
官网,直接搜索芯片型号(例
RTL8192CU
),按照更新时间排序,很快就找到可以适用于
5.0.0-27-generic
内核的开源项目:
rtl8192cu linux driver sources. Added support for N150MA, ISY, HWNUM-300V2, Sitecom WLA-2100 and D-link DWA-131 (H/W Ver. B1) devices. Patched to support up to latest linux kernel (current 5.2). With no debug patch.
我们将其clone下来,并编译安装:
git clone https://github.com/Rick-Moba/rtl8192cu.git
cd rtl8192cu
sudo make
sudo make install
最终结果如下:
$ sudo make install
install -p -m 644 8192cu.ko /lib/modules/5.0.0-27-generic/kernel/drivers/net/wireless/
/sbin/depmod -a 5.0.0-27-generic
可以看出,我们最终安装的驱动名字叫做
8192cu
。
4 最终安装
首先卸载原来的驱动。如果原来没有,那就不用卸载了。
sudo modprobe -r rtl8192cu # (name of driver)
最后安装驱动,大功告成
sudo modprobe 8192cu
5 吐槽
费了不少事,但是最终终于安装好了。中途如果遇到编译错误以及一些奇葩的错误,建议直接在
Github
上重新找一个开源项目。一定要看看项目是不是支持你的
Linux
的内核。命令
uname -r
查看当前内核。
另外,百度上也有不少是自己编译
Github
项目解决了问题的,但是他们clone的仓库大多比较老了,建议还是自己找找仓库,可以少花很多力气。