Fedora 39: Lenovo ThinkPad P16s Gen 2 - Intel Raptor Lake PCH CNVi WiFi frequently disconnecting

Problem

I installed Fedora 39 workstation two months ago, and suddenly recently I am running into the problem of my wireless card disconnecting frequently. It is happening in various locations (at home, at my work, etc.)

When i do lspci -nnk I got this as a reference of my wireless card:

00:14.3 Network controller [0280]: Intel Corporation Raptor Lake PCH CNVi WiFi [8086:51f1] (rev 01)
	Subsystem: Intel Corporation Device [8086:0090]
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

My detailed system information is:

inxi -Fzxx    
System:
  Kernel: 6.7.7-200.fc39.x86_64 arch: x86_64 bits: 64 compiler: gcc
    v: 2.40-14.fc39
  Desktop: GNOME v: 45.4 tk: GTK v: 3.24.41 wm: gnome-shell dm: GDM
    Distro: Fedora Linux 39 (Workstation Edition)
Machine:
  Type: Laptop System: LENOVO product: 21HKCTO1WW v: ThinkPad P16s Gen 2
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: LENOVO model: 21HKCTO1WW v: SDK0T76530 WIN
    serial: <superuser required> part-nu: LENOVO_MT_21HK_BU_Think_FM_ThinkPad
    P16s Gen 2 UEFI: LENOVO v: N3QET39W (1.39 ) date: 10/23/2023
Battery:
  ID-1: BAT0 charge: 38.2 Wh (44.1%) condition: 86.7/86.0 Wh (100.8%)
    volts: 15.2 min: 15.4 model: SMP 5B11M90037 serial: <filter>
    status: discharging
CPU:
  Info: 14-core (6-mt/8-st) model: 13th Gen Intel Core i7-1370P bits: 64
    type: MST AMCP arch: Raptor Lake rev: 2 cache: L1: 1.2 MiB L2: 11.5 MiB
    L3: 24 MiB
  Speed (MHz): avg: 740 high: 1316 min/max: 400/5000:5200:3900 cores: 1: 881
    2: 400 3: 900 4: 400 5: 757 6: 959 7: 1316 8: 1240 9: 848 10: 542 11: 400
    12: 400 13: 795 14: 849 15: 900 16: 900 17: 400 18: 400 19: 1013 20: 500
    bogomips: 87552
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel Raptor Lake-P [Iris Xe Graphics] vendor: Lenovo driver: i915
    v: kernel arch: Gen-13 ports: active: HDMI-A-1,eDP-1
    empty: DP-1, DP-2, DP-3, DP-4 bus-ID: 00:02.0 chip-ID: 8086:a7a0
  Device-2: NVIDIA GA107GLM [RTX A500 Laptop GPU] vendor: Lenovo
    driver: nouveau v: kernel arch: Ampere pcie: speed: 16 GT/s lanes: 4
    bus-ID: 03:00.0 chip-ID: 10de:25bb
  Device-3: Luxvisions Innotech Integrated Camera driver: uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 3-4:3 chip-ID: 30c9:00ad
  Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 23.2.4
    compositor: gnome-shell driver: gpu: i915 display-ID: 0
  Monitor-1: HDMI-A-1 model: Idek Iiyama PL2530H res: 1920x1080 dpi: 90
    diag: 623mm (24.5")
  Monitor-2: eDP-1 model: Samsung 0x4165 res: 3840x2400 dpi: 284
    diag: 406mm (16")
  API: OpenGL v: 4.6 vendor: intel mesa v: 23.3.6 glx-v: 1.4 es-v: 3.2
    direct-render: yes renderer: Mesa Intel Graphics (RPL-P)
    device-ID: 8086:a7a0 display-ID: :0.0
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
Audio:
  Device-1: Intel Raptor Lake-P/U/H cAVS vendor: Lenovo
    driver: sof-audio-pci-intel-tgl bus-ID: 00:1f.3 chip-ID: 8086:51ca
  API: ALSA v: k6.7.7-200.fc39.x86_64 status: kernel-api
  Server-1: JACK v: 1.9.22 status: off
  Server-2: PipeWire v: 1.0.3 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
  Device-1: Intel Raptor Lake PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:51f1
  IF: wlp0s20f3 state: up mac: <filter>
  Device-2: Intel Ethernet I219-LM vendor: Lenovo driver: e1000e v: kernel
    port: N/A bus-ID: 00:1f.6 chip-ID: 8086:0dc5
  IF: enp0s31f6 state: down mac: <filter>
  IF-ID-1: zcctun0 state: unknown speed: 10000 Mbps duplex: full mac: N/A
Bluetooth:
  Device-1: Intel AX211 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 bus-ID: 3-10:4 chip-ID: 8087:0033
  Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.3
    lmp-v: 12
Drives:
  Local Storage: total: 953.87 GiB used: 84.91 GiB (8.9%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: MZVL21T0HDLU-00BLL
    size: 953.87 GiB speed: 63.2 Gb/s lanes: 4 serial: <filter> temp: 37.9 C
Partition:
  ID-1: / size: 150.6 GiB used: 37.25 GiB (24.7%) fs: btrfs
    dev: /dev/nvme0n1p6
  ID-2: /boot size: 1.05 GiB used: 423.8 MiB (39.5%) fs: ext4
    dev: /dev/nvme0n1p5
  ID-3: /boot/efi size: 256 MiB used: 49.4 MiB (19.3%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 210 GiB used: 47.2 GiB (22.5%) fs: btrfs
    dev: /dev/nvme0n1p7
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 39.0 C mobo: N/A
  Fan Speeds (rpm): fan-1: 1718
Info:
  Memory: total: 64 GiB note: est. available: 62.44 GiB used: 9.51 GiB (15.2%)
  Processes: 706 Power: uptime: 47m wakeups: 0 Init: systemd v: 254
    target: graphical (5) default: graphical
  Packages: pm: flatpak pkgs: 41 Compilers: gcc: 13.2.1 Shell: Zsh v: 5.9
    running-in: terminator inxi: 3.3.33

And the kernel version I am using is:

uname -r 
6.7.7-200.fc39.x86_64

This is the output of nmcli device show:

 nmcli device show
GENERAL.DEVICE:                         wlp0s20f3
GENERAL.TYPE:                           wifi
GENERAL.HWADDR:                         28:C5:D2:F5:91:8C
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     Ziggo_Garcia_Pena
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2

Cause

This is a similar issue, https://github.com/lwfinger/rtw89/issues/240 but for realtek wireless cards where they propose a workaround regarding the rtw89 driver being built on the kernel

It seems that the driver for those cards (INtel and realtek) are not behaving well in Lenovo and HP laptps, but the cause itself is not yet known.

Related Issues

This is an issue for Lenovo. English Community-Lenovo Community

Workarounds

None yet.

I will appreciate if someone has some input or ideas about how to tackle this.

From Proposed Common Issues to Ask Fedora

LHDB user comments for your PCI 8086:51f0:8086:0090 mention an old bugzilla report and a manual firmware update. As always, make sure you are fully current with Fedora and vendor updates so you aren’t fighting a problem that has been fixed. My many years of linux experience have taught me the importance of having a USB wifi device while waiting for issues liek this to be fixed.

Thanks @gnwiii for your response.

I just discovered that this is actually happening to both my wired Ethernet and USB wired Ethernet as well. As consequence, I cannot suspend my laptop because If I do, I loss connection over all my network devices (wireless and both wired).

I’ve downloaded the firmware from this section and proceed with the copy (cp iwlwifi-*.{ucode,pnvm} /lib/firmware/) and loaded the driver again (sudo modprobe iwlwifi) but it did not work my wireless card still get disconnected when I suspend my machine.
I also make sure my machine was fully updated in drivers and hardware data regarding Fedora OS and vendor pci before doing this.

Talking with Lenovo Support, they say for this laptop (ThinkPad P16s Gen 2) the Linux OS supported or what they called CERTIFIED are Ubuntu 22.04 and RHEL 9.2 as this link states: (Check under Notebooks and Laptops dropdown)

But this is not an impediment in order the firmware can be updated with copying the files as the intel documentation says right? Is a bit weird …

Since both ethernet and wifi interfaces work but fail to wake-from-sleep, the failure may be in system firmware settings. Enterprise grade laptops are often designed so HQ can install updates remotely. Before I retired, we were told to leave our enterprise issue laptops (running Windows) turned on after hours. From time to time, updates would appear with a notice that the system needed to be rebooted. This is done using “Wake on LAN” or “Wake on WLAN” packets with the network devices in a low-power mode.

yes, and it seems according to this list,my laptop reference is not yet for Fedora 39

From Lenovo side, they say for my laptop the only ones what they called “CERTIFIED” are Ubuntu 22.04 and RHEL 9.2 according to this link

and I found this firmware update, LVFS: ThinkPad T14 Gen 4 / P14s Gen 4 / T16 Gen 2 / P16s Gen 2 but that is older than I actually have:

fwupdmgr install 2f28abef4bb7851704ffccc8f685c84a84d79a401a3d9ea5011ff59b2875f66b-N3QET39W.cab
Decompressing…           [***************************************]
Specified firmware is older than installed '0.1.39 < 0.1.43'

I s a bit frustrating, I really likes Fedora, but I cannot pretend unstall Feodra 37 expecting my system never will upgrade itself at some point. :frowning: