25

We just bought a Lenovo ThinkPad E570 (which is supposed to have the Intel 8265 for wireless). This laptop was bought in part because it is certified to run Ubuntu and as such to me at least it would make sense for things to work out of the box... but no such luck.

First, I installed Ubuntu 17.10 and after installation realised Wi-Fi was not working. I also tried Ubuntu 16.04 from a USB drive since that is the version of Ubuntu it is certified for, but no luck there either.

The wireless chip is not detected by lshw (or even lspci by the looks of it), ip link does not show a wireless interface, and the iwlwifi kernel module is not loaded at boot (I can load this myself using modprobe iwlwifi but this does not make Wi-Fi work). I think it is a combined Wi-Fi/Bluetooth chip, and Bluetooth does appear to work (or at least Bluetooth shows up in Gnome and rfkill list).

modinfo iwlwifi | grep 8265 shows me a file ending in -34 is supposedly loaded but only a file ending in -33 (and some other lower numbers) is present in /lib/firmware, if that helps).

I have also installed the Linux 4.14.9 kernel in an attempt to get things to work, but this did not resolve the issue either.

Further information

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]

Update

I just noticed that the laptop does not have an Intel wireless chip at all, but in fact has a Realtek one... which means that the specs presented on the product page of the shop I bought this laptop at were not accurate... Sigh. Same problem stands, however, just with a crappier wireless chip.

6
  • 2
    For future Googlers, I'd like to note that the chosen answer also works on Linux Mint 19.1
    – LondonRob
    May 9, 2019 at 15:33
  • The Lenovo website specifies it has an Intel WiFi card, so if you bought it used, you have a case against the shop. See the weblinks added above for confirmation.
    – K7AAY
    Aug 2, 2019 at 22:00
  • 1
    This worked for me youtube.com/watch?v=vPfLVsyQU_A
    – Dagang
    Aug 26, 2019 at 3:44
  • thanks @Dagang, you saved my hours. I am tried it on lenovo ideapad 130 15ikb.
    – Hridaynath
    Oct 11, 2019 at 4:30
  • you no longer need to compile this from source manually. See the answer below that just installs it from the Ubuntu repos using package rtl8821ce-dkms Dec 21, 2020 at 12:11

9 Answers 9

21

This is a follow up to stason's answer who suggests using dkms.

As far as I can tell, at the time of writing this, there is not yet a Wifi Driver for the Realtek RTL8821CE in the official Ubuntu Repositories.

Over on github there is a repository with an RTL8821CE driver aimed at kernels 4.14 and above and specifically for Arch Linux with no support provided for other Linux Distros: https://github.com/tomaspinho/rtl8821ce

(Minor note: as of February 2019 tomaspinho is sadly no longer able to maintain the driver as he no longer has access to a computer with this chipset, and so a new maintainer may be needed, but the driver still works with Ubuntu 18.04 as at that time.)

It has, however, been reported to work just fine with Ubuntu 18.04.

A temporary internet connection will be required (such as an ethernet cable, USB wifi dongle or connecting your phone with a usb cable and 'tethering' it to use your phone's Wifi)

The solution is taken directly from post #4 by Praseodym (much praise to their wisdom!): https://ubuntuforums.org/showthread.php?t=2398917 and will install a number of packages for building the wifi driver module (git, dkms, build-essential & linux-headers) and clone the rtl8821ce git repository from tomaspinho (much praise also!).

DKMS is used because it's "a system which will automatically recompile and install a kernel module when a new kernel gets installed or updated."


Open up a terminal and type the following lines (You can cut and paste if you prefer):

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

After this is completed successfully, you should reboot and find that your Wifi is working.

You also want to make sure SecureBoot is Disabled in the BIOS settings or it won't let you load the unsigned self-complied kernel module.

5
  • 1
    I can confirm the you don't need to disable SecureBoot. If you have SecureBoot enabled simply follow the prompts during the sudo ./dkms-install.sh and enter the same password which you will choose during the reboot. Dec 1, 2018 at 12:26
  • 1
    Worked for me. Saved my time. Jan 15, 2019 at 7:06
  • Fantastic. Thank you. This worked for me.
    – Dr Xorile
    Nov 15, 2019 at 21:43
  • having the same problem... but worst. the idePadS145 doesnt have ethernet so I cant even apt-get install .. How can get the module just compiled for the default kernel in eon: 5.3.0-18-generic? Jan 14, 2020 at 22:59
  • you no longer need to compile this from source manually. See the answer below that just installs it from the Ubuntu repos using package rtl8821ce-dkms Dec 21, 2020 at 12:11
19

First, I would suggest that these instructions are more likely to work with Ubuntu 17.10. If you are not currently running it now, I suggest that you re-install it.

Click this link to download the driver file: https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/endlessm/linux/tree/master/drivers/net/wireless/rtl8821ce

Unless you have specified otherwise in your browser, downloads go to the directory Downloads. Open a terminal and do:

cd ~/Downloads
unzip rtl8821ce.zip
cd rtl8821ce
nano Makefile

Scroll down to line 152 and change the line that now reads:

export TopDIR ?= $(srctree)/drivers/net/wireless/rtl8821ce

To now read:

export TopDIR ?= $ ~/Downloads/rtl8821ce

Proofread carefully, twice, and save (Ctrl+o followed by Enter) and close (Ctrl+x) the text editor.

Now do:

make
sudo make install
sudo modprobe 8821ce

Your wireless should now be working.

EDIT: You have compiled the module for your currently running kernel version only. When Update Manager offers a later kernel version, known as linux-image, after the requested reboot, you must recompile:

cd rtl8821ce
make clean
make
sudo make install
sudo modprobe 8821ce

Please retain the file and these instructions for that time.

12
  • This is what I found yesterday as well and it worked :) One thing I'm curious about is whether this will keep working across kernel updates, though.
    – RobinJ
    Dec 30, 2017 at 10:32
  • Very good catch! Please see my edit above in a few moments.
    – chili555
    Dec 30, 2017 at 15:18
  • 1
    For me edit the file wasnt necessary. Just download driver compile install and activate mod where enough. Thanks!!! Dec 25, 2018 at 17:01
  • 1
    @Pilot6 A great many wireless drivers that were perfect for earlier Ubuntu versions no longer work in later kernels and, especially, gcc versions. A great many answers posted years ago, including yours, no longer work. Searchers should take note.
    – chili555
    Oct 2, 2019 at 14:03
  • 1
    I believe this is the correct procedure for current Ubuntu versions: askubuntu.com/questions/1162223/…
    – chili555
    Oct 2, 2019 at 15:08
16

Ran in the same problem today with ubuntu 20.04.

Reading through https://github.com/tomaspinho/rtl8821ce carefully I found out that there is a ready made package by Canonical: rtl8821ce-dkms

Installation boils down to:

  1. sudo apt install rtl8821ce-dkms
  2. Reboot

That's it. Nothing else. After reboot everything just works.

2
  • 1
    Worked perfectly, so simple!
    – Mel
    Jul 28, 2020 at 18:39
  • 1
    This answer definitively needs to be shown more prominently in web search results... Ran into this issue with a brand new desktop computer in March 2021, using KDE neon.
    – bovender
    Mar 24, 2021 at 20:51
2

Update 2018-02-27

Please note the suggested driver is for Endless OS and therefore it might break at any point. If any body has an official driver for Ubuntu it will be better.

Original Answer

This is not a new answer, would be better a comment.

So I tried to follow @chili555 answer but I kept getting errors while trying to make the module.

Errors like:

/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

So I tried downloading a different revision (zip archive direct download link) which by the time of the original answer might be master as well. Then I was able to make the module and install following the steps provided by @chili555

2

dkms build/install for rtl8821ce can be found here: https://github.com/tomaspinho/rtl8821ce

When you use that approach you won't need to rebuild the module each time kernel is updated.

I have just built it on Lenovo Idea 720s with kubuntu 18.04.


Also I suggest you edit Makefile to change the log level from 4 (info) to 3 (warnings). Otherwise you will find your /var/log/syslog filling up at a crazy speed with useless info messages from the driver.

So edit Makefile, to change:

CONFIG_RTW_LOG_LEVEL = 4

to:

CONFIG_RTW_LOG_LEVEL = 3

and then build and install the module as per instructions. If you already installed it, you need to uninstall it (using dkms-remove.sh) and then reinstall it again.

Alternatively you can manually change the log level until next reboot with:

echo 3 > /proc/net/rtl8821ce/log_level

update: the maintainer changed the Makefile to reflect this suggestion, so if you make a fresh checkout/download it'll already have the right (quiet) setting.

1

A solution for the timer error.

I manage to make it work for my lenovo E570 with ubuntu 16.04 and here are my steps: First, I upgrade my kernel version to 4.15.4 using this guide

I believe any kernel version above 4.15.4 should work because I had to upgrade my kernel to 4.15.9 again. Note the driver needs to be reinstalled.

Then, I followed the steps mentioned in @chili555 answers

5
  • What do you mean by "installing the driver"?
    – pim
    Mar 13, 2018 at 5:44
  • It means you need to sudo make install again. please let me know if it worked for you and what kernel version are you using. This method worked for me before, but recently I had to reinstall ubuntu several times and it stopped working for me. Mar 13, 2018 at 21:58
  • The following thread includes an alternative driver to the 8821ce, link and it works for me again Mar 17, 2018 at 21:06
  • I seem to have exactly the same machine as you, running 16.04 LTS and seem to be having exactly the same issues, but without any success. Is it possible for you to post, line by line, exactly what you did to get yours working: I seems to be going round in circles and keep seeing the back of my head. Arrrrgh. Thanks.
    – Piloti
    Jan 22, 2019 at 20:50
  • uh.. it's been a while and I dont remember exactly what i did to fix it. But did you check out the link i posted above because it contains what commands i used. also have you tried this: github.com/lwfinger/rtlwifi_new Jan 28, 2019 at 22:52
0

credits to praseodym from ubuntuusers.de for this short tutorial using dkms to install the driver because after trying several answered variants, only this worked for me on a fresh installed debian 10 (buster):

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 

removal works this way:

sudo ./dkms-remove.sh 

it was also mentioned to eventually disable secure boot, even before os installation. not sure if this makes a difference because i was needing this on a "HP Slimline (290-a0512ng) Desktop PC" which had secure boot disabled by default i checked/noticed after os installation.

0

This is how I fixed on an IdeaPad s145-15ast. If you would like to still use ubuntu 16.04, first install the Hardware Enablement:

apt-get install linux-generic-hwe-16.04

Then add "Jesse Sung" Realtek 8821c dkms for 4.15

add-apt-repository ppa:wenchien/rtl8821c
apt-get update
apt install oem-realtek-8821ce-lp1767920-4.15-dkms

Reboot and that's it.

0

This device requires drivers and firmware. For new Ubuntu kernels 4.19+ rtw88 drivers from Larry Finger's repo will work.

Run to install the driver:

sudo apt update
sudo apt install git dkms
git clone https://github.com/lwfinger/rtw88.git
sudo dkms add ./rtw88
sudo dkms install rtlwifi-new/0.6

Run to install firmware:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
sudo cp linux-firmware/rtw88/rtw8821c_fw.bin /lib/firmware/rtw88

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .