Wifi adapter not found in ubuntu 18.04; no drivers for device rtl8822ce

Finally, I found a solution! (thanks to the answer in this page).

It turns out the driver that should support my hardware (rtw88) was available and compatible with this hardware already in kernel > 5.2 (I had 5.3.0-46-generic), but it is not set to recognize my hardware. To fix the problem I had to compile linux kernel with a small modification in the source code (step 2 in the solution below). Here's what I've done:

1) Get the linux source code of your choice. In my case I used the mainline kernel:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

2) locate the file: ./linux/drivers/net/wireless/realtek/rtw88/pci.c, and edit it. Look for the string '0xC822', and replace it with '0xC82F'

3) Continue with compilation of the kernel according to instructions. For completeness of my answer, here is what I did:

  1. cd to the ./linux folder.

  2. Use configurations from current kernel: cp /boot/config-$(uname -r) .config

  3. make menuconfig. Here there are a lot of options to configure. Best thing to do is to just leave them as they are (save and exit).
  4. Compiling and installing:

    i) make or make -j8 (to use 8 threads in parallel instead of just one). This will take a while to complete...

    ii) sudo make modules_install.

    iii) sudo make install

  5. Enable the kernel for boot:

    i) sudo update-initramfs -c -k 5.7.0-rc1+. Of course, use the kernel version installed (in my case 5.7.0-rc1+). If not sure of the kernel version: "ls /lib/modules/" and see what kernel modules are installed.

    ii) sudo update-grub

That's it. Reboot and be sure to boot into the new kernel. The wifi should now work.


I found a YouTube video on the channel Amine Tech which has a solution to this problem. The video: https://www.youtube.com/watch?v=vPfLVsyQU_A

Although I cannot verify the security or safety of this method, it worked for me and I have not had a problem since doing it.

Connect your device to a wired network or use tethering to connect your device to the internet, then open a Terminal and type the following commands:

sudo apt update
sudo apt install -y dkms git
git clone https://github.com/tomaspinho/rtl8821ce.git

Disconnect from any networks you are connected to, then type the following commands:

cd rtl8821ce
sudo ./dkms-install.sh
sudo modprobe 8821ce
iwconfig

You should now be able to connect via WiFi.


With a Lenovo Ideapad S145-15iil and a rtl 8822ce I used this: https://github.com/lwfinger/rtlwifi_new which basically means:

git clone http://github.com/lwfinger/rtlwifi_new.git -b rtw88

and in pci.c I replaced '0xC822', with '0xC82F'. Then make clean, make, make install (as root), then modprobe rtwpci (it auto loads rtw88), and did: echo rtwpci >> /etc/modules , to auto load the module at boot.

Warning: Although this made progress, SSIDs were visible but it still was not possible to associate with an SSID. This on Ubuntu 20.04, with WPA2 but also with open networks. Message was:

wlp1s0: SME: Deauth request to the driver failed