我们刚买了一台联想ThinkPad E570(据说配有 Intel 8265 无线网卡)。我之所以购买这台笔记本电脑,部分原因是它经过认证可以运行 Ubuntu,因此对我来说,至少开箱后一切正常……但事实并非如此。
首先,我安装了 Ubuntu 17.10,安装后发现 Wi-Fi 无法使用。我还尝试通过 USB 驱动器安装 Ubuntu 16.04,因为这是经过认证的 Ubuntu 版本,但同样没有成功。
无线芯片无法被检测到lshw
(甚至lspci
从外观上看也检测不到),ip link
没有显示无线接口,iwlwifi
启动时内核模块也未加载(我可以使用 自行加载,modprobe iwlwifi
但这无法使 Wi-Fi 正常工作)。我认为它是 Wi-Fi/蓝牙组合芯片,蓝牙似乎可以正常工作(或者至少蓝牙显示在 Gnome 和 中rfkill list
)。
modinfo iwlwifi | grep 8265
显示一个以 -34 结尾的文件应该被加载,但只有以 -33(和一些其他较小的数字)结尾的文件存在于 中/lib/firmware
,如果有帮助的话)。
我还安装了 Linux 4.14.9 内核以尝试使其正常运行,但这也没有解决问题。
更多信息
root@ThinkPad-E570:~# modinfo iwlwifi | grep 8265
firmware: iwlwifi-8265-34.ucode
root@ThinkPad-E570:~# rfkill list all
0: tpacpi_bluetooth_sw: Bluetooth
Soft blocked: no
Hard blocked: no
1: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
root@ThinkPad-E570:~# dmesg | grep iwl
root@ThinkPad-E570:~# lspci -nnk | grep 0280 -A3
05:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:c821]
Subsystem: Lenovo Device [17aa:c024]
更新
我刚刚注意到笔记本电脑根本没有英特尔无线芯片,但实际上有一个 Realtek 芯片……这意味着产品页面上显示的规格我购买这台笔记本电脑的商店的报价不准确...唉。然而,同样的问题仍然存在,只是无线芯片更差。
答案1
这是斯塔森的回答谁建议使用陣容。
据我所知,在撰写本文时,官方 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 上运行良好。
需要临时的互联网连接(例如以太网电缆,USB 无线网卡或者使用 USB 数据线连接手机并‘共享' 使用手机的 Wifi)
解决方案直接取自帖子#4经过镨(非常赞扬他们的智慧!):https://ubuntuforums.org/showthread.php?t=2398917并将安装一些用于构建 wifi 驱动模块的软件包(git、dkms、build-essential 和 linux-headers)并克隆rtl8821cegit 仓库来自托马斯皮尼奥(也有很多赞美!)。
使用 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 设置中,否则它不会允许您加载未签名的自编译内核模块。
答案2
首先,我认为这些说明更适用于 Ubuntu 17.10。如果您目前没有运行它,我建议您重新安装它。
单击此链接下载驱动程序文件:https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/endlessm/linux/tree/master/drivers/net/wireless/rtl8821ce
除非您在浏览器中另有指定,否则下载将转到目录下载. 打开终端并执行:
cd ~/Downloads
unzip rtl8821ce.zip
cd rtl8821ce
nano Makefile
向下滚动到第 152 行并更改现在的内容:
export TopDIR ?= $(srctree)/drivers/net/wireless/rtl8821ce
现在读到:
export TopDIR ?= $ ~/Downloads/rtl8821ce
仔细校对两遍,然后保存(Ctrl+o 然后按 Enter)并关闭(Ctrl+x)文本编辑器。
现在做:
make
sudo make install
sudo modprobe 8821ce
你的无线网络现在应该可以正常工作了。
编辑:您仅为当前正在运行的内核版本编译了模块。当 Update Manager 在请求的重新启动后提供较新的内核版本(称为 linux-image)时,您必须重新编译:
cd rtl8821ce
make clean
make
sudo make install
sudo modprobe 8821ce
请保留该文件和这些说明。
答案3
今天使用 ubuntu 20.04 时遇到了同样的问题。
通读https://github.com/tomaspinho/rtl8821ce仔细一看,我发现 Canonical 有一个现成的软件包: rtl8821ce-dkms
安装归结为:
sudo apt install rtl8821ce-dkms
- 重启
就是这样。没有其他的。重启后一切正常。
答案4
rtl8821ce 的 dkms 构建/安装可在此处找到:https://github.com/tomaspinho/rtl8821ce
当您使用该方法时,每次更新内核时,您不需要重建模块。
我刚刚使用 kubuntu 18.04 在 Lenovo Idea 720s 上构建了它。
我也建议你编辑Makefile将日志级别从 4(信息)更改为 3(警告)。否则,您会发现/var/log/syslog
驱动程序以疯狂的速度填满了无用的信息消息。
因此编辑 Makefile,更改:
CONFIG_RTW_LOG_LEVEL = 4
到:
CONFIG_RTW_LOG_LEVEL = 3
然后根据说明构建并安装模块。如果您已经安装了它,则需要将其卸载(使用dkms-remove.sh
),然后重新安装。
或者,您可以手动更改日志级别,直到下次重新启动:
echo 3 > /proc/net/rtl8821ce/log_level
更新:维护者改变了Makefile以反映此建议,因此如果您进行全新的签出/下载,它将已经具有正确的(安静)设置。