Device: Lenovo Legion Y7000P IRX10, Zorin OS 17 (Kernel 6.2.0-39-generic), Realtek 8922AE
-
Initial State & Network Infrastructure
· Issue: No WiFi icon in system tray. enp12s0 (Ethernet) unusable without cable.
· Action: Used smartphone USB tethering (nmcli dev shows connected) for emergency internet access. Used Windows + USB flash drive to bypass blocked GitHub mirrors and transfer source files physically. -
Kernel Driver Compilation
· Action: Compile lwfinger/rtw89 driver source code.
· Command: make && sudo make install (Older sudo make dkms fails because the dkms target was removed from new Makefile).
· Result: Driver loads successfully. Verified by lsmod | grep rtw89 showing rtw89pci and rtw89core. -
Firmware Handling
· Action: dmesg logs indicated missing rtw8922a_fw.bin.
· Action: Attempted CDN and GitHub raw downloads, eventually used sudo apt install linux-firmware and manual placement to move the file to /lib/firmware/rtw89/.
· Result: Firmware was found, but dmesg threw Unknown firmware header version 60, indicating a version mismatch between the kernel and the firmware file. -
Blacklisting Native Driver
· Action: Prevent the built-in rtw_8922ae module from claiming the hardware.
· Command: echo "blacklist rtw_8922ae" | sudo tee /etc/modprobe.d/blacklist-rtw8922ae.conf
· Command: sudo update-initramfs -u (To enforce the blacklist into the boot image). -
ACPI Deception & ASPM Disable
· Action: Disable Lenovo's aggressive ASPM power management and trick the ACPI BIOS.
· Action: Edited /etc/default/grub, added pcie_aspm=off and acpi_osi=! acpi_osi='Windows 2020' to the kernel boot parameters, followed by sudo update-grub. -
Forced PCI Binding
· Action: Attempted to force bind the driver to the PCI ID manually.
· Command: echo "0000:12:00.0" | sudo tee /sys/bus/pci/drivers/rtw89pci/bind
· Result: Failed because /sys/bus/pci/drivers/rtw89pci/ directory never gets created (the driver loaded in memory but failed to register on the PCI bus). -
Hardware Reset & BIOS
· Action: Repeatedly unplugged power adapter and held the power button for 30-60 seconds to clear the EC (Embedded Controller) static charge.
· Action: Entered BIOS and disabled Secure Boot.
· Action: Booted into Windows, downloaded and successfully flashed the latest official Lenovo BIOS update. -
Cross-OS Hardware Wake-up
· Action: Attempt to force power using Windows hardware drivers.
· Action: Booted into Windows, waited for 2-3 minutes, then clicked "Shut Down" (absolutely not "Restart"), completely powered down, then booted back into Zorin OS. -
Final Hardware Diagnosis
· Command: sudo lspci -vnn -k -s 12:00.0
· Result: System showed Kernel modules: rtw_8922ae (which is blacklisted so not used). Crucially, both I/O ports and Memory showed [disabled]. This proves the Lenovo motherboard's ACPI firmware has physically locked the power pins for this Realtek 8922 chip.