我正在尝试在 HP All-in-one 台式机上安装 Wifi 驱动程序。有人告诉我显示命令“sudo lshw -C network”的输出,因此如下所示:
*-network
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd
physical id: 0
bus info: pci@0000:01:00.0
logical name: enp1s0
version: 15
serial: 48:ba:4e:5c:06:5f
size: 100Mbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl8168h-2_0.0.2 02/26/15 ip=192.168.1.21 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
resources: ire:31 import:e000(size=256) memory: fea04000-fea04fff memory:fea00000-fea03fff
*-network UNCLAIMED
description: Network controller
product: Realtek Semiconductor Co., Ltd.
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress cap_list
configuration: latency=0
resources: import:d000(size=256) memory:fe900000-fe90ffff
“lspci -nnk | grep -A2 0280”的输出:
02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter [10ec:c821]
Subsystem: Hewlett-Packard Company RTL8821CE 802.11ac PCIe Wireless Network Adapter [103c:831a]
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader [10ec:5229] (rev 01)
答案1
(这个问题与联想 ThinkPad E570(Realtek RTL8821CE)上的 Wi-Fi 无法使用但我很高兴我们最终找到了解决方案,因此将写下对 Haz 有用的方法。)
据我所知,在撰写本文时,官方 Ubuntu 存储库中尚未有适用于 Realtek RTL8821CE 的 Wifi 驱动程序。
在 github 上有一个存储库,其中有一个 RTL8821CE 驱动程序,针对内核 4.14 及以上版本,专门用于 Arch Linux,不提供对其他 Linux 发行版的支持:https://github.com/tomaspinho/rtl8821ce
(小注:截至 2019 年 2 月,Tomaspinho 不幸不再能够维持司机因为他不再能使用装有该芯片组的计算机,所以可能需要新的维护者,但该驱动程序仍可与当时的 Ubuntu 18.04 兼容。)
然而据报道它在 Ubuntu 18.04 上运行良好。
解决方案直接取自帖子#4经过镨:https://ubuntuforums.org/showthread.php?t=2398917并将安装一些用于构建 wifi 驱动模块的软件包(git、dkms、build-essential 和 linux-headers)并从 tomaspinho 克隆 git 存储库。
使用 DKMS 是因为它是“当安装或更新新内核时会自动重新编译并安装内核模块的系统”。
打开终端并输入以下几行(如果愿意,您可以剪切和粘贴):
sudo apt-get install --reinstall git dkms build-essential linux-headers-$(uname -r)
git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce
chmod +x dkms-install.sh
chmod +x dkms-remove.sh
sudo ./dkms-install.sh
成功完成后,您应该重新启动并发现您的 Wifi 正在正常工作。
你还想确保安全启动是已禁用在 BIOS 设置中,否则它不会允许您加载未签名的自编译内核模块。
或者
根据给出的命令自行签名 8821ce.ko 文件这里
kmodsign sha512 \
/var/lib/shim-signed/mok/MOK.priv \
/var/lib/shim-signed/mok/MOK.der \
/usr/lib/modules/$(uname -r)/kernel/drivers/net/wireless/8821ce.ko
答案2
@pHeLiOn 的回答帮助了我,但还不够。下面是我在 HP 上安装它的具体步骤。
如果您之前通过 安装了该驱动程序但未成功,请确保删除该驱动程序,sudo ./dkms-install.sh
然后删除目录rm -rf rtl8821ce
。它可能位于cd /var/lib/dkms/
,请在那里将其删除。
我禁用了安全启动(您需要在执行此命令后重新启动并在蓝屏上输入密码字符):
sudo mokutil——禁用验证
我将内核从 4.15 升级到了 4.18,因为某种原因它无法与 4.15 兼容。用于
uname -a
检查你的内核版本。sudo apt 安装 linux-generic-hwe-18.04 sudo apt 更新 && sudo apt 升级 -y
然后我重新安装了 dkms 标头:
sudo apt-get install --reinstall git dkms build-essential linux-headers-$(uname -r)
我拉取了 github 的呼吸道:
git 克隆 https://github.com/tomaspinho/rtl8821ce
进入新的目录:
光盘 rtl8821ce
我改变了文件权限:
chmod +x dkms-install.sh chmod +x dkms-remove.sh
我将驱动程序同步到正确的内核版本:
制作 安装
我安装了驱动程序:
sudo ./dkms-install.sh
最后我重新启动了,令我惊讶的是它成功了。
另外我改变了我的PCIe 激活状态电源管理正如 github breathing 所建议的那样。
答案3
之前帖子中的命令除了 git pull 之外都是正确的。有一个用户名和密码验证要求,所以你只需要去网页——https://github.com/tomaspinho/rtl8821ce-- 并下载 .zip 文件。然后我尝试按照建议将 shell 文件更改为可执行文件,但运行时,文件需要位于何处存在差异。(我绝对不是在抱怨,只是如果你真的不知道自己在做什么,可能会有点困惑)需要将文件提取到 /usr/src/rtl8821ce-1.0.0(在 /usr/src 内创建一个新目录“rtl8821ce-1.0.0”),然后 chmod +x dkms-install.sh,一切都应该顺利进行。非常感谢编写此脚本的人。我在这台超酷的机器上投入了大约 600 美元,当时以为 wifi 不会工作。干杯。
具体来说,该机器是新款HP Pavilion x360 2-in-1,搭载Windows 10和Ubuntu Studio 18.04。