Lenovo ThinkPad X1 Extreme

From ArchWiki
Jump to navigation Jump to search

Tango-edit-clear.pngThis article or section does not follow the Laptop page guidelines.Tango-edit-clear.png

Reason: Hardware table needs some adjustments, missing function keys table (Discuss in Talk:Lenovo ThinkPad X1 Extreme#)
Device Status Modules
Intel UHD 630 Graphics Working i965
Nvidia GTX 1050 Ti (Max-Q) Working nvidia
Intel I219-V Ethernet Working e1000e
Intel 9560 wireless Working iwlwifi
Realtek ALC285 audio Working snd_hda_intel
Synaptics touchpad Working synaptics + libinput
SunplusIT camera Working uvcvideo
Card reader Working xhci_hcd
Intel 9560 Bluetooth Working btusb
Intel JHL7540 Thunderbolt Working thunderbolt
Synaptics fingerprint reader Experimental Requires experimental python-validity driver

The ThinkPad X1 Extreme is a thin-and-light 15.6" workstation/multimedia laptop from Lenovo's 2018 ThinkPad X lineup.

This page specifically concerns the specifics of running Arch Linux on this laptop. See Laptop for generic laptop-related information, or ThinkPad for other ThinkPad laptops. The Ubuntu certification page may also be useful.

Note: The Lenovo ThinkPad P1 is a workstation version of the same laptop which uses extremely similar hardware. Most of the information on this page should be applicable to P1 models as well.

Hardware compatibility

Firmware update

Despite not being strictly required for an Arch Linux install, a UEFI firmware update is strongly recommended for general use of the laptop - the initial 1.13 version devices seem to ship with contains multiple bugs that can result in bricking the laptop: Reddit thread discussing the issue; another Reddit thread discussing a different bricking issue.

Firmware updates are available via fwupd, the Lenovo Vantage application on Windows, or from Lenovo's website.

The latest version, v1.33, is highly recommended. All information on this page assumes the latest firmware.

Hybrid graphics

Hybrid graphics can be configured in multiple ways, as described below.

Both the HDMI port and DisplayPort outputs created when using either a USB-C adapter or Thunderbolt dock are wired to the Nvidia dGPU.

A BIOS setting can be used to disable the integrated GPU, and run everything on the dedicated Nvidia card. The dedicated GPU cannot be disabled through firmware, so enabling runtime power management in some form is highly recommended when using the iGPU.

PRIME offloading

Warning: Runtime power management is not supported with this method. The dedicated GPU will downclock, but will not power off completely even when idle.

The nvidia-prime package works out of the box, with no additional configuration required.

optimus-manager

optimus-managerAUR provides a way to easily switch the active GPU for the entire system, and supports runtime power management for disabling the dedicated GPU when not in use.

Note: The default configuration for optimus-manager does not enable runtime power management. To enable it explicitly, install bbswitch and adjust the configuration to:
/etc/optimus-manager/optimus-manager.conf
[optimus]
switching=bbswitch

Bumblebee

Warning: Bumblebee is slow, effectively unmaintained and has issues working with modern applications. A working configuration is preserved here for posterity, but should generally be avoided.

The following configuration has been found to work well:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
    Identifier "intelgpu0"
    Driver "intel"
EndSection
/etc/bumblebee/xorg.conf.nvidia
Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "true"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"
    Option "ProbeAllGpus" "false"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "DiscreteNVidia"
EndSection

External displays can be used via intel-virtual-output. See Bumblebee#Output wired to the NVIDIA chip for details.

Using the dedicated GPU exclusively

The default configuration produced by nvidia-xconfig is fully functional, including HDMI output.

Thunderbolt

Thunderbolt works out of the box (tested with ThinkPad Thunderbolt 3 Dock); see Thunderbolt for details on security.

Fingerprint scanner

The laptop uses an older Synaptics (a.k.a. Validity Technologies) sensor, USB ID 06cb:009a.

A reverse engineering effort is ongoing here, and an experimental driver is available on the AUR as python-validityAUR.

Upstream libfprint bug is tracked here.

Software tweaks

Dolby Atmos Effect on Linux

In order to get the same speaker sound quality/effect as on Dolby Atmos with Windows install & configure PulseAudio and pulseeffects. You can then download the Dolby Atmos preset from JackHack96's Github and enable it in the "Convolver" tab of the PulseEffects GUI.

Microphone noise reduction

PulseAudio's PulseAudio#Microphone echo/noise cancellation can be used to reduce the amount of microphone noise by adding the following to /etc/pulse/default.pa:

/etc/pulse/default.pa
### Enable Echo/Noise-Cancellation
load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="beamforming=1 mic_geometry=-0.0257,0,0,0.0257,0,0" source_name=echoCancel_source sink_name=echoCancel_sink
set-default-source echoCancel_source
set-default-sink echoCancel_sink

The above mic_geometry is specific to the X1 Extreme.

The module-filter-heuristics and module-filter-apply modules can sometimes result in adding additional noise, so it may also help to comment out the lines that enable them:

/etc/pulse/default.pa
#load-module module-filter-heuristics
#load-module module-filter-apply

Bad sound quality may also result from audio clipping, which can occur if "Internal Mic Boost" is larger than zero in alsamixer.

Battery charge thresholds

Battery charging thresholds can be configured via sysfs nodes /sys/class/power_supply/BAT0/charge_start_threshold and /sys/class/power_supply/BAT0/charge_stop_threshold, or using TLP.

CPU thermal limits

A stress test using s-tui indicates that the CPU is limited to 38W/80C at boot, resulting in maximum sustained frequency of around 2850 MHz on i7-8750H under heavy loads. Performance can be improved by installing and enabling thermald, which will dynamically adjust power limits based on load.

CPU undervolting

Warning: While generally not directly dangerous to the hardware, undervolting is not supported by Lenovo or Intel. If you experience any issues whatsoever while your hardware is undervolted, reset to stock voltages and verify the issue is still present.

Undervolting the CPU/Intel GPU works well with intel-undervolt. Generally -150mV seems to be a safe choice on the i7-8750H and i7-8850H CPUs, but your mileage may vary.

The effects of undervolting on system stability will vary depending on individual hardware (a.k.a. "the silicon lottery").

TLP

Enabling runtime power management for PCI(e) bus devices can save about 6W (by turning the Nvidia GPU off(?)). TLP enables this by default on battery, but not on AC. To enable on AC while using TLP, modify /etc/tlp.conf:

/etc/tlp.conf
RUNTIME_PM_ON_AC=auto

Restart TLP with sudo systemctl restart tlp.service for changes to take effect. This change can make the laptop significantly cooler while on AC.

Specifications

All information on this page has been tested on laptop part number 20MF000BUS and 20MFCTO1WW, with the following specifications:

  • CPU: Intel Core i7-8750H / i7-8850H
  • Graphics: Hybrid Intel UHD 630 + Nvidia GTX 1050 Ti Max-Q
  • Display: Innolux N156HCE-EN1 1920x1080/60Hz IPS (other vendors may be used)
  • RAM: 16GB / 32GB
  • SSD: Intel 7600p series 512GB NVMe / Samsung 970 Pro 1TB NVMe