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 | cd rtl8821CU |
检查驱动
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系统,它可以自动编译和安装内核外的驱动模块.