联想 Legion 5 Pro 16ACH6(Ubuntu 20.04)上的 Realtek RTL8852AE 问题

联想 Legion 5 Pro 16ACH6(Ubuntu 20.04)上的 Realtek RTL8852AE 问题

我的新联想 Legion 5 Pro 16ach6 的 wifi 卡出现问题:Realtek RTL8852AE - PCIe 2.0,带有 ubuntu 20.04 和 5.12.9 内核(可在 Windows 10 上运行)。

我关注了这个主题:Realtek 8852 20.10 网络驱动程序但是 Modeprobe 找不到模块“rtw_8723de”(它不存在,我认为这是 rtw88 存储库的一个错误)并且创建的 2 .ko 不起作用:rtw89core.ko 或 rtw89pci.ko(我们可以在 lspci 中看到它)。

我尝试了不同的内核,例如 5.8、5.11、5.12,但遇到了同样的问题。Ubuntu 20.04、21.04、带有 gnome 的最后一个 Manjaro...我认为在 bios 中没问题:我禁用了安全启动和 AMD CPU 保护,但没有结果!有一个带有“独立”和“动态”图形的选项,但除了在 AMD 图形芯片组和 NVIDIA 显卡之间进行选择外,我没有发现任何区别。

当我尝试这个解决方案时:https://github.com/lwfinger/rtw89, 我有这个 :

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

一些信息 :

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

更新 日志:


    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

更新我有一个带有 EFI 分区的 UEFI 双启动(我使用 grub 在 Ubuntu EFI 上启动)。Windows 上的休眠模式已禁用,我使用重启模式关闭它。Bios 信息:

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

更新我也尝试过这个解决方案:

echo "blacklist ideapad_laptop" | sudo tee /etc/modprobe.d/ideapad.conf

更新当 Ubuntu 启动时,我(很快)收到以下消息:

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

更新 2我尝试了以下所有方法,但没有 Wi-Fi:

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

更新 3现在,当我想禁用该模块时,如果我使用 wget 解决方案,我就无法再禁用它:

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]

更新 3将 .bin 解决方案 (make) 复制到 /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]

更新 3在 Windows 上禁用快速启动不起作用。我powercfg.exe /hibernate off曾经使用过禁用此模式(选项消失)。但我尝试启用它以取消选中快速启动选项,但这并没有改变一切。

更新 4好的,当我在 BIOS 中选中“重置为设置模式”时,我在会话开始时删除了一个错误。但没有 wifi。之后,为了安全起见,我重新安装了 Ubuntu,并继续使用内核 5.8.0.43(20.04 有 2 个内核:默认情况下 5.8.0.55 不起作用,无法启动)。

完整性:加载 X.509 证书时出现问题 -65

更新 5许多人都遇到了同样的问题(主要是在 arch 上:这并不奇怪,因为它在 Manjaro 上不起作用)。对话在这里继续(如果有有趣的消息,我会继续告诉你):https://github.com/lwfinger/rtw89/issues/2

更新 6rtw89 的新版本在 Ubuntu 20.04 和 21.04 上运行良好。问题解决了。

答案1

构建的模块称为 rtw89pci。

LD [M] /home/user/Documents/git/rtw89/rtw89pci.ko

请尝试:

sudo modprobe rtw89pci

如果您的无线网络没有立即启动,请检查日志:

sudo dmesg | grep rtw

并发布结果。

编辑:您缺少所需的固件:

rtw89/rtw8852a_fw.bin 的直接固件加载失败,错误为 -2

除了 Jeremy 在上述评论中提出的出色方法之外,我还建议:

sudo mkdir /lib/firmware/rtw89 
sudo cp ~/Documents/git/rtw89/rtw8852a_fw.bin /lib/firmware/rtw89 
sudo modprobe -r rtw89pci 
sudo modprobe rtw89pci

有沒有改善?

答案2

rtw89 的新版本在 Ubuntu 20.04 和 21.04 上运行良好。问题解决了。

相关内容