Ubuntu 18.04 上安装Tenda U9无线网卡驱动

网卡芯片

内部芯片型号为 Realtek 8811CU Wireless LAN 802.11ac

获取驱动代码

1
git clone https://github.com/brektrou/rtl8821CU.git

该驱动适用于 Realtek 8811CU/8821CU USB Wi-Fi适配器

编译安装

1
2
3
cd rtl8821CU
make
sudo make install

检查驱动

1
ls /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtl8821cu

执行usb_modeswitch

usb_modswaitch命令将USB适配器切换到网络设备模式

1
sudo usb_modeswitch -K -v 0bda -p 1a2b

持久化

为避免每次重启系统或者USB适配器重新插拔时都要手动执行上面的命令,可以增加一条udev规则,使得当udev检测到设备时自动执行相应的命令.

1
sudo vim /lib/udev/rules.d/40-usb_modeswitch.rules

在文件中增加一条规则ATTR{idVendor}="0bda", ATTR{idProduct}="1a2b", RUN+="usb_modeswitch '/%k'"

问题

在一台机器上增加了udev规则后,重启系统后USB网卡并不能总是正常工作,但这不是udev的问题,而是内核更新后,8821cu内核模块不能自动安装到新的内核模块目录(/lib/modules/$(uname -r)/…)中,手动安装后就可以正常工作了.更方便的方法是使用dkms系统,它可以自动编译和安装内核外的驱动模块.