Rtl8821ce stopped working after system update

After running sudo pacman -Syu today my wifi stopped working. My network card is Realtek 8821ce (relevant part of lspci -v included):

01:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter
Subsystem: AzureWave Device 3040
Physical Slot: 0
Flags: fast devsel, IRQ 67, IOMMU group 7
I/O ports at f000 [size=256]
Memory at fea00000 (64-bit, non-prefetchable) [size=64K]
Kernel modules: rtw88_8821ce, 8821ce

There are two interesting things to note here:

  1. I have rtw88_8821ce blacklisted, but it still shows up here (doesn’t show up under lsmod output though).
  2. inxi -N shows that neither driver is in use.

Device-1: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter
driver: N/A

I have tried reinstalling the driver (rtl8821ce-dkms-git - both with yay and through git). I’ve used linux for the past year on this laptop and while this driver broke from time to time I always managed to get it working by reinstalling/messing with modprobe/rebooting. This time I’m completely stuck.

Any ideas how to fix it? Thanks for help in advance

Edit: added system info

It’s quite possible that driver support was added to 5.16, so remove the DKMS driver and the blacklist file, and reboot.

Well, that kinda worked, but connection is very slow and unstable, nowhere near what it used to be like. Most pages don’t load at all or take a solid 30sec to load. Even just pinging my router shows massive ping/disconnects.

PING ( 56(84) bytes of data.
64 bytes from icmp_seq=1 ttl=64 time=77.7 ms
From icmp_seq=3 Destination Host Unreachable
From icmp_seq=4 Destination Host Unreachable
From icmp_seq=5 Destination Host Unreachable
64 bytes from icmp_seq=6 ttl=64 time=2082 ms
64 bytes from icmp_seq=7 ttl=64 time=1082 ms
64 bytes from icmp_seq=8 ttl=64 time=71.7 ms
64 bytes from icmp_seq=9 ttl=64 time=15.9 ms
64 bytes from icmp_seq=10 ttl=64 time=240 ms
64 bytes from icmp_seq=11 ttl=64 time=19.6 ms
From icmp_seq=13 Destination Host Unreachable
64 bytes from icmp_seq=17 ttl=64 time=1095 ms
64 bytes from icmp_seq=18 ttl=64 time=125 ms
64 bytes from icmp_seq=19 ttl=64 time=18.0 ms
64 bytes from icmp_seq=20 ttl=64 time=14.6 ms

Also I was using LTS kernel and on 5.15 it still doesn’t work. As a side note, I’m pretty sure i was using 5.10 LTS. Can LTS kernel change to 5.15 on it’s own? Maybe that has something to do with it?

Not the best choice, if the driver was installed from AUR. pacman will not update this one. You should have used sudo yay -Syu instead, if you wanted to use AUR driver.

As far as I know, the driver was added to kernel 5.12. There should be no need to use dkms from AUR. This one was not maintained for a few months.

1 Like

I got it working on 5.15 LTS kernel. Seems like doing a clean build in yay made a difference. I guess it tried to use outdated files before? Seems like this driver needed to be modified for 5.15 kernel (https://github.com/tomaspinho/rtl8821ce/issues/244), so i guess kernel update broke it.

For now it is working. Thanks for help everyone.

you better don*t use sudo with yay.
yay will ask for your sudo password when needed. So just run yay -Syu. And even -Syu is obsolete as a simple yay is equivalent to yay -Syu


1 Like

I love bloat. :wink: