Thinkpad P14s Gen1 (Intel)


1. Hardware


2. Support overview

Component

Status

Details

Graphics

Graphical sessions

(./)

Backlight (brightness) control

(./)

Input devices

Keyboard backlight

(./)

Touchpad

(./)

Trackpoint

(./)

Media keys

Brightness keys

(./)

Volume keys

{X}

Network

Ethernet

(./)

Wi-Fi

(./)

Other

Battery

(./)

Bluetooth

(./)

Fan

/!\

Fingerprint reader

{X}

SD card reader

(./)

SIM card slot

/!\

Smart card reader

/!\

Suspend & resume

{X}

Webcam

(./)

Ports

DisplayPort

(./)

HDMI

(./)

Thunderbolt

(./)

USB

(./)

Sound

Headphone jack

(./)

Microphone jack

/!\

Speakers

(./)

Last update: 2023-06-08T12:04:59+0000

Legend

(./) OK

{i} Somewhat OK: requires additional tweaking or works worse than expected

/!\ Present but status unknown or untested

{X} Does not work

nothing Not sure if present

3. Hardware identification

3.1. PCI

hostb0@pci0:0:0:0:      class=0x060000 rev=0x0c hdr=0x00 vendor=0x8086 device=0x9b61 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake-U v1 4c Host Bridge/DRAM Controller'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0:     class=0x030000 rev=0x02 hdr=0x00 vendor=0x8086 device=0x9b41 subvendor=0x17aa subdevice=0x22b2
    vendor     = 'Intel Corporation'
    device     = 'CometLake-U GT2 [UHD Graphics]'
    class      = display
    subclass   = VGA
none0@pci0:0:4:0:       class=0x118000 rev=0x0c hdr=0x00 vendor=0x8086 device=0x1903 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem'
    class      = dasp
none1@pci0:0:8:0:       class=0x088000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x1911 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model'
    class      = base peripheral
pchtherm0@pci0:0:18:0:  class=0x118000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x02f9 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake Thermal Subsytem'
    class      = dasp
xhci0@pci0:0:20:0:      class=0x0c0330 rev=0x00 hdr=0x00 vendor=0x8086 device=0x02ed subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCH-LP USB 3.1 xHCI Host Controller'
    class      = serial bus
    subclass   = USB
none2@pci0:0:20:2:      class=0x050000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x02ef subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCH-LP Shared SRAM'
    class      = memory
    subclass   = RAM
iwlwifi0@pci0:0:20:3:   class=0x028000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x02f0 subvendor=0x8086 subdevice=0x0070
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCH-LP CNVi WiFi'
    class      = network
none3@pci0:0:22:0:      class=0x078000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x02e0 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake Management Engine Interface'
    class      = simple comms
none4@pci0:0:22:3:      class=0x070002 rev=0x00 hdr=0x00 vendor=0x8086 device=0x02e3 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    class      = simple comms
    subclass   = UART
pcib1@pci0:0:28:0:      class=0x060400 rev=0xf0 hdr=0x01 vendor=0x8086 device=0x02b8 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
pcib2@pci0:0:28:4:      class=0x060400 rev=0xf0 hdr=0x01 vendor=0x8086 device=0x02bc subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci0:0:29:0:      class=0x060400 rev=0xf0 hdr=0x01 vendor=0x8086 device=0x02b0 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
pcib4@pci0:0:29:4:      class=0x060400 rev=0xf0 hdr=0x01 vendor=0x8086 device=0x02b4 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
isab0@pci0:0:31:0:      class=0x060100 rev=0x00 hdr=0x00 vendor=0x8086 device=0x0284 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCH-LP LPC Premium Controller/eSPI Controller'
    class      = bridge
    subclass   = PCI-ISA
hdac0@pci0:0:31:3:      class=0x040380 rev=0x00 hdr=0x00 vendor=0x8086 device=0x02c8 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCH-LP cAVS'
    class      = multimedia
    subclass   = HDA
ichsmb0@pci0:0:31:4:    class=0x0c0500 rev=0x00 hdr=0x00 vendor=0x8086 device=0x02a3 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake PCH-LP SMBus Host Controller'
    class      = serial bus
    subclass   = SMBus
none5@pci0:0:31:5:      class=0x0c8000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x02a4 subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Comet Lake SPI (flash) Controller'
    class      = serial bus
em0@pci0:0:31:6:        class=0x020000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x0d4e subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Intel Corporation'
    device     = 'Ethernet Connection (10) I219-LM'
    class      = network
    subclass   = ethernet
rtsx0@pci0:2:0:0:       class=0xff0000 rev=0x01 hdr=0x00 vendor=0x10ec device=0x522a subvendor=0x17aa subdevice=0x22b1
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTS522A PCI Express Card Reader'
vgapci1@pci0:45:0:0:    class=0x030200 rev=0xa1 hdr=0x00 vendor=0x10de device=0x1d34 subvendor=0x17aa subdevice=0x22b2
    vendor     = 'NVIDIA Corporation'
    device     = 'GP108GLM [Quadro P520]'
    class      = display
    subclass   = 3D
nvme0@pci0:46:0:0:      class=0x010802 rev=0x00 hdr=0x00 vendor=0x15b7 device=0x5002 subvendor=0x15b7 subdevice=0x5002
    vendor     = 'Sandisk Corp'
    device     = 'WD Black 2018/SN750 / PC SN720 NVMe SSD'
    class      = mass storage
    subclass   = NVM

3.2. USB

ugen0.1: <Intel XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.2: <Generic EMV Smartcard Reader> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (50mA)
ugen0.3: <Azurewave Integrated Camera> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen0.4: <vendor 0x06cb product 0x00bd> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.5: <vendor 0x8087 product 0x0026> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)

4. Kernel modules

Sorted list of loaded modules:

kldstat | grep ko | awk '{print $5}' | sort

acpi_ibm.ko
acpi_video.ko
acpi_wmi.ko
cc_htcp.ko
coretemp.ko
cpuctl.ko
cryptodev.ko
cuse.ko
dmabuf.ko
drm.ko
fdescfs.ko
fusefs.ko
geom_linux_lvm.ko
hidbus.ko
hidraw.ko
hkbd.ko
i915kms.ko
ichsmb.ko
if_iwlwifi.ko
iic.ko
linprocfs.ko
linsysfs.ko
linux_common.ko
linux.ko
linux64.ko
linuxkpi_gplv2.ko
mac_ntpd.ko
netgraph.ko
netlink.ko
ng_bluetooth.ko
ng_btsocket.ko
ng_hci.ko
ng_l2cap.ko
ng_socket.ko
ng_ubt.ko
pchtherm.ko
pty.ko
smbus.ko
sysctlinfo.ko
tmpfs.ko
tpm.ko
uhid.ko
ums.ko
usbhid.ko
wmt.ko
zfs.ko

5. Tweaks and Tips

5.1. Network

Network is working out of the box using the following drivers:

Type

Driver

Ethernet

em Intel(R) PRO/1000 Gigabit Ethernet adapter driver

WiFi

iwlwifi Intel IEEE 802.11a/b/g/n/ac/ax wireless network driver

5.1.1. Ethernet

5.1.2. WiFi

The iwlwifi driver will load automatically at boot time and nothing is really needed.

However, if you want to force load the driver you may need the following line in your /etc/rc.conf

kld_list="${kld_list} if_iwlwifi"

It is discouraged to load the driver from /boot/loader.conf

5.2. Webcam

5.2.1. Device identification

The webcam is connected through USB and can be listed with the following command:

usbconfig | grep Cam

ugen0.5: <Azurewave Integrated Camera> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)

The device is the 5th device on the first USB bus, so its identifier is ugen0.5.

5.2.2. Service configuration and user settings

At this point, applications launched by your user should have access to your webcam (it should be listed as available device).

5.3. Touchpad and trackpoint

Touchpad and trackpoint are seen as pointing device like the mouse. There is nothing particular to make them work as expected.

Personnaly I find touchads annoying as my thumbs tends to rub against it and unexpectedly change window focus !

Touchpad can be disabled in the BIOS settings but it may not be sufficient to fully disable it.

Add the following lines to the /boot/loader.conf to fully disable touchpad and enable the trackpoint.

hw.psm.trackpoint_support="1"
hw.psm.synaptics_support="0"

5.4. MicroSD card reader

Although not very practical to use, the MicroSD card reader located on the left edge of the laptop works right out of the box, nothing to configure here.

5.5. Bluetooth audio

Bluetooth works fine with the iwmbt-firmware. Configuring Bluetooth to make it pair with your favorite audio speaker or headset is a bit tricky.

5.6. Fn keys

The special Fn keys are keys accessed with the combination of the Fn key and one of the functionction keys F1 to F12. Those keys allow user predefined action to be accomplished by pressing a single key (i.e: increase / decrease volume or screen backlight).

Support for the Fn keys is partial and may work or not depending on your hardware/firmware version. YMMV.

5.7. Thunderbolt 3

My laptop is connected to a Lenovo Universal Thunderbolt 4 dock.

Even if the laptop itself is equiped with only a Thunderbolt 3 port, it works like a charm out of the box.

When connected the docking station will add some extra USB devices:

[...]
ugen0.3: <Fresco Logic, Inc. V1003> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.4: <Lenovo !ThinkPad Thunderbolt 4 Dock MCU Contoller> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.5: <Lenovo 40B0> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (0mA)
ugen0.6: <VIA Labs, Inc. USB2.0 Hub> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.7: <VIA Labs, Inc. USB2.0 Hub> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.8: <Lenovo ThinkPad Thunderbolt 4 Dock USB Audio> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (30mA)
[...]
ugen0.13: <Intel Corporation. USB3.0 Hub> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.14: <VIA Labs, Inc. USB3.1 Hub> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.15: <VIA Labs, Inc. USB3.1 Hub> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.16: <Realtek Realtek LAN> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (72mA)

Unfortunately when booting docked to the docking station, the USB device order will change.

I have two 22" HDMI monitors connected to the docking station. One of them is connected to one of the two Displayport of the docking station through a HDMI to DP adapter.

This setup works fine and the maximum resolution of the whole thing is 3 x 1920x1080 as follows:

xrandr --listmonitors

Monitors: 3
  0: +*eDP-1 1920/309x1080/174+0+0  eDP-1
  1: +DP-2-1-5 1920/521x1080/293+1920+0  DP-2-1-5
  2: +DP-2-2 1920/521x1080/293+3840+0  DP-2-2

5.7.1. Workaround for unwakable DPMS monitors

The only workaround I found is:

This workaround may not always work or may need to be applied several times with the good timing between TTY/Xorg switch. Your mileage may vary.


6. Files

6.1. /etc/rc.conf

performance_cpu_freq="HIGH"
clear_tmp_enable="YES"
hostname="<YOUR_HOSTNAME>"
keymap="fr.acc.kbd"
kld_list="acpi_ibm acpi_video i915kms iic geom_linux_lvm fusefs"
# WiFi
wpa_supplicant_enable="YES"
wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"
defaultrouter="192.168.1.1"
# Services
zfs_enable="YES"
local_unbound_enable="YES"
sshd_enable="YES"
moused_enable="YES"
ntpd_enable="YES"
powerd_enable="YES"
dumpdev="AUTO"
dbus_enable="YES"
hald_enable="YES"
linux_enable="YES"
pcscd_enable="YES"
devd_enable="YES"
devd_flags="-q"
hcsecd_enable="YES"
bluetooth_enable="YES"
webcamd_enable="YES"
syslogd_enable="YES"
syslogd_flags="-s -v -v"
sndiod_enable="YES"
sndiod_flags="-f rsnd/4"
smartd_enable="YES"
devfs_system_ruleset="localrules"

6.2. /boot/loader.conf

kern.geom.label.disk_ident.enable="0"
kern.geom.label.gptid.enable="0"
cryptodev_load="YES"
sysctlinfo_load="YES"
zfs_load="YES"
tpm_load="NO"
cuse_load="YES"
ng_ubt_load="YES"
hidraw_load="YES"
hkbd_load="YES"
hw.usb.quirk.0="0x1050 0x0010 0 0xffff UQ_KBD_IGNORE"
hw.usb.quirk.1="0x1050 0x0110 0 0xffff UQ_KBD_IGNORE"
hw.usb.quirk.2="0x1050 0x0111 0 0xffff UQ_KBD_IGNORE"
hw.usb.quirk.3="0x1050 0x0114 0 0xffff UQ_KBD_IGNORE"
hw.usb.quirk.4="0x1050 0x0116 0 0xffff UQ_KBD_IGNORE"
hw.usb.quirk.5="0x1050 0x0401 0 0xffff UQ_KBD_IGNORE"
hw.usb.quirk.6="0x1050 0x0403 0 0xffff UQ_KBD_IGNORE"
hw.usb.quirk.7="0x1050 0x0405 0 0xffff UQ_KBD_IGNORE"
hw.usb.quirk.8="0x1050 0x0407 0 0xffff UQ_KBD_IGNORE"
hw.usb.quirk.9="0x1050 0x0410 0 0xffff UQ_KBD_IGNORE"
# Power saving
hw.pci.do_power_nodriver="3"
hint.acpi_throttle.0.disabled="1"
hint.ahcich.0.pm_level="5"
hint.ahcich.1.pm_level="5"
hint.ahcich.2.pm_level="5"
hint.ahcich.3.pm_level="5"
hint.ahcich.4.pm_level="5"
hint.ahcich.5.pm_level="5"
# for intel cards only
drm.i915.enable_rc6="7"
drm.i915.semaphores="1"
drm.i915.intel_iommu_enabled="1"
# Video
hw.acpi.reset_video="1"
# Audio
hw.snd.latency="7"
hw.snd.default_auto="0"
hint.pcm.0.eq="1"
hint.pcm.1.eq="1"
hint.pcm.2.eq="1"
# Linux compat
fdescfs_load="YES"
linprocfs_load="YES"
linsysfs_load="YES"
tmpfs_load="YES"
# Optimization
autoboot_delay="2"
kern.maxproc="100000"
kern.ipc.shmseg="1024"
kern.ipc.shmmni="1024"
hw.psm.trackpoint_support="1"
hw.psm.synaptics_support="0"
cc_htcp_load="YES"
cpuctl_load="YES"
coretemp_load="YES"

6.3. /etc/sysctl.conf

#security.bsd.see_other_uids=0
kern.randompid=1
vfs.zfs.min_auto_ashift=12
hw.acpi.lid_switch_state=S3
hw.acpi.s4bios=0
kern.sched.preempt_thresh=224
# Set CPU to max power
dev.hwpstate_intel.0.epp=0
dev.hwpstate_intel.1.epp=0
dev.hwpstate_intel.2.epp=0
dev.hwpstate_intel.3.epp=0
dev.hwpstate_intel.4.epp=0
dev.hwpstate_intel.5.epp=0
dev.hwpstate_intel.6.epp=0
dev.hwpstate_intel.7.epp=0
#net.inet6.ip6.auto_linklocal=0

6.4. /usr/local/etc/devd/acpi_ibm.conf

# IBM ACPI buttons
notify 100 {
    match "system"      "ACPI";
    match "subsystem"   "IBM";
    match "notify"  "0x10";
    action "backlight incr";
};
notify 100 {
    match "system"      "ACPI";
    match "subsystem"   "IBM";
    match "notify"  "0x11";
    action "backlight decr";
};
notify 100 {
    match "system"      "ACPI";
    match "subsystem"   "IBM";
    match "notify"  "0x1b";
    action "logger $notify [Mic mute]";
};
notify 100 {
    match "system"      "ACPI";
    match "subsystem"   "IBM";
    match "notify"  "0x07";
    action "logger $notify [External display]";
};
notify 100 {
    match "system"      "ACPI";
    match "subsystem"   "IBM";
    match "notify" "0x05";
    action "logger $notify [rfkill]";
};


CategoryLaptop

Laptops/Thinkpad_P14sGEN1 (Intel) (last edited 2024-03-01T09:01:46+0000 by RodrigoOsorio)