Lenovo ThinkPad P1 Gen 5

Remarks

Problems are similar to the ones described in someone else’s HCL for HP Elitebook 860 G9.

Graphical issues

Qubes installer is visually very slow, it takes a few seconds for a single frame to render, in fact I installed Qubes on a different laptop, and then moved the disk to this one. After install, Qubes produces graphical artifacts that can be fixed by Graphics artefacts with Intel UHD Graphics 770 and kernel 5.17.7 · Issue #7507 · QubesOS/qubes-issues · GitHub

Also I had to change KDE rendering backend to XRender, because when using OpenGL (i.e. hardware acceleration) animations are too slow, and CPU load is too high.

Not able to set native 165Hz refresh rate of laptop display, only 60Hz option is available.

WiFi doesn’t work

ax211 wifi card doesn’t work. It is soldered to the motherboard, so I was not able to replace it with something else. Instead, as a workaround, bought a USB WiFi adapter.

Suspend doesn’t work

There is an option to set sleep mode in UEFI.

Windows and Linux (s2idle) - in this mode the laptop never wakes up, have to hard reset.
S3 Linux (deep) - in this mode the laptop suspends-and-wakes properly, but only a first time. After a second attempt it suspends, and then immediately wakes up.

Other issues

Usb qube sometimes doesn’t start - sys-usb sometimes fails to start · Issue #6824 · QubesOS/qubes-issues · GitHub

Attachments


layout:
  'hcl'
type:
  'notebook'
hvm:
  'yes'
iommu:
  'yes'
slat:
  'yes'
tpm:
  'unknown'
remap:
  'yes'
brand: |
  LENOVO
model: |
  21DCCTO1WW
bios: |
  N3JET24W (1.08 )
cpu: |
  12th Gen Intel(R) Core(TM) i7-12800H
cpu-short: |
  FIXME
chipset: |
  Intel Corporation Device [8086:4641] (rev 02)
chipset-short: |
  FIXME
gpu: |
  Intel Corporation Device [8086:46a6] (rev 0c) (prog-if 00 [VGA controller])
gpu-short: |
  FIXME
network: |
  Intel Corporation Device 51f0 (rev 01)
memory: |
  32435
scsi: |

usb: |
  4
versions:

- works:
    'partial'
  qubes: |
    R4.1
  xen: |
    4.14.5
  kernel: |
    5.18.16-1
  remark: |
    FIXME
  credit: |
    FIXAUTHOR
  link: |
    FIXLINK

1 Like

Thank you @tegas for your report, which is online now!

@tegas Just in case you are still looking to solve your wifi issue, there is a fix: AX211 Fails to Start on a range of kernels/firmwares (5.18.9, latest) - #22 by makuoly

1 Like

Thanks for the suggestion. I can confirm that wi-fi works when sys-net has kernel upgraded to 5.19.9.

The model number 21DCCTO1WW is not a valid Thinkpad P1 Gen 5.

I am too looking to get the Thinkpad P1 Gen 5 for Qubes and I wanted to review your specs to see what you got but this model number is not listed in any PSREF i can find.

PSREF ThinkPad ThinkPad P1 Gen 5 (lenovo.com)

I am curious did you get the model with the nvidia or just intel integrated graphics?

I also heard on another thread is a problem with 12th gen CPU they are really slow something about them only being recognized on E mode or something … is that what it could be?

21DCCTO1WW can be found on this page of lenovo.com. It corresponds to “Build Your PC”. I built mine with 12800H and without a dGPU. I don’t have information regarding 12th gen CPUs arguably being slow / not recognized.

https://www.lenovo.com/us/en/p/laptops/thinkpad/thinkpadp/thinkpad-p1-gen-5-(16-inch-intel)/21dccto1wwus1

Hey how many usb controllers do this Thinkpad have ?

According to an order spec sheet I saw from Lenovo for this model it has:

USB port Type-A:
USB 3.2 Gen1 (Powered USB) x 1、USB 3.2 Gen1 x 1

USB port Type-C
USB 4 (Thunderbolt 4 compatible) x 2

Lenovo ThinkPad P1 G5 (21DC002PUS) with RTX A2000, 16" WQXGA IPS non-touch

Remarks

Works very well once installed. Only one issue during/before install (halt before UI; workaround available) and only one ongoing issue post-install (wake from sleep). It works well enough for this to become my daily driver, assuming that once I try this on my desktop dock at my office that I’m able to drive my external monitors. I haven’t been able to use Qubes since my Lenovo W520, so I’m excited to be back!

Hardware specifications

  • Model: 21DC002PUS (can’t find it in PSREF; seems a lot like 21DC004JUS)
  • CPU: Intel Core i7-12700H (12th Gen)
    • E-cores up to 3.50 GHz, P-cores up to 4.70 GHz
  • RAM: 32 GB DDR5-4800MHz
  • Integrated GPU: Intel Iris Xe Graphics
  • Discrete GPU: NVIDIA RTX A2000 8GB GDDR6
  • Display Panel: 16" WQXGA (2560 x 1600), IPS, Anti-Glare, Non-Touch, 100% sRGB, 500 nits, 165Hz, LED Backlight
  • Battery: 90Wh battery, supports Rapid Charge
  • Power Input: 170W AC Adapter
  • TPM: Discrete TPM 2.0

Works with special attention

  • Initial installation requires simple effort
    • R4.1.1 stable version installer does not work, use R4.1.2-rc1 along with its kernel 6.1.7 installer boot option instead; see following bullets for details
    • In the R4.1.1 stable version installer, prior to reaching the installer UI, it halts. It complains that there is no network connection and therefore it will not proceed. This could be that it doesn’t detect the WiFi device or it could be related to the graphics compatibility. I did not spend much time to attempt to remedy the situation. Same happens in R4.1.2-rc1 if not choosing the 6.1.7 kernel option in the installer boot.
    • R4.1.2-rc1 install media worked perfectly when choosing the kernel 6.1.7 option at the installer boot prompt, and this is a one-time choice required. It continues work perfectly ongoing on future boots in the installed system without additional effort.
  • WiFi
    • WiFi didn’t work when using debian-11 as the template for sys-net. It just didn’t appear at all. Probably a driver issue.
    • Using fedora-37 instead for sys-net worked without additional effort.

Does not work well

  • Does not wake from sleep
    • Once the laptop goes to sleep (even if I’ve set the settings to disallow sleep in the UI), it does not wake from sleep. It simply ignores all keypresses, the power button, and the laptop lid open/close sensor. The only way to rouse it again is to hold the power button until it powers off and then boot again. I haven’t spent time to resolve this, but it is an annoyance.
  • No other issues have been detected so far… (but check out the things I didn’t test, below)

Works without issue

  • Touchpad
  • Touchstick
  • Display panel backlight control via UI and keyboard hotkeys
  • Audio
  • Audio control via UI and keyboard hotkeys, including mic-mute
  • Video panel resolution defaults to native 2560x1600 and allows easy changing to any resolution supported by the panel without issue
  • NVMe in two PCIe slots on the laptop’s motherboard work great concurrently
    • Technically this has three slots, but I think the third isn’t wired up in this specific model
  • Battery level, charging, and power input detection

Untested

  • Advanced use of the discrete video card, such as 3D rendering or anything to prove the NVIDIA card is working properly; I suspect it will require additional drivers or effort to do anything needing high performance
  • Audio input
  • Webcam
  • Secondary/tertiary external monitors
  • Thunderbolt/USB external dock usage
  • Bluetooth usage
  • TPM (it exists, but it shows in the report below that it is unknown)

Attachments

Not permitted to upload the file due to me being too new on the forum.

---
layout:
  'hcl'
type:
  'notebook'
hvm:
  'yes'
iommu:
  'yes'
slat:
  'yes'
tpm:
  'unknown'
remap:
  'yes'
brand: |
  LENOVO
model: |
  21DC002PUS
bios: |
  N3JET28W (1.12 )
cpu: |
  12th Gen Intel(R) Core(TM) i7-12700H
cpu-short: |
  FIXME
chipset: |
  Intel Corporation Device [8086:4641] (rev 02)
chipset-short: |
  FIXME
gpu: |
  Intel Corporation Device [8086:46a6] (rev 0c) (prog-if 00 [VGA controller])
  NVIDIA Corporation Device [10de:25ba] (rev a1) (prog-if 00 [VGA controller])
gpu-short: |
  FIXME
network: |
  Intel Corporation Device 51f0 (rev 01)
memory: |
  32467
scsi: |

usb: |
  3
versions:

- works:
    partial
  qubes: |
    R4.1
  xen: |
    4.14.5
  kernel: |
    6.1.7-1
  remark: |
    Installer fails to run unless:
    - Use Qubes R4.1.2-rc1 install media
    - Choose the kernel 6.1.7 at installer boot menu
    - ... otherwise installer halts before reaching install UI
    WiFi special need:
    - WiFi works out of the box if sys-net uses the fedora-37 template
    - On-board WiFi is missing when sys-net uses the debian-11 template
    What doesn't seem to work:
    - Gets stuck in sleep; it seems to ignore all inputs, lid open, and power button
  credit: |
    Emmaly
  link: |
    FIXLINK

---
3 Likes

Thank you @Emmaly for this very nice HCL report, which is online now!

I moved it into another thread that already existed for this machine with the goal to have all HCLs for a particular machine in one thread.

1 Like

@Emmaly have you tried setting sleep mode to S3 Linux in BIOS and observe the sleep-resume behavior of your laptop with this setting?

Great HCL report. Please post ls-pci -vv or something like that to understand USB controllers situation.

The setting was set for Windows & Linux mode prior to switching it to S3 Linux mode. After changing that, I tried it one time last night by selecting Suspend from the UI and it seemed to continue with the same behavior (blinking power light, no response to any buttons/power button/lid) but I’ll try to do a better job of tracing this hopefully today if time allows. I’ll come back with my findings.

1 Like

lspci -vv log below, but first here are notes about current state for context:

Currently the video card setting in the BIOS is set for Discrete Graphics, not Hybrid Graphics as I was trying to determine why my Lenovo Thunderbolt 4 Workstation dock at my office would not work properly with regard to external monitors. It didn’t show any external displays at all in Hybrid, but does in Discrete, though they don’t actually display anything presently no matter what I do. I had somewhat similar experience in past years with Hybrid mode on older laptops in various Linux distros, so I’m not at all surprised by this. I haven’t had enough time to try much as I don’t have this dock at home, so I’ll need to have spare time at the desk to work through this. It might be helpful to know that both external monitors did show up in the Displays UI with correct resolutions, though I’m unsure about their refresh rates.

Via that dock, all USB-connected devices worked very well, as expected. Only the use of external monitors seemed to be having trouble.

I did not try direct-attaching any external displays to the HDMI port nor via any other mechanism, aside from the dock mentioned above. I suspect if I connect something to the HDMI port, it might work properly. That is something I will test at some point to be complete with HCL reporting, but it is not a configuration I would be satisfied in running for my own daily use. I do have a large number of other Thunderbolt (both 3 & 4), USB, and DisplayLink docks available to me that I will also test if and when it makes sense to do so.

I’m at my home today, so nothing below reflects a connection to that dock; this is all listing only purely laptop internals with no external items attached and the hardware configuration is as-is from the factory. BIOS settings are not factory defaults.

sudo lspci -vv

# in dom0:
sudo lspci -vv | grep -iv 'serial number' | qvm-run --pass-io personal 'cat > /home/user/Downloads/dom0-lspci-vv-sudo.log'

dom0-lspci-vv-sudo.log (77.4 KB)

lspci -vv

# in dom0:
lspci -vv | grep -iv 'serial number' | qvm-run --pass-io personal 'cat > /home/user/Downloads/dom0-lspci-vv.log'

dom0-lspci-vv.log (18.1 KB), which is also shown in the textarea below:

00:00.0 Host bridge: Intel Corporation Device 4641 (rev 02)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
	Latency: 0
	Capabilities: <access denied>
	Kernel modules: igen6_edac

00:01.0 PCI bridge: Intel Corporation Device 460d (rev 02) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 206
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
	I/O behind bridge: 00003000-00003fff [size=4K]
	Memory behind bridge: af000000-b00fffff [size=17M]
	Prefetchable memory behind bridge: 0000004000000000-0000004201ffffff [size=8224M]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:04.0 Signal processing controller: Intel Corporation Device 461d (rev 02)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 234
	Region 0: Memory at 425ac00000 (64-bit, non-prefetchable) [size=128K]
	Capabilities: <access denied>
	Kernel driver in use: proc_thermal_pci
	Kernel modules: processor_thermal_device_pci

00:06.0 PCI bridge: Intel Corporation Device 464d (rev 02) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin D routed to IRQ 207
	Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
	I/O behind bridge: [disabled]
	Memory behind bridge: b0b00000-b0bfffff [size=1M]
	Prefetchable memory behind bridge: [disabled]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:08.0 System peripheral: Intel Corporation Device 464f (rev 02)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 255
	Region 0: Memory at 425ac48000 (64-bit, non-prefetchable) [disabled] [size=4K]
	Capabilities: <access denied>

00:0a.0 Signal processing controller: Intel Corporation Device 467d (rev 01)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Region 0: Memory at 425ac30000 (64-bit, non-prefetchable) [size=32K]
	Capabilities: <access denied>
	Kernel driver in use: intel_vsec
	Kernel modules: intel_vsec

00:14.0 USB controller: Intel Corporation Device 51ed (rev 01) (prog-if 30 [XHCI])
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at 425ac20000 (64-bit, non-prefetchable) [size=64K]
	Capabilities: <access denied>
	Kernel driver in use: pciback
	Kernel modules: xhci_pci

00:14.2 RAM memory: Intel Corporation Device 51ef (rev 01)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Region 0: Memory at 425ac40000 (64-bit, non-prefetchable) [disabled] [size=16K]
	Region 2: Memory at 425ac47000 (64-bit, non-prefetchable) [disabled] [size=4K]
	Capabilities: <access denied>

00:14.3 Network controller: Intel Corporation Device 51f0 (rev 01)
	Subsystem: Intel Corporation Device 0090
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at 425ac3c000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: pciback
	Kernel modules: iwlwifi

00:15.0 Serial bus controller [0c80]: Intel Corporation Device 51e8 (rev 01)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 27
	Region 0: Memory at 4202000000 (64-bit, non-prefetchable) [virtual] [size=4K]
	Capabilities: <access denied>
	Kernel driver in use: intel-lpss

00:16.0 Communication controller: Intel Corporation Device 51e0 (rev 01)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 235
	Region 0: Memory at 425ac45000 (64-bit, non-prefetchable) [size=4K]
	Capabilities: <access denied>
	Kernel driver in use: mei_me
	Kernel modules: mei_me

00:1c.0 PCI bridge: Intel Corporation Device 51b8 (rev 01) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin ? routed to IRQ 208
	Bus: primary=00, secondary=08, subordinate=08, sec-latency=0
	I/O behind bridge: [disabled]
	Memory behind bridge: [disabled]
	Prefetchable memory behind bridge: [disabled]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:1c.7 PCI bridge: Intel Corporation Device 51bf (rev 01) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin D routed to IRQ 209
	Bus: primary=00, secondary=0a, subordinate=0a, sec-latency=0
	I/O behind bridge: 00002000-00002fff [size=4K]
	Memory behind bridge: b0100000-b0afffff [size=10M]
	Prefetchable memory behind bridge: 000000425a100000-000000425aafffff [size=10M]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:1d.0 PCI bridge: Intel Corporation Device 51b0 (rev 01) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 210
	Bus: primary=00, secondary=20, subordinate=89, sec-latency=0
	I/O behind bridge: 00004000-00006fff [size=12K]
	Memory behind bridge: 80000000-ae0fffff [size=737M]
	Prefetchable memory behind bridge: 0000004210000000-000000425a0fffff [size=1185M]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:1f.0 ISA bridge: Intel Corporation Device 5182 (rev 01)
	Subsystem: Lenovo Device 22f8
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:1f.3 Multimedia audio controller: Intel Corporation Device 51c8 (rev 01)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64
	Interrupt: pin A routed to IRQ 236
	Region 0: Memory at 425ac38000 (64-bit, non-prefetchable) [size=16K]
	Region 4: Memory at 425ab00000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: <access denied>
	Kernel driver in use: sof-audio-pci-intel-tgl
	Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl

00:1f.4 SMBus: Intel Corporation Device 51a3 (rev 01)
	Subsystem: Lenovo Device 22f8
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at 425ac44000 (64-bit, non-prefetchable) [size=256]
	Region 4: I/O ports at efa0 [size=32]
	Kernel driver in use: i801_smbus
	Kernel modules: i2c_i801

00:1f.5 Serial bus controller [0c80]: Intel Corporation Device 51a4 (rev 01)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Region 0: Memory at ae100000 (32-bit, non-prefetchable) [size=4K]

01:00.0 VGA compatible controller: NVIDIA Corporation Device 25ba (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Lenovo Device 22f8
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 233
	Region 0: Memory at af000000 (32-bit, non-prefetchable) [size=16M]
	Region 1: Memory at 4000000000 (64-bit, prefetchable) [size=8G]
	Region 3: Memory at 4200000000 (64-bit, prefetchable) [size=32M]
	Region 5: I/O ports at 3000 [size=128]
	Expansion ROM at b0080000 [disabled] [size=512K]
	Capabilities: <access denied>
	Kernel driver in use: nouveau
	Kernel modules: nouveau

01:00.1 Audio device: NVIDIA Corporation Device 2291 (rev a1)
	Subsystem: Lenovo Device 22f8
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin B routed to IRQ 17
	Region 0: Memory at b0000000 (32-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel

04:00.0 Non-Volatile memory controller: SK hynix Device 174a (prog-if 02 [NVM Express])
	Subsystem: SK hynix Device 174a
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	NUMA node: 0
	Region 0: Memory at b0b00000 (64-bit, non-prefetchable) [size=16K]
	Region 2: Memory at b0b05000 (32-bit, non-prefetchable) [size=4K]
	Region 3: Memory at b0b04000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: <access denied>
	Kernel driver in use: nvme
	Kernel modules: nvme

0a:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 5261 (rev 01)
	Subsystem: Realtek Semiconductor Co., Ltd. Device 5261
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 217
	Region 0: Memory at b0100000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: <access denied>
	Kernel driver in use: rtsx_pci
	Kernel modules: rtsx_pci

20:00.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 211
	Bus: primary=20, secondary=21, subordinate=89, sec-latency=0
	I/O behind bridge: 00004000-00005fff [size=8K]
	Memory behind bridge: 80000000-adefffff [size=735M]
	Prefetchable memory behind bridge: 0000004210000000-000000425a0fffff [size=1185M]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

21:00.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 212
	Bus: primary=21, secondary=22, subordinate=22, sec-latency=0
	I/O behind bridge: [disabled]
	Memory behind bridge: [disabled]
	Prefetchable memory behind bridge: 000000425a000000-000000425a0fffff [size=1M]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

21:01.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 213
	Bus: primary=21, secondary=23, subordinate=55, sec-latency=0
	I/O behind bridge: 00004000-00004fff [size=4K]
	Memory behind bridge: 97000000-adefffff [size=367M]
	Prefetchable memory behind bridge: 0000004235000000-0000004259ffffff [size=592M]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

21:02.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 214
	Bus: primary=21, secondary=56, subordinate=56, sec-latency=0
	I/O behind bridge: [disabled]
	Memory behind bridge: 96f00000-96ffffff [size=1M]
	Prefetchable memory behind bridge: [disabled]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

21:03.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 215
	Bus: primary=21, secondary=57, subordinate=89, sec-latency=0
	I/O behind bridge: 00005000-00005fff [size=4K]
	Memory behind bridge: 80000000-96efffff [size=367M]
	Prefetchable memory behind bridge: 0000004210000000-0000004234ffffff [size=592M]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: <access denied>
	Kernel driver in use: pcieport

22:00.0 USB controller: Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020] (prog-if 40 [USB4 Host Interface])
	Subsystem: Intel Corporation Device 0000
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at 425a000000 (64-bit, prefetchable) [size=256K]
	Region 2: Memory at 425a040000 (64-bit, prefetchable) [size=4K]
	Capabilities: <access denied>
	Kernel driver in use: pciback
	Kernel modules: thunderbolt

56:00.0 USB controller: Intel Corporation Thunderbolt 4 USB Controller [Maple Ridge 4C 2020] (prog-if 30 [XHCI])
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Region 0: Memory at 96f00000 (64-bit, non-prefetchable) [size=64K]
	Capabilities: <access denied>
	Kernel driver in use: pciback
	Kernel modules: xhci_pci
1 Like

Success regarding sys-net on the debian-11 template for this hardware:

Summary

I was able to get a debian-11 based sys-net to work with the WiFi NIC. I had to grab an updated firmware from the Linux Kernel’s git repo and drop it in /usr/lib/firmware, unload iwlwifi, then load iwlwifi again. Debian bullseye-backports did not have a sufficiently new firmware, either, as it’s extremely outdated for this, only a handful of months newer than stable, both of which are apparently stuck back in 2021.

Failure Situation

When failing, the WiFi NIC simply doesn’t appear in the UI nor in iwconfig, rfkill, or anywhere else one would expect to see it. In comparison, it worked immediately when using the fedora-37 template for this purpose instead.

dmesg in sys-net (using debian-11 template) when failing to locate adequate firmware:

[  637.624812] Intel(R) Wireless WiFi driver for Linux
[  637.629529] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-so-a0-gf-a0-72.ucode failed with error -2

    ... trimmed lots of lines just like the above and below ...

[  637.809197] iwlwifi 0000:00:06.0: Direct firmware load for iwlwifi-so-a0-gf-a0-39.ucode failed with error -2
[  637.809227] iwlwifi 0000:00:06.0: no suitable firmware found!
[  637.809248] iwlwifi 0000:00:06.0: minimum version required: iwlwifi-so-a0-gf-a0-39
[  637.809272] iwlwifi 0000:00:06.0: maximum version supported: iwlwifi-so-a0-gf-a0-72
[  637.809291] iwlwifi 0000:00:06.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

Success Situation

When working, the WiFi NIC appears in all the expected locations in the UI and in the various command line tooling. Once loading new enough iwlwifi firmware, this occurs. No other changes were required, no new packages were required to be installed, and no other configuration changes were necessary.

In the network selection UI, the expected list of local SSIDs appeared immediately. No VM reboot nor service restart was required for this to take effect.

dmesg said this upon success:

[ 1477.040503] iwlwifi 0000:00:06.0: Detected Intel(R) Wi-Fi 6E AX211 160MHz, REV=0x370
[ 1477.215021] iwlwifi 0000:00:06.0: loaded PNVM version 64acdc51
[ 1477.231341] iwlwifi 0000:00:06.0: Detected RF GF, rfid=0x2010d000
[ 1477.304539] iwlwifi 0000:00:06.0: base HW address: <REMOVED MAC ADDRESS>
[ 1477.508062] iwlwifi 0000:00:06.0: firmware didn't ACK the reset - continue anyway
[ 1477.508233] iwlwifi 0000:00:06.0: Start IWL Error Log Dump:
[ 1477.508265] iwlwifi 0000:00:06.0: Transport status: 0x0000004A, valid: 6
[ 1477.508304] iwlwifi 0000:00:06.0: Loaded firmware version: 72.daa05125.0 so-a0-gf-a0-72.ucode

Steps to Implement

These are the steps I took to put this into effect. If there is a best practice on how to do this that is more appropriate than any step below, I would appreciate the feedback.

Step 1: Option A: Being specific:

If you are bandwidth constrained or you know what files you want (then why are you reading this?), you can go directly to the linux-firmware git repo, download the specific iwlwifi-* file(s) you need, then put the file(s) you downloaded in /usr/lib/firmware/.

Step 1: Option B: Not being specific: (I did this one)

This is what I did to just copy all of the iwlwifi firmware files in bulk, instead:

# Clone the `linux-firmware` git repo to local
$ git clone --depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

# Copy the `iwlwifi-*` firmware to `/usr/lib/firmware`
$ sudo cp -v linux-firmware/iwlwifi-* /usr/lib/firmware

# When you're sure you're done with it, delete the `linux-firmware` repo (you can do this later)
$ rm -Rf linux-firmware

Step 2: Don’t restart the VM… just reload the module.

(…if you did this in a VM where the WiFi NIC is attached and not just a TemplateVM)

# Check to see if it's loaded (it should be, but it won't be working)
$ lsmod | grep iwlwifi

# Unload the module
$ sudo modprobe -r iwlwifi

# Check to see if it's loaded (now it should NOT have returned anything)
$ lsmod | grep iwlwifi

# Load the module
$ sudo modprobe iwlwifi

# Check to see if it's loaded (now it SHOULD be, and it probably added `iwlmvm` to the list)
$ lsmod | grep iwlwifi

# Optional: *if* you have these tools installed, you can see your WiFi NIC appearing in them now
# - iwconfig should show more than just `no wireless extensions` across the board
$ sudo iwconfig
# - lshw should show that your hardware was claimed, rather than unclaimed
$ lshw
# - rfkill should refer to your `wlan` device
$ sudo rfkill

Step 3: Go try it out

  • Check the Network UI, pick a wireless network, and see that it works.
  • … or whatever you do to test your WiFi NIC is working in your situation.

Step 4: If you did all of the above steps in an AppVM…

… rather than a TemplateVM or StandaloneVM, you’ll need to do the firmware file copying part again in your TemplateVM. This is what I did, because I like to test things out before I commit to them! So, if this is the case, go update your TemplateVM with the firmware files, then shut off your template VM, then reboot your sys-net VM, and all should still be in good shape. (Or make a new template, or whatever pleases you…)

Step 5: Reboot your VM at some point and make sure it’s still working

And if it seems like it all went back to “factory settings” on you, perhaps Step 4 above needs another read through.

1 Like

I have the same issue with my new X1 carbon 10th gen (12th gen cpu)

Sleep is pretty important on a laptop, did you return it or do you have any other troubleshooting ideas? I’ve tried with the latest kernels, setting Linux S3 suspend in the BIOS, iommu off in kernel command line. Mine doesn’t even resume frorm suspend2idle.

No, I’ve definitely kept the laptop. Right now as-is I have the sleep mode setting set for S3 Linux in the BIOS, which has apparently stopped the lockup issue, but instead right now it just shuts off altogether instead. I haven’t determined if that’s because of a setting I set while I was debugging it or if it’s something else entirely. I haven’t had sufficient time to work through it yet, but as soon as I have, I’ll be sure to do so and report back here. Perhaps I need to get on that sooner than later!

2 Likes