Ubuntu20.04离线安装Realtek b852无线网卡驱动
最近有个项目,需要在 Ubuntu20.04 LTS 下开发,首先是安装 Linux,我们可以从下面的网址下载:
- https://releases.ubuntu.com/20.04/
本以为一切顺利,结果刚开始就给我整不会了。我的电脑是联想设计师GeekPro7,优盘启动镜像用的是ventoy,从优盘启动直接报错“ERROR Verification failed: (0x1A) Security Violation”,无法进入镜像选择页面。可以参考下面的方法解决。
- https://www.mculoop.com/thread-201-1-1.html
好不容易装好系统,我的环境没有有线网,只有无线网。结果发现并没有 WiFi 选项。哦豁,居然没有网卡驱动。没办法,只能离线安装无线网卡驱动,可坑爹的是驱动还有依赖,依赖要离线安装。真是没苦硬吃,没有困难创造困难。
安装无线网卡驱动
安装无线网卡驱动按以下步骤执行。
1)确定是网卡驱动的问题
首先我们用显示网络硬件配置信息的命令查看下网卡信息:
~$ sudo lshw -c network*-network UNCLAIMED description: Network controllerproduct: Realtek Semiconductor Co., Ltd.vendor: Realtek Semiconductor Co., Ltd.physical id: 0bus info: pci@0000:03:00.0version: 00width: 64 bitsclock: 33MHzcapabilities: cap_listconfiguration: latency=0resources: ioport:2000(size=256) memory:80500000-805fffff*-networkdescription: Ethernet interfacephysical id: bbus info: usb@1:1logical name: enxeaa730017396serial: ea:a7:30:01:73:96capabilities: ethernet physicalconfiguration: broadcast=yes driver=ipheth driverversion=5.15.0-35-generic ip=172.20.10.8 link=yes multicast=yes
命令列出了两个网卡的信息,其中第一个就是我们的无线网卡, *-network
后面有个 UNCLAIMED
就表示虽然有硬件设备,但是没有找到驱动。
这里要注意我们有两个网卡,无线网卡没有驱动,有线网卡有驱动。所以在装驱动的时候千万不要装错了。
2)查看网卡型号
接下来我们用查看PCI设备的命令产看网卡型号:
~$ lspci -nn | grep -i net
03:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 05)
我们的两个网卡都是 Realtek 的,其中第一个是无线网卡,它的型号是 [10ec:b852]
,但这并不是它的真正型号,我们打开下面的网址。
- https://admin.pci-ids.ucw.cz/mods/PC/10de?action=help?help=pci
在下面的输入框中输入方括号内的字符串,然会回车(或则点击”jump”)。
然后我们会跳转到详情页,可以看到它的真正型号是 RTL8852BE
。
3)下载驱动源码
从GitHub上下载驱动源码:
- https://github.com/HRex39/rtl8852be
下载完以后用优盘考到Ubuntu机器上,我们需要在Ubuntu上编译源码。
4)安装依赖
要编译启动源码需要依赖 gcc
, cc
和 make
,刚装的系统是没有这些我,我们需要手动安装它们。我是参考下面的内容安装的这些依赖,只需要安装 gcc 和 make 就可以了。
- https://zhuanlan.zhihu.com/p/466440088
- https://pan.baidu.com/s/1TKqwDiSNEtNyZVbuLqkfGg?pwd=qvca
gcc 目录下有一个 do.sh
脚本,可以用它一把梭,不用自己一个一个安装,但是要加上 sudo
。
5)安装驱动
安装驱动其实就是按照驱动源码的 ReadMe 安装就好了。解压之后进入源码目录执行下面三条命令:
make -j8
sudo make install
sudo modprobe 8852be
最后一行可能会报权限错误,这时我们需要进入BIOS 把 secure boot 选项关掉,如果 BIOS 是中文界面就找“安全启动”。我这台电脑要找这个选项还挺麻烦的,有两种方式可以找到,注意我在装 Ubuntu 时选择的是装双系统。
第一种方式是开机按 F2 进入 Boot 以后选择“疑难解答”,然后选择”高级选项”,再选择”UEFI固件设置”。
第二种方式是启动Ubuntu,进入系统之前有个选择页面,按下方向键选择 UEFI Firmware Setting 可以进入。
有线网卡驱动安装
如果不幸需要离线安装有线网卡驱动,可以使用下面的驱动:
- https://github.com/awesometic/realtek-r8125-dkms
参考 ReadMe 安装即可,安装依赖的话和前面是一样的。运行 dkms-install.sh
脚本安装 DKMS 时可能会 secure boot 的错,同样是把”安全启动”关掉就可以了。
修复
前面安装 gcc
、 make
等依赖时使用的安装包版本有点低,在安装的时候就会看到很多库版本降级的日志,在连上网之后,我们要将这些库版本升级回来,否则用 apt-install
安装软件的时候会报错。执行下面的命令即可。
~$ sudo apt --fix-broken install
参考文档
[1] https://askubuntu.com/questions/1412450/network-driver-for-realtek-10ecb852 👍
[2] https://blog.csdn.net/FrankXCR/article/details/135910594
[3] https://blog.csdn.net/shuziyiminhuyidao/article/details/128225826
[4] https://www.cnblogs.com/xuyaowen/p/linux-secure-boot-disable.html
[5] https://zhuanlan.zhihu.com/p/466440088