9

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 -&gt; 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.

  • 1
    Try cd /lib/firmware && sudo mkdir rtw89 && sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/rtw89/rtw8852a_fw.bin Then reboot – Jeremy31 Jun 07 '21 at 12:04
  • Please try disabling fast boot in Windows: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#about_dual-boot_with_windows_and_fast-boot_enabled – chili555 Jun 07 '21 at 20:16
  • I just noticed that thhe driver code was just updated a few days ago. When did you download the driver source code? – chili555 Jun 08 '21 at 13:29
  • the last commit. I tried the other just before but there is a problem with the compilation when I use the 5.8. Today I reinstall Ubuntu (to be safe) and I use the kernel 5.8 (official) – Matthmatth03 Jun 08 '21 at 13:57
  • What result for locate rtw8852a_fw.bin – Jeremy31 Jun 08 '21 at 14:30
  • locate rtw8852a_fw.bin /home/user/download/linux-firmware/rtw89/rtw8852a_fw.bin /home/user/download/rtw89/rtw8852a_fw.bin /usr/lib/firmware/rtw89/rtw8852a_fw.bin – Matthmatth03 Jun 08 '21 at 15:46
  • I notice that the firmware is newer at the lwfinger git. Please be sure to use that one. – chili555 Jun 08 '21 at 21:23
  • Why is it in /usr/lib/firmware/rtw89? – Jeremy31 Jun 09 '21 at 10:11
  • I have a doubt about that. I tried the 2 places and when I did your command, I placed it in this case. I try the both all the time. I don't understand the real difference. I try too in the folder rtw89 and just outside. – Matthmatth03 Jun 09 '21 at 16:33
  • I recently installed linux-oem-20.04d (through apt) which now recognizes and automatically loads the rtw89pci module at startup - no further action required. – rdesgroppes Jan 10 '22 at 10:19
  • Recently updated linux-generic-hwe-20.04 (5.13.0.25.26~20.04.12) now provides with rtw89 as well, no need for linux-oem-20.04d! – rdesgroppes Jan 18 '22 at 13:37

2 Answers2

3

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?

chili555
  • 60,188
0

The new version of rtw89 works very well for Ubuntu 20.04 and 21.04. Problem solved.