Jump to content

Lenovo ThinkPad P51

From ArchWiki

This article or section does not follow the Laptop page guidelines.

Reason: Stub. (Discuss in Talk:Lenovo ThinkPad P51)
Hardware PCI/USB ID Working?
Touchpad Yes
Keyboard Yes
Integrated GPU 8086:591b Yes
Discrete GPU 10de:1436 Yes
Webcam 5986:2118 Yes
Ethernet 8086:15e3 Yes
Bluetooth 8087:0a2b Yes
SD-card reader 10ec:525a Yes
Audio 8086:a171 Yes
Wi-Fi 8086:24fd Yes
Fingerprint reader 138a:0097 Yes
TPM Untested

Installation

Fingerprint sensor

#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin

case "$1" in
    pre)
        #code execution BEFORE sleeping/hibernating/suspending
    ;;
    post)
        #code execution AFTER resuming
        systemctl restart open-fprintd
        systemctl restart python3-validity
        systemctl restart open-fprintd-resume.service
    ;;
esac
}}
  • A network manager may be corrupted from resume, adding systemctl restart <NetworkManager> to the resume script mentioned before may help.

Troubleshooting the "Match-on-Chip" lock and Python 3.14 pathing

If the sensor fails with a "Type 15" error or Python pathing issues (common on newer Arch installs or resold devices), follow these steps:

BIOS Reset (Windows Lock)

If the laptop previously had Windows installed, the hardware may be paired to a Windows enclave.

  1. Reboot into BIOS.
  2. Go to Security > Fingerprint.
  3. Select Reset Fingerprint Data.

Manual Cryptographic Pairing

On systems with Python 3.14+, the AUR packages may fail to find site-packages. Stop background services and run the pairing script manually:

  1. Stop interfering services:sudo systemctl stop python3-validity open-fprintd
  2. Kill remaining processes: sudo killall -9 python3
  3. Clear backoff locks: sudo rm -f /var/run/python-validity.last_start
  4. Run the pairing script with explicit pathing:
    sudo PYTHONPATH=/usr/lib/python3.14/site-packages python3 /usr/share/python-validity/playground/prototype.py

Follow the prompts to swipe your finger and generate new keys.

Manual Enrollment Service

To enroll without service interference, start the bridge and driver in the foreground:

  1. In one terminal: sudo systemctl start open-fprintd
  2. In the same or a second terminal: sudo PYTHONPATH=/usr/lib/python3.14/site-packages python3 /usr/lib/python-validity/dbus-service --debug
  3. In a final terminal: fprintd-enroll $USER

Once enrollment is complete, enable the services:

# sudo systemctl enable --now python3-validity open-fprintd

Function Keys

Key Visible?1 Marked?2 Effect
Fn+Esc No Yes Toggles the Fn lock (Hardware level)
Fn+F1 Yes Yes XF86AudioMute
Fn+F2 Yes Yes XF86AudioLowerVolume
Fn+F3 Yes Yes XF86AudioRaiseVolume
Fn+F4 Yes Yes XF86AudioMicMute
Fn+F5 Yes Yes XF86MonBrightnessDown
Fn+F6 Yes Yes XF86MonBrightnessUp
Fn+F7 Yes Yes XF86Display
Fn+F8 Yes Yes XF86WLAN
Fn+F9 Yes Yes XF86NotificationCenter
Fn+F10 Yes Yes XF86PickupPhone
Fn+F11 Yes Yes XF86HangupPhone
Fn+F12 Yes Yes XF86Favorites
Fn+4 Yes No XF86Sleep
Fn+S Yes No Alt_L (Legacy Sys_Req)
Fn+B Yes No Break / Pause
Fn+P Yes No Pause
Fn+K Yes No Scroll_Lock
Fn+I Yes No XF86WakeUp
Fn+Space No Yes Controls keyboard backlight (HW level)
Fn+Print Yes No XF86SelectiveScreenshot
Fn+Left Arrow Yes No Home
Fn+Right Arrow Yes No End
  1. The key is visible to xev and similar tools
  2. The physical key has a symbol on it, which describes its function

See also

  • 3dprogramin GitHub - possible fixes for P51 issues (based on an Archbang but still useful)