Lenovo ThinkPad X1 Extreme
|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|
|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.
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.
The latest version, v1.33, is highly recommended. All information on this page generally assumes the latest firmware unless explicitly stated.
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.
Thepackage works out of the box, with no additional configuration required.
AUR 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.
optimus-managerdoes not enable runtime power management. To enable it explicitly, install and adjust the configuration to:
The following configuration has been found to work well:
Section "Device" Identifier "intelgpu0" Driver "intel" EndSection
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 works out of the box (tested with ThinkPad Thunderbolt 3 Dock); see Thunderbolt for details on security.
Support for controlling the second (right side) fan is implemented in Linux 5.8. For older kernels, the linked change can be applied on top of the LTS kernel branch.
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 AUR.
Upstream libfprint bug is tracked here.
The touchpad experience on pre-5.8 kernels can be greatly improved by enabling "intertouch" as hinted by kernel messages. This can be done by either adding
psmouse.synaptics_intertouch=1 to the kernel command line or by creating a modprobe entry like:
options psmouse synaptics_intertouch=1
This setting is enabled by default in kernel 5.8.
The webcam works out of the box, though it reports a completely black image instead of the "disconnected" placeholder when the protective slider is closed.
Everything else works correctly out of the box.
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 . 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 Echo/Noise-Cancellation can be used to reduce the amount of microphone noise by adding the following to
### 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.
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_stop_threshold, or using TLP.
CPU thermal limits
A stress test using
thermald is installed and enabled.
Users of older kernel versions may choose one of the following workarounds.
Starting with version 5.4, the Linux kernel exposes multiple interfaces to configure the thermal policy of the CPU. There are two major knobs to be tweaked: the DPTF policy, which controls the throttling behavior, and the TCC offset, which controls the maximum allowed package temperature. Those can be configured to match Windows using a script like this one:
#!/bin/bash # set DPTF policy to "adaptive performance" echo "63BE270F-1C11-48FD-A6F7-3AF253FF3E2D" > /sys/devices/platform/INT3400:00/uuids/current_uuid # enable INT3400 thermal zone for zone in /sys/class/thermal/thermal_zone*; do if [ "$(cat $zone/type)" == "INT3400 Thermal" ]; then echo enabled > $zone/mode fi done # set TCC offset to 5 degrees (Tmax = 95C) echo 5 > /sys/devices/pci0000:00/0000:00:04.0/tcc_offset_degree_celsius
via third party tools
intel-undervolt (see below) can be used to override both thermal and power limits. However, the approach used by those tools is less reliable.
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").
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
Restart TLP with
sudo systemctl restart tlp.service for changes to take effect.
This change can make the laptop significantly cooler while on AC.
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