Ubuntu 支持 Thinkpad 无线网卡

#操作系统/Linux

最近新入了一个 Thinkpad,安装 ubuntu16.04 之后,不能识别无线网卡,解法如下:

1.查看无线网卡型号

1
$ lspci

我无线网卡的型号是 Realtek Semiconductor Co., Ltd. Device c821

2.下载驱动程序,编译内核模块

1
2
3
4
5
$ git clone https://github.com/tomaspinho/rtl8821ce
$ cd rtl8821ce
$ chmod +x dkms-install.sh
$ chmod +x dkms-remove.sh
$ sudo ./dkms-install.sh

如果网卡型号和我的不同,可以试试 realtek 的其它驱动包: git clone https://github.com/lwfinger/rtlwifi_new

3.加载网卡驱动

查看驱动模块是否被加载

1
$ lspci -v

这时看到 Device c821 设备下面有 Kernal modeles, 但是没有 Moder driver in use, 也就是说模型编出来了,但插入内核失败了,于是手动加载内核模块

1
$ sudo modprobe 8821ce

此时报错:ERROR:Required key not available,这是由于 Ubuntu Kernel 使用 EFI_SECURE_BOOT_SIG_ENFORCE 内核配置,这样会阻止内核载入第三方模块,就是说你自己编的 ko 模块不能被加载到内核。如果你也遇到了这个问题,解法如下。

4.修改内核设置,允许加载三方模块

1
2
$ sudo apt install mokutil
$ sudo mokutil --disable-validation

此时输入一个 8 位以上的密码,之后重启系统,出现如下蓝屏,选择 Change Secure Boot state

系统会让你输入刚才设置密码中的几个数,界面如下:

后续再选择菜单中的 Yes 和 Reboot,重启后,我编模块就被内核自动加载了,如果加载不了,手动再用 modprobe 试试看。

图片.png