Jump to content

Lenovo Thinkpad X9

From ArchWiki

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

Reason: Missing an "Accessibility" sections. (Discuss in Talk:Lenovo Thinkpad X9)
Hardware PCI/USB ID Working?
ForcePad Yes
TouchScreen Yes
Stylus Yes
GPU 8086:64a0 Yes
Webcam No
IR camera No
Audio 8086:a828 Yes
Wi-Fi 8086:a840 Yes
NPU 8086:643e Yes
Bluetooth 8086:a876 Yes
Fingerprint reader 06cb:019d Yes
Ambient light sensor No
Thunderbolt 4 8086:a831 Yes
TPM Yes
Note The 14-inch model and the 15-inch model are two different models designed by two different teams. They do not use the same firmware release package. The following description may not apply to certain models.

In general, Linux kernel 6.14 minimum is required for most peripherals to function properly.

ForcePad

The ForcePad functions needs kernel driver for Intel THC (Touch Host Controller) which is upstreamed to Linux kernel 6.14. The following config is already enabled for linux:

config
CONFIG_INTEL_THC_HID=m
CONFIG_INTEL_QUICKSPI=m
CONFIG_INTEL_QUICKI2C=m

For 14" Sensel touchpad, you can adjust haptic feedback using hid-tools:

# hid-feature set /dev/hidraw1 -f b0000 <value 1-100>

and click force with:

# hid-feature set /dev/hidraw1 -f d0000 <value 1-3>

The device reverts to default settings after reboot. We can make it permanent through udev rules:

etc/udev/rules.d/99-sensel.rules
SUBSYSTEM=="hidraw", ACTION=="add", ENV{ID_VENDOR_FROM_DATABASE}=="Cirtech (UK) Ltd", RUN+="/usr/bin/hid-feature set /dev/%k -f b0000 50", RUN+="/usr/bin/hid-feature set /dev/%k -f d0000 1"

TouchScreen

Same as #ForcePad.

Stylus

Same as #ForcePad.

Audio

This laptop requires Sound Open Firmware in order to make the sound card working.

Power Management

There are typically battery charging adjustments available for ThinkPad laptops.

See Power management/Suspend and hibernate#Changing suspend method.

Ambient Light Sensor

This model needs a custom Intel ISH (Integrated Sensors Hub) firmware for the ambient light sensors. The custom firmware is not upstreamed yet and can be extracted from the Windows driver package through innoextract. The ISH firmware is located at:

/lib/firmware/intel/ish/ish_lnlm.bin.zst

Webcam

Certain models feature a MIPI camera (Sony IMX471 sensor) connected to the Intel IPU7 interface. Unlike standard USB webcams, this requires a complex driver stack and is not yet supported out-of-the-box.

Conversely, non-MIPI cameras are expected to work out of the box.

Kernel Support

Support for IPU7 was merged into the staging area of kernel 6.17, however the driver for the IMX471 sensor was not upstreamed.

To enable the camera, you can compile a kernel (6.17+) with the following modifications:

  1. The sensor driver must be added to drivers/media/i2c/ (and enabled in kernel config).
  2. drivers/media/pci/intel/ipu-bridge.c must be patched to support the sensor. (May not be required from kernel 6.19).

You can verify the module is loaded with $ lsmod | grep imx471

See this GitHub issue for patch details.

User Space

The proprietary Intel HAL is currently difficult to setup on Arch. An alternative is using Libcamera's SoftISP, which processes the raw data on the CPU.

There is a caveat that picture quality is worse than the proprietary stack.

  1. Install libcamera, which as of v0.6.0 supports IPU7.
  2. Install pipewire-libcamera to bridge the camera to PipeWire.

You can check if your camera is working with $ qcam.

WirePlumber Configuration

WirePlumber may not monitor libcamera devices by default. Create the following configuration file to force it.

~/.config/wireplumber/wireplumber.conf.d/10-libcamera.conf
wireplumber.profiles = {
  main = {
    monitor.libcamera = required
  }
}

Restart the relevant user services: $ systemctl --user restart wireplumber pipewire

Tip You can enable pipewire support in Firefox by going to about:config and setting media.webrtc.camera.allow-pipewire To true

IR Camera

Same as Webcam. The driver for the IR camera sensor (HM1092) is not available yet.

Firmware

Can be updated via fwupd or the official bootable ISO updater provided by Lenovo.

Function keys

Key Visible?1 Marked?2 Effect
Fn Yes No KEY_WAKEUP
Fn+Esc No3 Yes Enables Fn lock
Fn+F1 Yes3 Yes KEY_MUTE
Fn+F2 Yes Yes KEY_VOLUMEDOWN
Fn+F3 Yes Yes KEY_VOLUMEUP
Fn+F4 Yes3 Yes KEY_F204 Mutes microphone
Fn+F5 Yes Yes KEY_BRIGHTNESSDOWN5
Fn+F6 Yes Yes KEY_BRIGHTNESSUP5
Fn+F7 Yes Yes KEY_SWITCHVIDEOMODE4
Fn+F8 No Yes Toggles ACPI platform profile
Fn+F9 Yes3 Yes SW_CAMERA_LENS_COVER4 Toggles integrated camera
Fn+F10 Yes Yes KEY_SYSRQ4
Fn+F11 Yes Yes KEY_LINK_PHONE4
Fn+F12 Yes Yes KEY_BOOKMARKS4
Fn+End Yes Yes KEY_INSERT
Fn+B Yes No KEY_LEFTCTRL+KEY_PAUSE
Fn+P Yes No KEY_PAUSE
Fn+K Yes No KEY_SCROLLLOCK
Fn+H No No switch to performance profile
Fn+M No No switch to balanced profile
Fn+L No No switch to low power profile
Fn+Up Yes Yes KEY_PAGEUP
Fn+Down Yes Yes KEY_PAGEDOWN
Fn+Left Yes No KEY_HOME
Fn+Right Yes No KEY_END
Fn+S Yes No KEY_LEFTALT+KEY_SYSRQ
  1. The key is visible via evtest and similar tools
  2. The physical key has a symbol on it, which describes its function
  3. An LED indicates the state of this switch
  4. This event is handled by "ThinkPad Extra Buttons"
  5. This event is handled by "Video Bus"

Fn and LeftCtrl can be swapped in the BIOS menu. The keycaps are the same size, so they could theoretically also be swapped to match the BIOS setting.

As of BIOS version N4DET32W (1.15 on the X9-14), the "Fool proof FN Ctrl" feature is enabled by default and Fn+C, Fn+V and some other act as LeftCtrl+C etc…

Fingerprint sensor

Fingerprint sensor is located on the power button, reported as "Synaptics Sensors".

The fingerprint reader works out of the box using fprintd. See Fprint.