Thinkpad P14s Gen 3 (12th Gen Intel i7-1260P)

I would add this to the Laptops Wiki but I don't see any options to edit or submit data there. Tried on FreeBSD 13.1-RELEASE on this machine.

CPU: 12th Gen Intel i7-1260P
Ethernet: Intel(R) I219-V ADL(16)
Graphics: NVIDIA T550
Memory: 16 GB DDR4-3200MHz
Screen: 14" WUXGA (1920 x 1200), IPS,
Storage: 1 TB SSD M.2 2280 PCIe TLC Opal
Wireless: Intel® Wi-Fi 6E AX211 2x2 AX & Bluetooth® 5.1 or above

- Got successful install with ZFS only. UFS options (BSD labels, GPT, MBR) won't boot.

- Neither Intel built-in nor NVIDIA T550 work. Got the X working with the frame buffer driver (scfb) by specifying BusID in the config. It's usable for text and low-fps videos, but far from ideal. Tried both nvidia-driver and nvidia-hybrid-driver, with nvidia and nvidia-modeset module, different versions - either getting code 11 segfault or blank screen with a cursor. drm-kmod is not working either.

- Wi-Fi (802.11g) is not stable, iwlwifi driver in FreeBSD 13.1 causing kernel panics and random loss of connectivity.

- Ethernet is not working (very slow 1 Mbps speeds). The updated intel-em-kmod driver does not detect the card at all.
- Switching between external HDMI monitor and the internal LCD seems impossible, as xrandr only sees one monitor at a time.
- CPU fan stuck at high speed, but resolved manually with bsdfan.
- Suspend S3 is not working - resume is OK, but I'm getting reboots on resume with S3 enabled in BIOS.
- LCD brightness function keys do not work, sound level keys work.
- Appears to be draining a lot of battery power, about 20W, even when idle with standard power tweaks applied and USB in power save mode. So, reports about 2 hours battery life.
- USB ports, audio, headphone jack, touchpad work

hw-probe: https://bsd-hardware.info/?probe=b7a491a010

If anyone got this machine any further, I'd appreciate your comments.
 
Last edited:
- Neither Intel built-in nor NVIDIA T550 work. Got the X working with the frame buffer driver (scfb) by specifying BusID in the config.

I have some similar issues with previous Intel generation (Tiger Lake).
My system - https://bsd-hardware.info/?probe=0232c45faa
Code:
[lanin@freebsd6 ~]$ pciconf -vl
hostb0@pci0:0:0:0:    class=0x060000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a14 subvendor=0x17aa subdevice=0x3835
    vendor     = 'Intel Corporation'
    device     = '11th Gen Core Processor Host Bridge/DRAM Registers'
    class      = bridge
    subclass   = HOST-PCI
vgapci0@pci0:0:2:0:    class=0x030000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a49 subvendor=0x17aa subdevice=0x3a5b
    vendor     = 'Intel Corporation'
    device     = 'TigerLake-LP GT2 [Iris Xe Graphics]'
    class      = display
    subclass   = VGA
none0@pci0:0:4:0:    class=0x118000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a03 subvendor=0x17aa subdevice=0x380d
    vendor     = 'Intel Corporation'
    device     = 'TigerLake-LP Dynamic Tuning Processor Participant'
    class      = dasp
pcib1@pci0:0:6:0:    class=0x060400 rev=0x01 hdr=0x01 vendor=0x8086 device=0x9a09 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = '11th Gen Core Processor PCIe Controller'
    class      = bridge
    subclass   = PCI-PCI
none1@pci0:0:8:0:    class=0x088000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a11 subvendor=0x17aa subdevice=0x380d
    vendor     = 'Intel Corporation'
    device     = 'GNA Scoring Accelerator module'
    class      = base peripheral
none2@pci0:0:10:0:    class=0x118000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a0d subvendor=0x17aa subdevice=0x3807
    vendor     = 'Intel Corporation'
    device     = 'Tigerlake Telemetry Aggregator Driver'
    class      = dasp
xhci0@pci0:0:20:0:    class=0x0c0330 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0ed subvendor=0x17aa subdevice=0x3829
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller'
    class      = serial bus
    subclass   = USB
none3@pci0:0:20:2:    class=0x050000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0ef subvendor=0x17aa subdevice=0x3830
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Shared SRAM'
    class      = memory
    subclass   = RAM
iwlwifi0@pci0:0:20:3:    class=0x028000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0f0 subvendor=0x8086 subdevice=0x0074
    vendor     = 'Intel Corporation'
    device     = 'Wi-Fi 6 AX201'
    class      = network
ig4iic0@pci0:0:21:0:    class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0e8 subvendor=0x17aa subdevice=0x3822
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Serial IO I2C Controller'
    class      = serial bus
none4@pci0:0:22:0:    class=0x078000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0e0 subvendor=0x17aa subdevice=0x3825
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Management Engine Interface'
    class      = simple comms
ahci0@pci0:0:23:0:    class=0x010601 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0d3 subvendor=0x17aa subdevice=0x3819
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP SATA Controller'
    class      = mass storage
    subclass   = SATA
pcib2@pci0:0:28:0:    class=0x060400 rev=0x20 hdr=0x01 vendor=0x8086 device=0xa0bc subvendor=0x17aa subdevice=0x3812
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci0:0:29:0:    class=0x060400 rev=0x20 hdr=0x01 vendor=0x8086 device=0xa0b3 subvendor=0x17aa subdevice=0x3814
    vendor     = 'Intel Corporation'
    class      = bridge
    subclass   = PCI-PCI
isab0@pci0:0:31:0:    class=0x060100 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa082 subvendor=0x17aa subdevice=0x3806
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP LPC Controller'
    class      = bridge
    subclass   = PCI-ISA
hdac0@pci0:0:31:3:    class=0x040100 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0c8 subvendor=0x17aa subdevice=0x380a
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Smart Sound Technology Audio Controller'
    class      = multimedia
    subclass   = audio
ichsmb0@pci0:0:31:4:    class=0x0c0500 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0a3 subvendor=0x17aa subdevice=0x380d
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP SMBus Controller'
    class      = serial bus
    subclass   = SMBus
none5@pci0:0:31:5:    class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0a4 subvendor=0x17aa subdevice=0x380c
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP SPI Controller'
    class      = serial bus
nvme0@pci0:1:0:0:    class=0x010802 rev=0x01 hdr=0x00 vendor=0x15b7 device=0x5008 subvendor=0x15b7 subdevice=0x5008
    vendor     = 'Sandisk Corp'
    class      = mass storage
    subclass   = NVM
vgapci1@pci0:2:0:0:    class=0x030200 rev=0xa1 hdr=0x00 vendor=0x10de device=0x25a0 subvendor=0x17aa subdevice=0x3a5b
    vendor     = 'NVIDIA Corporation'
    device     = 'GA107M [GeForce RTX 3050 Ti Mobile]'
    class      = display
    subclass   = 3D
re0@pci0:3:0:0:    class=0x020000 rev=0x15 hdr=0x00 vendor=0x10ec device=0x8168 subvendor=0x17aa subdevice=0x3908
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller'
    class      = network
    subclass   = ethernet
[lanin@freebsd6 ~]$

The only configuration that (eventually) works :
rc.conf
Code:
...
kld_list="nvidia-modeset"
...

Code:
[lanin@freebsd6 /etc]$ pkg info nvidia-secondary-driver
nvidia-secondary-driver-510.60.02_1
Name           : nvidia-secondary-driver
Version        : 510.60.02_1
Installed on   : Tue Jan 31 12:33:07 2023 MSK
Origin         : x11/nvidia-secondary-driver
Architecture   : FreeBSD:13:amd64
Prefix         : /usr/local
Categories     : x11 kld
Licenses       : NVIDIA
Maintainer     : [email]theron.tarigo@gmail.com[/email]
WWW            : [URL]https://www.nvidia.com/object/unix.html[/URL]
Comment        : NVidia graphics card binary drivers for hardware OpenGL rendering on secondary device
Options        :
    ACPI_PM        : on
    DOCS           : on
    LINUX          : on
    WBINVD         : off
Shared Libs required:
    libXext.so.6
    libX11.so.6
    libEGL.so.1
Shared Libs provided:
    libvdpau_nvidia.so.1
    libnvidia-tls.so.1
    libnvidia-ml.so.1
    libnvidia-glvkspirv.so.1
    libnvidia-glsi.so.1
    libnvidia-glcore.so.1
    libnvidia-eglcore.so.1
    libnvidia-cfg.so.1
    libGLX_nvidia.so.0
    libGLESv2_nvidia.so.2
    libGLESv1_CM_nvidia.so.1
    libEGL_nvidia.so.0
Annotations    :
    FreeBSD_version: 1301000
    repo_type      : binary
    repository     : FreeBSD
Flat size      : 229MiB
Description    :
These are the official NVidia binary drivers for hardware OpenGL rendering
in X11, using the GLX extensions.

WWW: [URL]https://www.nvidia.com/object/unix.html[/URL]
[lanin@freebsd6 /etc]$

Code:
[lanin@freebsd6 /etc/X11]$ cat xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 470.86

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/sysmouse"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "keyboard"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "scfb"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:2:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

[lanin@freebsd6 /etc/X11]$
 
Last edited by a moderator:
It seems like "Nvidia without accelerated graphics", because I didn't set 'i915kms' , but 'nvidia-modeset' in rc.conf.
And my xorg.conf has BusID for NVIDIA card (not for Intel [Iris Xe Graphics]).
If I set 'nvidia' instead of 'scfb' , X doesn't start (segfault code 11).
If I set in rc.conf 'i915kms' instead of 'nvidia-modeset', then change BusID to Intel's Card ID (0:2:0), and set Driver "intel" , X doesn't start (no Screen found, iirc).

Edit.

When using scfb it is not necessary to load the video driver (neither Intel nor Nvidia). It's only need to specify the BusID with which scfb will work. So yes, in my case nvidia is not used.
 
In my case, I think I won't be able to use nvidia on my laptop monitor (if I understand correctly, it only works with an external monitor). Intel card successfully configured:
/etc/rc.conf :
Code:
...
kld_list="i915kms ..."
...

/etc/X11/xorg.conf :
Code:
Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/sysmouse"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "keyboard"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "modesetting"
    BusID          "PCI:0:2:0"
    Option         "PrimaryGPU" "yes"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

xrandr --listproviders now prints non-zero number of providers :
sh:
[lanin@freebsd6 ~]$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x47 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 5 associated providers: 0 name:modesetting

Edit

Option "PrimaryGPU" "yes" is not needed here
 
/etc/X11/xorg.conf :
rm /etc/X11/xorg.conf

Not the right place and not the correct way to configure Xorg nowadays.
All you need is a /usr/local/etc/X11/xorg.conf.d/driver.conf:
Code:
Section "Device"
    Identifier     "Device0"
    Driver         "modesetting"
    BusID          "PCI:0:2:0"
    Option         "PrimaryGPU" "yes"
EndSection
 
I would add this to the Laptops Wiki but I don't see any options to edit or submit data there. Tried on FreeBSD 13.1-RELEASE on this machine.

CPU: 12th Gen Intel i7-1260P
Ethernet: Intel(R) I219-V ADL(16)
Graphics: NVIDIA T550
Memory: 16 GB DDR4-3200MHz
Screen: 14" WUXGA (1920 x 1200), IPS,
Storage: 1 TB SSD M.2 2280 PCIe TLC Opal
Wireless: Intel® Wi-Fi 6E AX211 2x2 AX & Bluetooth® 5.1 or above

- Neither Intel built-in nor NVIDIA T550 work. Got the X working with the frame buffer driver (scfb) by specifying BusID in the config. It's usable for text and low-fps videos, but far from ideal. Tried both nvidia-driver and nvidia-hybrid-driver, with nvidia and nvidia-modeset module, different versions - either getting code 11 segfault or blank screen with a cursor. drm-kmod is not working either.

- Switching between external HDMI monitor and the internal LCD seems impossible, as xrandr only sees one monitor at a time.

- Appears to be draining a lot of battery power, about 20W, even when idle with standard power tweaks applied and USB in power save mode. So, reports about 2 hours battery life.

hw-probe: https://bsd-hardware.info/?probe=b7a491a010

If anyone got this machine any further, I'd appreciate your comments.
Code 11
(EE) Segmentation fault at address 0x0 (EE) Fatal server Error: (EE) Caught signal 11 (Segmentation fault). Server aborting.
This is what you getting ? If yes - try to use older nvidia drivers. I was having same issues and i got this reply:
Looks similar to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261666#c3, I'd suggest a downgrade to nvidia-driver-470, because the workaround that we found for that issue (Option "UseDisplayDevice" "None") is not applicable to your configuration. Might be worth trying the actual latest driver version (525.53 [beta]), but it's not packaged yet.

I think i was having 510. Now im running 470 and have no issues.

Specifying BusID needed if you have multiple gpu`s so in your case: Intel`s and nVidia.
I dont have P14s but i was running on X1 Yoga Gen1 and used this website: https://www.c0ffee.net/blog/freebsd-on-a-laptop
Later i can give you details what W is on my T480/T25 Frankenpad.... as im gonna do some power savings with it i know its not P14 series but still..
Code:
- LCD brightness function keys do not work, sound level keys work.
Also, i never had this to work out of the box even on Linux and if i recall - i used xorg and/or key mapping to set this up ( done this long time ago and current laptop is not set up properly ) and i need to find command i used to use for SCREEN BRIGHTNESS as i used to run on low brightness to save battery but not to compromise viewing.

One more thing: i can not remember if it was on Debian or on FreeBSD - but try to switch your GPU to nVidia only ( in you bios ) and you battery W could be high due to GPU if it uses it.
 
I've tried the old drivers. No joy. I think you need to get the primary Intel GPU working in order to be able to use the discrete NVIDIA GPU. As far as I can understand with the new architecture the NVIDIA chip relies on the Intel GPU for output capabilities, but I may be wrong.

xbacklight says "No outputs have backlight property" so no options to control the brightness even via commands.
 
Update: I thought Wi-Fi is working, but actually it's horrible. The new iwlwifi driver is constantly causing kernel panics and random reboots. The laptop looses connectivity pretty often and is unable to find the AP again, so only power off/on helps. The environment is rather noisy with everyone around having their own APs, but Macbook and Windows laptop are doing much, much better, and have much faster throughput rates. Wi-Fi is barely usable on this machine and FreeBSD 13.1, unfortunately.
 
Update: I thought Wi-Fi is working, but actually it's horrible. The new iwlwifi driver is constantly causing kernel panics and random reboots. The laptop looses connectivity pretty often and is unable to find the AP again, so only power off/on helps. The environment is rather noisy with everyone around having their own APs, but Macbook and Windows laptop are doing much, much better, and have much faster throughput rates. Wi-Fi is barely usable on this machine and FreeBSD 13.1, unfortunately.
See here: https://forums.freebsd.org/threads/...hcp-not-working-iwm-iwlwifi.88343/post-602283
 
Any updates on this? I see the WiFi driver has been patched some, not sure about video. I have a P16v that I hope to install on in about a week…
 
The only update I have is that I've got Ethernet working by setting MTU to 9000. With a default MTU you're stuck at 1 Mbps or so.

Please tell us about your experience on P16v.
 
- Ethernet is not working (very slow 1 Mbps speeds). The updated intel-em-kmod driver does not detect the card at all.
I had/have the same problem on my T16 with that NIC, setting a MTU >5360 "fixes" the issue:



- Appears to be draining a lot of battery power, about 20W, even when idle with standard power tweaks applied and USB in power save mode. So, reports about 2 hours battery life.
You have to enable C-states:
rc.conf(5)
performance_cx_lowest
(str) CPU idle state to use while on AC power. The string
“LOW” indicates that acpi(4) should use the lowest power
state available while “HIGH” indicates that the lowest
latency state (less power savings) should be used.

economy_cx_lowest
(str) CPU idle state to use when off AC power. The string
“LOW” indicates that acpi(4) should use the lowest power
state available while “HIGH” indicates that the lowest
latency state (less power savings) should be used.

Simply set both to "Cmax".

My T16 with i7-1255U draws ~9-12W in total ( acpiconf -i0) with ~4W for the CPU according to sysutils/powermon and I'm easily getting ~7-8 hours out of the 86Wh battery when working. (of course, running firefox with some "heavy weight" sites like discord can completely ruin those figures and battery runtime)

Regarding wifi I haven't found the time to fiddle around with it a bit more. I have set up wpa_supplicant and IIRC sucessfully connected to our wireless network, but I never really used it because this laptop is 99% of the time connected to wired ethernet, so I couldn't care less about wifi...


I'm still waiting for the first 14-STABLE builds to be available, then I'll install that to a new BE and give it a try. Although my primary concern is getting a working i915 driver so I can use an external monitor.
 
sko, alas, the C-state doesn't work for me on P14s:

% acpiconf -i0
Design capacity: 52500 mWh
Last full capacity: 45880 mWh
. . .
State: discharging
Remaining capacity: 89%
Remaining time: 1:25
Present rate: 28856 mW
Present voltage: 16230 mV
 
sko, alas, the C-state doesn't work for me on P14s:

what's the output of sysctl -a | grep cx_low?
You have to reboot to apply the [economy|performance]_cx_lowest settings in rc.conf or set hw.acpi.cpu.cx_lowest and all dev.cpu.N.cx_lowest by hand to "Cmax" (or C8).
 
Checking the ARK entry of that CPU, those 28W total seem to be "OK" for the i7-1260P - it seems that CPU isn't really optimized for low power scenarios with 28W base power and 20W min. assured power. With an insane 64W max turbo power that thing must get quite hot in a laptop...

You could also check the actual CPU power consumption with sysutils/powermon to see if the CPU really is the major power hog in that system.
 
That is strange. Does this mean 1:30 h battery lifetime is a design spec for this laptop? I doubt it. It is very hot indeed, with the vent on the right side of the body exactly where your hand with the mouse is. Whoever designed this layout deserves to whipped.

powermon isn't starting:
% powermon
ERROR: cpuctl(4) isn't available. Sorry.
 
Most likely the Nvidia GPU. Do you get any meaningful output from nvidia-smi ("Pwr Usage/Cap") or can you disable it in the BIOS? (you'll have to revert to the scfb driver in your xorg config when the nvidia GPU is disabled)
 
Nvidia GPU cannot be disabled in BIOS, so what I did is enabled persistence mode and limited power usage to 1W:

sudo nvidia-smi -pm=1
sudo nvidia-smi -pl=1

It still drains 6W though as reported by nvidia-smi, but acpiconf -i0 looks much better now:

Remaining capacity: 90%
Remaining time: 3:03
Present rate: 13589 mW

Still a far cry from 7-8 hours.
 
Still a far cry from 7-8 hours.
Those figures were for my i7-1255U with no additional GPU, the low-power IPS display and the bigger 86Wh battery. I specifically wanted a low-power CPU + large battery and no GPU for maximum battery runtime.

But those ~14W are now looking much better - thats <50% of the previous power draw.


PS: according to the manpage, "persistence mode" is only available on linux.
 
Back
Top