Wifi adapter not found in ubuntu 18.04; no drivers for device rtl8822ce
Solution 1
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:
cd to the ./linux folder.
Use configurations from current kernel:
cp /boot/config-$(uname -r) .config
-
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). -
Compiling and installing:
i)
make
ormake -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
-
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.
Solution 2
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.
Solution 3
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
Related videos on Youtube
yaron160
Updated on September 18, 2022Comments
-
yaron160 over 1 year
Update
Below is my original question with supplemented information. Initially I thought my hardware is the rtl8821ce chip, but from comparing the output of
lspci
with this post, it seems the wireless device I have is in fact the 8822ce chip. Previously the title of this question did not reflect this fact, so I edited it.
I have a problem I couldn't resolve, and I would appreciate some help with it. I have a brand new Lenovo IdeaPad laptop, on which I recently installed Ubuntu 18.04.4. Unfortunately Ubuntu doesn't recognize my wifi, saying: "No wifi adapter found".
Some outputs:
lspci -nnk | grep 0280 -A3
:01:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:c82f] Subsystem: Lenovo Device [17aa:c02f]
rfkill list all
:0: ideapad_wlan: Wireless LAN Soft blocked: no Hard blocked: no 1: ideapad_bluetooth: Bluetooth Soft blocked: yes Hard blocked: no 5: hci0: Bluetooth Soft blocked: yes Hard blocked: no
sudo lshw -C network
*-network UNCLAIMED description: Network controller product: Realtek Semiconductor Co., Ltd. vendor: Realtek Semiconductor Co., Ltd. physical id: 0 bus info: pci@0000:01:00.0 version: 00 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress cap_list configuration: latency=0 resources: ioport:4000(size=256) memory:93000000-9300ffff
An interesting thing to note is that in outputs of similar commands in other posts the network adapter shows: "RTL8821CE", and my output doesn't.
What I tried so far:
First, I tried installing the
rtl8821ce-dkms
like so:sudo apt-get install rtl8821ce-dkms sudo modprobe rtl8821ce sudo modprobe -r ideapad_laptop
And I additionally disabled secure boot in the BIOS. This had no effect. Ubuntu still gives the same message.
Next, I tried to install the driver directly from the tomaspinho GitHub like so (after removing rtl8821ce-dkms):
sudo apt-get install git dkms build-essential linux-headers-$(uname -r) cd /usr/local/src/ sudo git clone https://github.com/tomaspinho/rtl8821ce cd rtl8821ce/ sudo chmod +x dkms-install.sh sudo chmod +x dkms-remove.sh sudo ./dkms-install.sh sudo modprobe 8821ce
Again, this had no effect. Ubuntu still gives the same message.
Interestingly, now when I run
dmesg | grep -i 8821
, I get:[ 94.460377] 8821ce: loading out-of-tree module taints kernel. [ 94.461221] 8821ce: module verification failed: signature and/or required key missing - tainting kernel
I suspect that maybe my hardware is not supported by this driver. Can anybody help me to understand what I need to do to resolve this "No wifi adapter" issue?
Additional attempts:
As was suggested here, I attempted to update the version of
linux-firmware
package on my machine. I tried a few different versions, but none worked. What I did:wget http://security.ubuntu.com/ubuntu/pool/main/l/linux-firmware/linux-firmware_<version>_all.deb sudo dpkg -i linux-firmware_<version>_all.deb
where the "
<versions>
" I tried were:- 1.173.16 (which seems to be the one that was last modified in the server).
- 1.178
- 1.186 (which is the latest version to date).
I still get the "No wifi adapter" message.
-
chili555 about 4 yearsPlease dit your question to show the result of the terminal command:
lspci -nnk | grep 0280 -A3
and also:rfkill list all
-
chili555 about 4 yearsPossibly useful: askubuntu.com/questions/1215532/…
-
yaron160 about 4 years@chili555, I edited the question with the output you requested. Thanks for bringing to my attention the post in the above link. It seems to be a situation similar to mine.
-
chili555 about 4 yearsI agree with the comment at the question I linked: "I couldn't find any drivers that support [10ec:c82f]" Sorry.
-
yaron160 about 4 yearsIt seems that the drivers are now available in linux-firmware. Specifically, the file rtw8822c_fw.bin is available in git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git. However I don't know how it can be used or installed. Anybody can help with this?
-
chili555 about 4 yearsThat is a firmware file, not a driver. It is used by the driver rtw88 which does not cover your device. Verify:
sudo modprobe rtw88
Did your wireless device spring to life? -
yaron160 about 4 yearsUnfortunately, no!
sudo modprobe rtw88
does nothing. -
mr_azad over 3 yearsJust in case, this might be a solution as well... ;) askubuntu.com/questions/1273973/…
-
yaron160 about 4 yearsThat's not it. If you go over my question you'll see that I already tried that. It seems the chip I have is not the 8821CE, but 8822CE, to which I still haven't found a driver that work. Perhaps the title is a bit misleading...