Lenovo P15 gen2; i7 11850H; 4x32GB; RTX A2000; 3NVMe; 3 screen

---
layout:
  'hcl'
type:
  'Notebook'
hvm:
  'yes'
iommu:
  'yes'
slat:
  'yes'
tpm:
  'unknown'
remap:
  'yes'
brand: |
  LENOVO
model: |
  20YQ003AUS
bios: |
  N37ET57W (1.38 )
cpu: |
  11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz
cpu-short: |
  FIXME
chipset: |
  Intel Corporation 11th Gen Core Processor Host Bridge/DRAM Registers [8086:9a36] (rev 05)
chipset-short: |
  FIXME
gpu: |
  NVIDIA Corporation GA107GLM [RTX A2000 Mobile] [10de:25b8] (rev a1) (prog-if 00 [VGA controller])
gpu-short: |
  FIXME
network: |
  Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725] (rev 1a)
  Intel Corporation Ethernet Controller I225-LM [8086:15f2] (rev 03)
memory: |
  130847
scsi: |

usb: |
  3
certified:
  'no'
versions:
  - works:
      'FIXME:yes|no|partial'
    qubes: |
      R4.2.4
    xen: |
      4.17.5
    kernel: |
      6.12.11-1
    remark: |
      FIXME
    credit: |
      FIXAUTHOR
    link: |
      FIXLINK

Lenovo P15 Gen2 i7 11850H; 16p + 16p HDMi + 16p USB-c; Intel UHD 1GB + AX2000 6GB; i225 2,5GB/s; 3 NVMe M2; USB-c thunderbolt4

Installation

Any problems with installation ? => Yes. Full auto works, but since 3 disks, I used personalized install. After many try/error, once right setup found, install NP.
Was latest kernel required ? No, but used anyway
Were some additional kernel options required? => No (IDK how to add VROC driver)

Basic Input

Keyboard => Laptop internal
External USB mouse => Works fine
Touch-pad => Laptop internal
Touch-pad supports “tap as click” and scrolling with 2 fingers => works just fine
Display brightness change shortcuts, => NO, still struggling with i915 and such. NB: Only ONCE did I find an option in one of the config menu and go it to work, but I no longer find it :frowning:
Sound volume shortcuts, => Yes
Keyboard led and keyboard brightness change shortcuts, => Yes, Fn+space
Output of xinput --list from terminal of dom0 => xinput: cmd not found
Check if keyboard and/or touchpad is PS/2 connected => Yes, NP (qvm-pause sys-usb && echo ‘Paused’ && sleep 10 && qvm-unpause sys-usb)

Internet and bluetooth

Ethernet cable connection => works out of the box
Ethernet cable connection - speed => 2,5Gb
Wifi connection => works out of the box (When RJ45 is unplugged otherwise Qubes says WiFi is disabled by hardware)
Wifi connection - speed => Unknown, but stable and reliable over the time.
Bluetooth - works out of the box or actions were required? => Not tested, no use
Bluetooth - shows devices, connection process works, sound output or copying works. => N/A

Suspend

Suspend/Resume works => Suspend works, Resume crashes (like many others)
Does resume breaks WiFi, if it does, how to recover it? => N/A
Does resume breaks Bluetooth, if it does, how to recover it? => N/A
Video [increase VCPU to the qube before test]
Fullscreen and windowed video playback of youtube - 720p/1080p/2K/4K in Firefox. Does it drop frames? 1080p no frame dropped (didn’t try higher)
Video file playback of file using mpv/mplayer/smplayer - 1080p? Higher resolutions and bitrates? not tested YET
Multiple displays configuration works (using available DP/Thunderbolt, HDMI or other video ports => Only Main+1 extra, a 2nd extra messes it all up, that’s a XFCE problem (same problem on Kali)

Audio

Speakers (sound playback) (was sys-audio used?) => Works, no need for sys-audio
Head-phones via 3.5" jack (works, automatically turns off speakers?) Not tested YET
Sound output via HDMI Not tested YET
Audio-optical (S/PDIF) output Not tested.

Fans

Are fans silent on idle? => Variable speed, rather quiet
Are fans noisier than on Windows/Linux?. If they are, was thankfan or similar software tried? => Quieter, no plug needed

Other

Have you tried running Windows 10 HVM qubes? => Win10 is on a USB-c NVMe, will make a qube someday.
Does CPU boost seem to be working properly? => It seems

Specs:

Link to the laptop page on the brand website,
Display native resolution => 15.6" FHD (1920 x 1080) IPS, anti-glare, 300 nits
Maximum possible RAM memory => 4x 32GB DDR4 3200MHz (128GB installed)
CPU score (from PassMark - CPU Comparison) => i7 11850H - FCBGA1787; 2,5Ghz Up to 4.8 GHz; 8cores 16 theads; 45w; L1: 640KB, L2: 10.0MB, L3: 24MB cache
Number of USB Controllers and if more than one: information what internal USB devices and USB ports are connected to which controller. 2c USB-A (each sides); 3x USB-C (Back); 1 USB-C = 2nd screen; 1 USB-C USB hub = +5USB
Internal TPM => TPM 2.0 not supported, but Enabled/disbled both work

Remarks

VMD BIOS RAID => 2x NVMe in BIOS RAID1 not seen by Qubes, missing Intel VROC (VMD NVMe RAID) driver => have to use Qubes software RAID at install.
NVIDIA AX2000 6GB GDDR6 => Not sure it’s in use, still strggling installing drivers
Selecting several languages (i.e: French, Spanish, Chinese, Russian, English) at install global setting makes install to crash.

Attachments

Qubes-HCL-LENOVO-20YQ003AUS-20250725-184609.yml (936 Bytes)

1 Like

Tweaking and adapting a bit:

## Extras for my P15, executed in dom0, NOT RECOMMANDED, unless you know, you know ;). FYIO, DYOR.
## STEP.10: For the nvidia A2000: Config Xorg to use 'modesetting' instead of 'nouveau'
# in dom0 check GPU
=> lspci | grep -i nvidia
# ID the exact PCI ID (i.e: 10de:XXXX) for the A2000
=> lspci -n | grep -i nvidia
=> mkdir -p /etc/X11/xorg.conf.d/
=> cat > /etc/X11/xorg.conf.d/20-nvidia.conf << 'EOF'
# Section "Device"
#    ID "NVIDIA Card"
#    Driver "modesetting"
#    BusID "PCI:X:Y:Z"  # Replace with the result from earlier
=> EndSection
=> EOF
# Optional: Blacklist 'nouveau' in dom0
=> echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nvidia.conf
## STEP.11: To init the Fn key for screen brightness ctrl (in dom0)
=> sudo nano /etc/default/grub
# add the line to GRUB_CMDLINE_LINUX :
=> 'i915.enable_dpcd_backlight=3'
# Regenerate GRUB
=> sudo grub2-mkconfig -o /boot/grub2/grub.cfg
=> reboot
# Config VirtualGL post-installation :
# Create a standalone VM (with kernel guest Seamless GPU passthrough) on Qubes OS with VirtualGL
# Install drivers NVIDIA RPMFusion in VM
# Config GPU passthrough for this VM
# Use VirtualGL to redirect OpenGL toward dom0
## STEP.12: Install ZFS management
=> qubes-dom0-update
=> qubes-dom0-update zfs zfs-dkms
=> sudo zfs version
=> sudo mdadm --detail /dev/md20
# result should be RAID Level: Raid1, active.	# Otherwise mdadm assemble etc ...
=> sudo zpool create -f zvm-pool /dev/md20		# -f => force writing even if existing data
=> sudo zpool list		# Should be showing 'qubespool'
=> qvm-pool list 		# Should be showing 'zfs-storage' 
=> sudo qvm-pool add zfs-storage zfs-pool zvm-pool	# To tell Qubes to add this pool to the VM storage options
=> sudo nano /etc/qubes/storage-defaults.json	# To tell Qubes to use the ZFS pool by default for any new VM, add the line:
 {
    "default_pool": "zfs-storage"
}
=> qvm-move-storage <name_of_qube> --dest-pool zfs-storage # To move any existing VM to the new ZFS pool 
## STEP.13: Config 3 screen
# Bios to Discrete rather than Hybrid
// Not applicable if you have done step.9A => sudo qubes-dom0-update xorg-x11-drv-nouveau
=> xrandr 				# Just xrandr, no argum. will list all connected devices (i.e: eDP-1; HDMe-1; DP-1; ..)
=> xrandr --output eDP-1 --primary --mode 1920-1080 --pos 0x0
=> xrandr --output DP-1-1 --right-of eDP-1 --mode 1080x1920 --rotate right
=> xrandr --output HDMI-1 --left-of eDP-1 --mode 1920x1080
// optional, create a bash to get these parameter loaded at bootup
=> nano ~/setup-displays.sh
=> #!/bin/sh
	xrandr --output eDP-1 --primary --mode 1920x1080 --pos 0x0
	xrandr --output DP-1-1 --right-of eDP-1 --mode 11080x1920 --rotate right
	xrandr --output HDMI-1 --left-of eDP-1 --mode 1920x1080
	xrandr --output eDP-1 
=> chmod +x ~/setup-displays.sh					# ~/script should be /home/user/script
# Add this script to "Application Autostart" in XFCE

## STEP.14: Once the vm-pool is correctly transfered to (ZFS) zvm-pool, install and create all new VMs:
=> sudo qubes-dom0-update qubes-template-debian-12 qubes-template-fedora-42
=> sudo qubes-dom0-update qubes-template-debian-12-minimal qubes-template-fedora-42-minimal qubes-template-whonix-gateway-minimal qubes-template-whonix-workstation-minimal.
## STEP.15: Create a VPN VM based on Debian minimal
// Config: Internet->OPNsense->sys-net->sys-vpn->sys-FW->AppVM
=> qvm-create --class TemplateVM --label blue --template debian-12-minimal vpn-template
// or => qvm-clone debian-12-minimal debian-12-protonvpn-template
# to allow internet (update, install) access to minimal, give it access to a proxy (same as dom0)
=> sudo nano /etc/qubes/rpc/qubes.TemplateUpdate
# add these lines:
# -A
# /usr/bin/apt-get update
# /usr/bin/apt-get install  
=> qvm-start vpn-template
# Open a terminal in that new template
=> sudo apt update
=> sudo apt install -y curl apt-transport-https xorg
=> curl -sS https://repo.protonvpn.com/debian/dists/stable/main/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/protonvpn-stable-archive-keyring.gpg
=> echo "deb [signed-by=/usr/share/keyrings/protonvpn-stable-archive-keyring.gpg] https://repo.protonvpn.com/debian stable main" | sudo tee /etc/apt/sources.list.d/protonvpn-stable.list
=> sudo apt update
sudo apt update
=> sudo apt install -y proton-vpn-gnome-desktop
=> sudo apt install -y protonvpn-cli
=> qvm-shutdown vpn-template
## STEP.16: Make a minimal VM to manage VPN (Based on VPN template), one for each connection.
=> qvm-create --label red --class AppVM --template debian-12-protonvpn-template --property virt_mode=hvm debian-vpn-vm
=> qvm-prefs debian-vpn-vm autostart true
## STEP.17: Make a minimal VM to handle backups to which the USB 8TB HDD will be permanently attached
=> qvm-create --label blue --class AppVM --template debian-12-minimal --property virt_mode=hvm debian-backup-vm
=> lsusb			# Find the exact name of teh USB disk, note the ID (i.e: 05e3:0745).
=> qvm-usb attach backup-vm sys-usb:05e3_0745 --persistent
=> lsblk
=> sudo nano /etc/fstab
# add a line: /dev/sdc1 /mnt/backup auto defaults,nofail 0 2
=> sudo mkdir -p /mnt/backup					# make the mount folder
=> ln -s /mnt/backup /home/user/backup-disk		# make a symlink for the directory to appear directly as if local
## Think about dividing the backup storage into two partitions, one for dom0-root (3x 80Go -> 300Go XFS ) and one for dom0-vm (4To ZFS)

## STEP.18: Make a minimal VM to manage AX2000 PCI passthrough and opnGL redirection to dom0
=> qvm-clone fedora-41-minimal fedora-41-graphics-vm
=> qvm-start fedora-41-graphics-vm
sudo dnf update -y
sudo dnf install -y \ xorg-x11-server-Xorg \ xorg-x11-xinit \ xterm \ mesa-dri-drivers \ openbox \
    tint2 \ lxterminal \ pcmanfm \ vim \ git \ curl \ pciutils \ lshw \ dmidecode
=> echo 'exec openbox-session' > ~/.xinitrc		# Startup script for graphical environnement
=> qvm-shutdown fedora-41-graphics-vm			# Shutdown VM
# ID and attach the AX2000 to the VM:
=> lspci -nn | grep -i vga						# Note the ID, like 01:00.0 for GPU,
=> lspci -nn | grep -i audio					# Note the ID, like 01:00.1 for HDMI audio
=> sudo qvm-pci detach dom0 01:00.0
=> sudo qvm-pci detach dom0 01:00.1				# Then attach them persistently to the VM
=> sudo qvm-pci attach fedora-41-graphics-vm dom0:01:00.0 dom0:01:00.1 --persistent
# Install proprietary pilotes:
=> qvm-start fedora-41-graphics-vm
=> sudo dnf install -y \
    https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
    https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
=> sudo dnf update
=> sudo dnf install -y akmod-nvidia
=> qvm-prefs graphics-vm netvm (i.e: sys-firewall)	# In dom0 to allow grahic-vm to access network
=> sudo nano /etc/X11/xinit/xserverrc				# In the graphic-vm terminal, to authorise distant connections
=> exec /usr/bin/Xorg :0 -listen tcp
=> ssh -X user@graphics-vm vlc						# From a perso VM (like work-vm) to test the connection to graphic-vm; if it works, then VLC should open in work-vm, but its core should be running in graphic-vm. And so will any other app opened this way.

## STEP.19: Make a VM to manage NAS
// Installation samba, nfs, nfs-utile, et config FW
## STEP.20:  Make a VM to manage Downloads
// fedora +256GB avec torent, directs et config FW
## STEP.21: Make VMs to manage emails
// debian with protonmail install
// Split (Qubes forum) with Bridge and work-email-vm + perso-email-vm 

## STEP.22: Make a VM for Win10 based on a template Win10
// Create a VM, install Win10, then transform it into a template
// Install all Qubes add-on for Win10
// Then create an AppVM based on this template
## STEP.23: Make a Debian VM for banque
// setup FW alloing only TCP 443 conction to the bank website

1 Like