我的新联想 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 上运行良好。问题解决了。