So, it happened again. Updating my Lenovo IdeaPad S540-14API to Ubuntu 21.10 broke the WiFi once more, and drivers are not working. Looks like having them for the Realtek RTL8821CE isn’t something to expect from the official repositories.

Luckily there’s an open-source solution from this GitHub repo that worked on Ubuntu 21.04 and now continues to do the trick for Ubuntu 21.10.

Check the adapter

First, it’s important to check if you have the right adapter. Running sudo lshw -C network should give something like this as result:

  *-network UNCLAIMED       
       description: Network controller
       product: RTL8821CE 802.11ac PCIe Wireless Network Adapter
       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: ioport:2000(size=256) memory:c0700000-c070ffff

The solution comes partially from this answer, and from the instructions of the repo itself. Check them if the steps here don’t actually work for you.

Install drivers

Some people point out that secure boot must be disabled for the driver to work. This wasn’t an issue for me (maybe it was disabled already for some time ?) but it doesn’t hurt checking before (shortcut for Lenovo BIOS is Fn + F2 during boot).

Make sure you have dkms installed, and run:

git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce
chmod +x dkms-install.sh
chmod +x dkms-remove.sh
sudo ./dkms-install.sh

It might be worth reboot and test, but for me this wasn’t enough. By the end of the repo’s Readme they make it clear that there’s an extra issue with the Linux kernel >= 5.9.

In case you’re curious, you can check your current kernel version running uname -r.

The issue is that we need to force ignore the broken module that comes with ubuntu. For this run the following:

sudo gedit /etc/modprobe.d/blacklist.conf

And add this to the end of the file:

# WiFi fix. Instructions from:
# https://delestro.com/2022/01/10/lenovo-wifi-with-ubuntu/
blacklist rtw88_8821ce

Save the file, turn off the computer, wait a few seconds and boot again. For me this was everything needed, worked like a charm.

Running sudo lshw -C again:

*-network                 
       description: Wireless interface
       product: RTL8821CE 802.11ac PCIe Wireless Network Adapter
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlp2s0
       version: 00

Bluetooth issue

It’s a known issue that you may experience some bluetooth problems with this driver.

On my case, what happens is that it isn’t possible to scan for new Bluetooth devices after the system sleeps and unfortunately there’s no current fix for this. But simply reestarting the computer solves the issue and the Bluetooth gets back to normal.