Realtek RTL8852AE issue on Lenovo Legion 5 Pro 16ACH6 (Ubuntu 20.04)
I have an issue on my new Lenovo Legion 5 Pro 16ach6 with its wifi card : Realtek RTL8852AE - PCIe 2.0 with ubuntu 20.04 and the 5.12.9 kernel (it's work on Windows 10).
I followed this topic : Network driver for Realtek 8852 20.10 but Modeprobe doesn't find the module "rtw_8723de" (which doesn't exist, I think It's a mistake in regards to rtw88 repository) and the 2 .ko created doesn't work : rtw89core.ko or rtw89pci.ko (we can see it in the lspci).
I tried different kernels like 5.8, 5.11, 5.12 but I have the same problem. Ubuntu 20.04, 21.04, the last Manjaro with gnome... I think its ok in the bios : I disabled secure boot and an AMD protection for CPU and no results ! There is an option with "discrete" and "dynamic" graphics but except a choice between the AMD graphic chipset and the NVIDIA video card, I have no difference.
When I try this solution : https://github.com/lwfinger/rtw89, I have this :
user@lenovo:~/Documents/git/rtw89$ make VERBOSE=1
make -C /lib/modules/5.12.9-051209-generic/build M=/home/user/Documents/git/rtw89 modules
make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.12.9-051209-generic »
CC [M] /home/user/Documents/git/rtw89/core.o
CC [M] /home/user/Documents/git/rtw89/debug.o
CC [M] /home/user/Documents/git/rtw89/mac80211.o
CC [M] /home/user/Documents/git/rtw89/mac.o
CC [M] /home/user/Documents/git/rtw89/phy.o
CC [M] /home/user/Documents/git/rtw89/fw.o
CC [M] /home/user/Documents/git/rtw89/rtw8852a.o
CC [M] /home/user/Documents/git/rtw89/rtw8852a_table.o
CC [M] /home/user/Documents/git/rtw89/rtw8852a_rfk.o
CC [M] /home/user/Documents/git/rtw89/rtw8852a_rfk_table.o
CC [M] /home/user/Documents/git/rtw89/cam.o
CC [M] /home/user/Documents/git/rtw89/efuse.o
CC [M] /home/user/Documents/git/rtw89/regd.o
CC [M] /home/user/Documents/git/rtw89/coex.o
CC [M] /home/user/Documents/git/rtw89/ser.o
CC [M] /home/user/Documents/git/rtw89/pci.o
LD [M] /home/user/Documents/git/rtw89/rtw89pci.o
LD [M] /home/user/Documents/git/rtw89/rtw89core.o
MODPOST /home/user/Documents/git/rtw89/Module.symvers
CC [M] /home/user/Documents/git/rtw89/rtw89core.mod.o
CC [M] /home/user/Documents/git/rtw89/rtw89pci.mod.o
LD [M] /home/user/Documents/git/rtw89/rtw89core.ko
LD [M] /home/user/Documents/git/rtw89/rtw89pci.ko
make[1] : on quitte le répertoire « /usr/src/linux-headers-5.12.9-051209-generic »
user@lenovo:~/Documents/git/rtw89$ sudo make install
make -C /lib/modules/5.12.9-051209-generic/build M=/home/user/Documents/git/rtw89 modules
make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.12.9-051209-generic »
make[1] : on quitte le répertoire « /usr/src/linux-headers-5.12.9-051209-generic »
Install rtw89 SUCCESS
user@lenovo:~/Documents/git/rtw89$ sudo modprobe rtw_8723de
modprobe: FATAL: Module rtw_8723de not found in directory /lib/modules/5.12.9-051209-generic
user@lenovo:~/Documents/git/rtw89$ find /lib/modules/ -type f -name '*.ko*' | grep -i rtw
/lib/modules/5.4.0-74-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88.ko
/lib/modules/5.4.0-74-generic/kernel/drivers/net/wireless/realtek/rtw88/rtwpci.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw89/rtw89core.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw89/rtw89pci.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8723de.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_pci.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821ce.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822be.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8821c.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_core.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822ce.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8723d.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822c.ko
/lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822b.ko
user@lenovo:~/Documents/git/rtw89$ ls /lib/modules/5.12.9-051209-generic/kernel/drivers/net/wireless/realtek/rtw89
rtw89core.ko rtw89pci.ko
Some information :
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal
lspci -k -nn | grep -A 3 -i net
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
DeviceName: Realtek RTL8111E Ethernet LOM
Subsystem: Lenovo RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [17aa:390b]
Kernel driver in use: r8169
Kernel modules: r8169
04:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:8852]
Subsystem: Lenovo Device [17aa:4852]
Kernel modules: rtw89pci
05:00.0 Non-Volatile memory controller [0108]: SK hynix Device [1c5c:174a]
sudo lshw -C network
*-network
description: Ethernet interface
produit: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
fabricant: Realtek Semiconductor Co., Ltd.
identifiant matériel: 0
information bus: pci@0000:03:00.0
nom logique: eno1
version: 15
numéro de série: 38:f3:ab:dd:a5:07
taille: 1Gbit/s
capacité: 1Gbit/s
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress msix bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration : autonegotiation=on broadcast=yes driver=r8169 driverversion=5.12.9-051209-generic duplex=full firmware=rtl8168h-2_0.0.2 02/26/15 ip=192.168.0.3 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
ressources : irq:40 portE/S:3000(taille=256) mémoire:d1804000-d1804fff mémoire:d1800000-d1803fff
*-network NON-RÉCLAMÉ
description: Network controller
produit: Realtek Semiconductor Co., Ltd.
fabricant: Realtek Semiconductor Co., Ltd.
identifiant matériel: 0
information bus: pci@0000:04:00.0
version: 00
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress cap_list
configuration : latency=0
ressources : portE/S:2000(taille=256) mémoire:d1700000-d17fffff
iwconfig
lo no wireless extensions.
eno1 no wireless extensions.
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 38:f3:ab:dd:a5:07 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.0.3/24 brd 192.168.0.255 scope global dynamic noprefixroute eno1
valid_lft 32622sec preferred_lft 32622sec
inet6 2a01:e0a:23a:a980:cec0:fa1:160e:8988/64 scope global temporary dynamic
valid_lft 86217sec preferred_lft 75715sec
inet6 2a01:e0a:23a:a980:39d8:4631:d3a2:a9ec/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86217sec preferred_lft 86217sec
inet6 fe80::adc1:ed64:6a06:fbca/64 scope link noprefixroute
valid_lft forever preferred_lft forever
sudo rfkill list
0: ideapad_wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
1: ideapad_bluetooth: Bluetooth
Soft blocked: yes
Hard blocked: no
2: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
Update The log :
sudo modprobe rtw89pci
sudo dmesg | grep rtw
[ 2.958542] rtw89core: loading out-of-tree module taints kernel.
[ 2.958647] rtw89core: module verification failed: signature and/or required key missing - tainting kernel
[ 2.961266] rtw89_pci 0000:04:00.0: Direct firmware load for rtw89/rtw8852a_fw.bin failed with error -2
[ 2.961270] rtw89_pci 0000:04:00.0: failed to request firmware
[ 2.961278] rtw89_pci 0000:04:00.0: enabling device (0000 -> 0003)
[ 2.964634] rtw89_pci 0000:04:00.0: failed to wait firmware completion
[ 2.964641] rtw89_pci 0000:04:00.0: failed to setup chip information
[ 2.965006] rtw89_pci: probe of 0000:04:00.0 failed with error -22
Update I have an UEFI Dual boot with EFIs partitions (I start on Ubuntu EFI with grub). Hibernate mode is disabled on Windows and I shutdown with restart mode for it. Bios information :
AMD Platform Security Processor : Enabled (If I disable that, I have nomore bluetooth and no wifi)
Device Guard : Disable
Secure boot : Disable
Secure boot status : Disable
Platform Mode : User
Reset to setup mode
Restore Factory Keys
Update I tried this solution too :
echo "blacklist ideapad_laptop" | sudo tee /etc/modprobe.d/ideapad.conf
Update When Ubuntu is starting, I have these messages (quickly) :
ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.PB2],
AE_NOT_FOUND (20210105/dswload2-162)
ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20210105/ps
object-220)
integrity: Problem loading X.509 certificate -65
Update 2 I tried all of these methods but no wifi :
sudo dmesg | grep rtw
[ 2.829383] rtw89core: loading out-of-tree module taints kernel.
[ 2.829536] rtw89core: module verification failed: signature and/or required key missing - tainting kernel
[ 2.847262] rtw89_pci 0000:04:00.0: enabling device (0000 -> 0003)
[ 2.851754] RIP: 0010:rtw89_fw_download+0x9d/0xd0 [rtw89core]
[ 2.851782] ? hfc_func_en+0x61/0x70 [rtw89core]
[ 2.851791] ? rtw89_pci_probe+0x8e0/0xaa0 [rtw89pci]
[ 2.851808] ? rtw89_pci_driver_init+0x1/0x1000 [rtw89pci]
lsmod
Module Size Used by
rfcomm 81920 16
cmac 16384 2
algif_hash 16384 1
algif_skcipher 16384 1
af_alg 28672 6 algif_hash,algif_skcipher
bnep 24576 2
nls_iso8859_1 16384 1
snd_hda_codec_realtek 135168 1
intel_rapl_msr 20480 0
snd_hda_codec_generic 81920 1 snd_hda_codec_realtek
intel_rapl_common 24576 1 intel_rapl_msr
ledtrig_audio 16384 1 snd_hda_codec_generic
snd_hda_codec_hdmi 61440 1
snd_hda_intel 53248 4
snd_intel_dspcfg 28672 1 snd_hda_intel
snd_intel_sdw_acpi 20480 1 snd_intel_dspcfg
snd_hda_codec 147456 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core 94208 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep 16384 1 snd_hda_codec
snd_pcm 114688 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
joydev 24576 0
edac_mce_amd 32768 0
snd_seq_midi 20480 0
amdgpu 6086656 12
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 36864 1 snd_seq_midi
rtw89pci 36864 1
snd_seq 73728 2 snd_seq_midi,snd_seq_midi_event
rtw89core 507904 1 rtw89pci
kvm_amd 114688 0
nouveau 2023424 0
kvm 847872 1 kvm_amd
crct10dif_pclmul 16384 1
mac80211 1015808 2 rtw89pci,rtw89core
ghash_clmulni_intel 16384 0
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
btusb 61440 0
iommu_v2 24576 1 amdgpu
snd_timer 40960 2 snd_seq,snd_pcm
gpu_sched 36864 1 amdgpu
btrtl 24576 1 btusb
mxm_wmi 16384 1 nouveau
aesni_intel 376832 3
drm_ttm_helper 16384 2 amdgpu,nouveau
ttm 73728 3 amdgpu,drm_ttm_helper,nouveau
btbcm 16384 1 btusb
btintel 28672 1 btusb
crypto_simd 16384 1 aesni_intel
cryptd 24576 3 crypto_simd,ghash_clmulni_intel
bluetooth 643072 41 btrtl,btintel,btbcm,bnep,btusb,rfcomm
snd 94208 19 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi
drm_kms_helper 245760 2 amdgpu,nouveau
cfg80211 884736 2 rtw89core,mac80211
rapl 20480 0
input_leds 16384 0
cec 53248 1 drm_kms_helper
soundcore 16384 1 snd
ecdh_generic 16384 1 bluetooth
serio_raw 20480 0
rc_core 61440 1 cec
ecc 32768 1 ecdh_generic
i2c_algo_bit 16384 2 amdgpu,nouveau
wmi_bmof 16384 0
fb_sys_fops 16384 1 drm_kms_helper
hid_multitouch 28672 0
efi_pstore 16384 0
libarc4 16384 1 mac80211
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
ccp 98304 1 kvm_amd
ucsi_acpi 16384 0
typec_ucsi 40960 1 ucsi_acpi
typec 57344 1 typec_ucsi
cm32181 16384 0
mac_hid 16384 0
industrialio 77824 1 cm32181
sch_fq_codel 20480 2
parport_pc 45056 0
ppdev 24576 0
lp 20480 0
parport 65536 3 parport_pc,lp,ppdev
drm 552960 10 gpu_sched,drm_kms_helper,amdgpu,drm_ttm_helper,ttm,nouveau
ip_tables 32768 0
x_tables 49152 1 ip_tables
autofs4 45056 2
usbhid 57344 0
hid_generic 16384 0
crc32_pclmul 16384 0
nvme 45056 4
r8169 77824 0
ahci 40960 0
xhci_pci 20480 0
i2c_piix4 28672 0
libahci 36864 1 ahci
xhci_pci_renesas 20480 1 xhci_pci
nvme_core 122880 6 nvme
realtek 32768 1
wmi 32768 3 wmi_bmof,mxm_wmi,nouveau
video 49152 1 nouveau
i2c_hid_acpi 16384 0
i2c_hid 28672 1 i2c_hid_acpi
hid 135168 4 i2c_hid,usbhid,hid_multitouch,hid_generic
Update 3 Now, when I want disable the module, I can't anymore if I use the wget solution :
sudo modprobe rtw89pci
Erreur de segmentation (core dumped) # segmentation fault
sudo modprobe -r rtw89pci
modprobe: FATAL: Module rtw89pci is in use.
sudo dmesg | grep rtw
[ 7.872266] rtw89core: loading out-of-tree module taints kernel.
[ 7.872448] rtw89core: module verification failed: signature and/or required key missing - tainting kernel
[ 7.873775] rtw89_pci 0000:04:00.0: enabling device (0000 -> 0003)
[ 7.873934] rtw89_pci 0000:04:00.0: Direct firmware load for rtw89/rtw8852a_fw.bin failed with error -2
[ 7.873936] rtw89_pci 0000:04:00.0: failed to request firmware
[ 7.894681] rtw89_pci 0000:04:00.0: failed to wait firmware completion
[ 7.894750] rtw89_pci 0000:04:00.0: failed to setup chip information
[ 7.895129] rtw89_pci: probe of 0000:04:00.0 failed with error -22
[...]
[ 155.313699] rtw89_pci 0000:04:00.0: loading /lib/firmware/rtw89/rtw8852a_fw.bin failed with error -20
[ 155.313702] rtw89_pci 0000:04:00.0: Direct firmware load for rtw89/rtw8852a_fw.bin failed with error -20
[ 155.313704] rtw89_pci 0000:04:00.0: failed to request firmware
[ 155.315633] rtw89_pci 0000:04:00.0: MAC has already powered on
[ 155.318235] rtw89_pci 0000:04:00.0: failed to wait firmware completion
[ 155.318238] rtw89_pci 0000:04:00.0: failed to setup chip information
[ 155.318552] rtw89_pci: probe of 0000:04:00.0 failed with error -22
[ 517.524409] rtw89_pci 0000:04:00.0: MAC has already powered on
[ 517.526061] RIP: 0010:rtw89_fw_download+0x8f/0xd0 [rtw89core]
[ 517.526098] ? rtw89_pci_probe+0x811/0xb40 [rtw89pci]
Update 3 Same thing for the copy solution of the .bin (make) to the/lib/firmware/rtw89 :
sudo modprobe rtw89pci
Erreur de segmentation (core dumped) # segmentation fault
sudo modprobe -r rtw89pci
modprobe: FATAL: Module rtw89pci is in use.
sudo dmesg | grep rtw
[ 2.980960] rtw89core: loading out-of-tree module taints kernel.
[ 2.981072] rtw89core: module verification failed: signature and/or required key missing - tainting kernel
[ 2.983024] rtw89_pci 0000:04:00.0: enabling device (0000 -> 0003)
[ 2.983305] rtw89_pci 0000:04:00.0: Direct firmware load for rtw89/rtw8852a_fw.bin failed with error -2
[ 2.983309] rtw89_pci 0000:04:00.0: failed to request firmware
[ 2.990952] rtw89_pci 0000:04:00.0: failed to wait firmware completion
[ 2.991009] rtw89_pci 0000:04:00.0: failed to setup chip information
[ 2.991405] rtw89_pci: probe of 0000:04:00.0 failed with error -22
[...]
[ 146.006476] rtw89_pci 0000:04:00.0: MAC has already powered on
[ 146.008682] RIP: 0010:rtw89_fw_download+0x8f/0xd0 [rtw89core]
[ 146.008697] ? rtw89_pci_probe+0x810/0xb40 [rtw89pci]
Update 3 Disable the fast boot on Windows didn't work. I used a powercfg.exe /hibernate off
to disable this mod ever (option disapear). But I tried to enable that to uncheck the option fast boot but it didn't change things.
Update 4 Ok I removed an error at the beggining of the session when I checked "Reset to setup mode" in the bios. But no wifi. After that, I reinstalled Ubuntu to be safe and I stay on the kernel 5.8.0.43 (there is 2 kernels with the 20.04 : 5.8.0.55 by default doesn't work, no boot).
integrity: Problem loading X.509 certificate -65
Update 5 Many peoples have the same problem (on arch mainly : no surprise because it didn't work on Manjaro). The conversation continue here (I continue to tell you if there are interessant news) : https://github.com/lwfinger/rtw89/issues/2
Update 6 The new version of rtw89 works very well for Ubuntu 20.04 and 21.04. Problem solved.
Solution 1:
The module that was built is called rtw89pci.
LD [M] /home/user/Documents/git/rtw89/rtw89pci.ko
Please try:
sudo modprobe rtw89pci
If your wireless doesn't start immediately, check the log:
sudo dmesg | grep rtw
And post the result.
EDIT: You are missing required firmware:
Direct firmware load for rtw89/rtw8852a_fw.bin failed with error -2
In addition to Jeremy’s excellent method in his comment above, I suggest:
sudo mkdir /lib/firmware/rtw89
sudo cp ~/Documents/git/rtw89/rtw8852a_fw.bin /lib/firmware/rtw89
sudo modprobe -r rtw89pci
sudo modprobe rtw89pci
Is there any improvement?