Wi-Fi无法在Lenovo ThinkPad E570(Realtek RTL8821CE)上运行


19

我们刚刚购买了Lenovo 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结尾的文件,但是/lib/firmware如果有帮助,则仅存在以-33结尾的文件(以及其他一些较低的数字)。

我还安装了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
对于将来的Google员工,我想指出的是,所选答案也适用于Linux Mint 19.1
LondonRob,

Lenovo网站指定它具有Intel WiFi卡,因此,如果您购买了二手WiFi卡,则会对商店提起诉讼。请参阅上面添加的Web链接进行确认。
K7AAY


谢谢@大港,您节省了我的时间。我在联想ideapad 130 15ikb上尝试过。
Hridaynath

Answers:


17

首先,我建议这些说明更可能适用于Ubuntu 17.10。如果您当前不运行它,建议您重新安装它。

单击此链接下载驱动程序文件:https : //minhaskamal.github.io/DownGit/#/home?url=https : //github.com/endlessm/linux/tree/master/drivers/net/wireless/rtl8821ce

除非您在浏览器中另外指定,否则下载将转到目录Downloads。打开终端并执行:

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

请保留该文件和这些说明。


这也是我昨天发现的,它也有效:)我很好奇的一件事是,尽管如此,它是否仍然可以在内核更新中继续工作。
RobinJ

很好抓!请稍后再查看我的编辑内容。
chili555

编辑文件后,我尝试运行make命令,但它给了我一个错误。我在“ rtl8821ce”目录中运行“ make”,错误是/ bin / sh:1 cc:找不到。任何想法 。是OS附带的默认实用程序吗?
DILEEP THOMAS

@DILEEPTHOMAS请开始您自己的新问题。
chili555

对我来说,编辑文件不是必需的。只需下载驱动程序即可编译安装并在足够的地方激活mod。谢谢!!!
迭戈·安德烈斯·迪亚斯·埃斯皮诺萨

17

这是stason回答的后续建议,后者建议使用dkms

据我所知,在撰写本文时,官方的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上正常工作。

需要临时的Internet连接(例如以太网电缆USB wifi加密狗或将您的电话与usb电缆连接起来并“ 绑定 ”以使用手机的Wifi)

该解决方案是直接从Praseodym的帖子#4中获得的(非常赞美他们的智慧!):https : //ubuntuforums.org/showthread.php?t=2398917并将安装许多用于构建wifi驱动程序模块的软件包(git ,dkms,build-essential和linux-headers),并从tomaspinho克隆rtl8821ce 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设置中的SecureBoot禁用,否则将不允许您加载未签名的自完成内核模块。


我可以确认您不需要禁用SecureBoot。如果启用了SecureBoot,只需按照和期间的提示进行操作,sudo ./dkms-install.sh然后输入在重新引导过程中选择的相同密码。
Niel de Wet

1
为我工作。节省了我的时间。
Iftakharul Alam

太棒了 谢谢。这对我有用。
Xorile博士19年

有同样的问题...但更糟。idePadS145没有以太网,所以我什至无法apt-get install ..如何获得刚刚为eon:5.3.0-18-generic中的默认内核编译的模块?
Nico Grunfeld

2

更新2018-02-27

请注意,建议的驱动程序适用于Endless OS,因此它可能随时中断。如果有人拥有Ubuntu的官方驱动程序,那就更好了。

原始答案

这不是一个新的答案,最好是一条评论。

因此,我尝试遵循@ chili555的答案,但是在尝试制作模块时一直出错。

错误如:

/rtl8821ce/include/osdep_service_linux.h:294:2: error: implicit declaration of function ‘timer_setup’; did you mean ‘ether_setup’?
[-Werror=implicit-function-declaration]
   timer_setup(ptimer, pfunc, 0);
   ^~~~~~~~~~~   ether_setup

因此,我尝试下载一个不同的修订版zip存档直接下载链接),该修订版在原始答案发布时可能也是主要版本。然后,我就能按照@ chili555提供的步骤制作模块并进行安装


2

可以在这里找到rtl8821ce的dkms build / install: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以反映此建议,因此,如果您进行全新签出/下载,则该文件将已经具有正确(安静)的设置。


1

解决计时器错误的方法。

我设法通过ubuntu 16.04使它适用于我的lenovo E570,这是我的步骤:首先,使用本指南将内核版本升级到4.15.4。

我相信任何高于4.15.4的内核版本都可以使用,因为我不得不再次将内核升级到4.15.9。请注意,该驱动程序需要重新安装。

然后,我按照@ chili555答案中提到的步骤进行操作


“安装驱动程序”是什么意思?
pim

这意味着您需要再次sudo make install。请让我知道它是否适合您以及您使用的是哪个内核版本。这种方法以前对我有用,但是最近我不得不重新安装ubuntu几次,它对我来说不再起作用。
Juichung_Kuo

以下线程包括8821ce的备用驱动程序,链接,它再次对我
有用

我似乎与您使用的是完全相同的计算机,运行16.04 LTS,并且似乎有完全相同的问题,但是没有成功。您是否可以逐行发布您所做的确切工作:我似乎在转圈,不断看到我的脑后。啊 谢谢。
皮洛蒂

嗯..已经有一段时间了,我不记得我到底做了什么。但是您是否检查了我上面发布的链接,因为它包含我使用了哪些命令。您也尝试过此方法:github.com/lwfinger/rtlwifi_new
Juichung_Kuo

0

可以从ubuntuusers.de的praseodym中获得收益,以使用dkms安装驱动程序来获得本简短教程,因为在尝试了几种已回答的变体之后,只有这样才对我有效,适用于全新安装的debian 10(破坏者):

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 

清除方式如下:

sudo ./dkms-remove.sh 

还提到它甚至在安装操作系统之前最终都会禁用安全启动。不知道这是否有所不同,因为我在“ HP Slimline(290-a0512ng)台式机”上需要使用它,默认情况下已禁用安全启动,我在操作系统安装后检查/发现了该问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.