Lenovo ThinkPad X1 Extreme (Gen 2)
|Intel UHD 630 Graphics||Yes||i915|
|NVIDIA GeForce GTX 1650||Yes||nvidia|
|Intel AX200 Wifi||Yes||iwlwifi|
|Intel AX200 Bluetooth||Yes||btusb|
|Synaptics fingerprint reader||Yes|
The Thinkpad X1E Gen 2 is a thin-and-light 15.6" workstation/multimedia laptop from Lenovo's 2019 ThinkPad X lineup.
To use Thunderbolt 3, ensure you are on the latest BIOS firmware (doing the following steps on older BIOSes may brick your device):
1. Go into BIOS
2. Enable BIOS Assist mode: (Thunderbolt 3 -> Enable BIOS assist mode) *Ensure you're on the latest BIOS!*
Invalid stats workaround
As of writing, a bug exists where the battery data can appear corrupt, wildly incorrect, or seem to change drastically from boot to boot. To workaround this bug you should add battery to the
Remember to regenerate the initramfs for these changes to take effect.
Battery life and graphics
bbswitch does not work on this laptop to disable the NVIDIA card when not in use. To disable the NVIDIA card you can run:
# tee /sys/bus/pci/devices/0000\:01\:00.1/remove <<<1 # tee /sys/bus/pci/devices/0000\:01\:00.0/remove <<<1
Currently (5.2.9-arch1), the Nouveau driver can cause quite a lot of kernel panics when using the webcamera. You should blacklist this driver to prevent it from being loaded.
The NVIDIA driver now supports PRIME Offloading. Following this guide you can try out this new mode.
To get the best power options the graphics card may be configured to use low power mode by following the guide here
Currently, one of the easiest solutions for this laptop is to use optimus-manager with the hybrid backend. This requires the most up to date nvidia and xorg-server packages.
This allows easy switching between the PRIME offloading feature above, and a mode where external display ports (HDMI and USB-C) work.
Steps to setup after a fresh install:
- Install nvidia proprietary driver 'prime', not bumblebee.
- Install AUR.
- `optimus-manager --switch nvidia` # this will restart your X session, but not make the change persistent.
- `lspci -k | grep -A 2 -E "(VGA|3D)"` should say: Kernel driver in use: nvidia.
- `xrandr` should list HDMI output - try to configure screen, should work.
- `nvidia-settings` should work.
- In the optimus-manager config file, located at /etc/optimus-manager/optimus-manager.conf, change the setting startup_mode to nvidia to make it persistent.
- Check: reboot, external display should still work.
OLED screens have no backlight, brightness cannot be controlled by changing backlight power in the traditional way. Instead, it can be controlled using PWM by enabling following option:
echo "options i915 enable_dpcd_backlight=1" >> /etc/modprobe.d/i915.conf
Alternatively, you can add a kernel parameter. For example, if you are using GRUB, edit /etc/default/grub with
Don't forget to update the grub configuration to apply the changes.
Brightness control is not yet supported by standard tools. You can try this oneAUR
Hybrid Graphics (also known as Nvidia Optimus) Allows the system to use the integrated Intel graphics and the Nvidia GPU interchangeably without rebooting.
Brightness control under Hybrid Graphics should work "out of the box" with no kernel command line options necessary. If you notice brightness controls cease working, check that your BIOS settings are still for "Hybrid Graphics" and not "Discrete Graphics".
Discrete graphics means only the Nvidia GPU is available to the system.
Currently brightness control does not work with "Discrete Graphics" selected in BIOS.
Audio pop on shutdown and startup
To work around the loud audio artifacts on startup/shutdown follow the guide for enabling the audio powersave: Power management#Audio.
The 1.90.1 version of fprint supports this device after a firmware update.
Setup fwupd then, using the latest version of the fwupd tool you should be able to run:
and see a "Prometheus" device in the list.
If your fingerprint has been enrolled in Windows before, you may need to reset your fingerprint data in BIOS to see a "Prometheus" device.
Install the firmware by running
You should then be able to enroll your fingerprints with Fprint#Configuration
The optional card reader that the Lenovo can install in your laptop is a Alcor Micro AU9560. There are some tools you can use to test your card reader.
systemctl enable --now pcscd
First, verify that your card reader can be found by pcsc:
Now, insert a smart card and run the following to verify that pcsc is able to read your card:
The webcam in this laptop is capable of "Windows Hello" which has a Linux version called Howdy. The device you should use to configure howdy on this laptop is
/dev/video0. It is possible that Howdy will only use the RGB camera, in this case some additional configuration and software is required. Follow this guide on installing chicony-ir-toggle and setting it up as a service. Or you can just install AUR, which automatically helps you enable the IR camera after booting the system and waking up from sleep. Before installing AUR, make sure you change the local variables in
prepare() in PKGBUILD to match your own IR camera. In this case try changing the video device to
/dev/video2 in the howdy config
sudo howdy config, if everything has worked correctly when running
sudo howdy test the IR Camera should have a very faint red light. This will indicate that the camera is functioning and Howdy is using the IR camera correctly.
If you would like to enable the keyboard backlight, run:
echo 2 | tee /sys/class/leds/tpacpi::kbd_backlight/brightness
The "2" represents the brightness and can be any value between 0 and 2 (inclusive) for the laptop. For example, to turn off the keyboard backlight, you would run:
echo 0 | tee /sys/class/leds/tpacpi::kbd_backlight/brightness
The touchpad works out-of-the-box with libinput. However, it will be very insensitive.
Make sure to not install- this driver is deprecated, lacks all features mentioned below, but is still installed by default with the group.
You can check which input driver Xorg is using for your touchpad with:
grep 'Using input driver' /var/log/Xorg.0.log | grep 'SynPS/2 Synaptics TouchPad' # Expected output: [ 248.282] (II) Using input driver 'libinput' for 'SynPS/2 Synaptics TouchPad'
You can explicitly chose an input driver by placing an Xorg configuration snippet like the following in /etc/X11/xorg.conf.d/99-synaptics.conf:
Section "InputClass" Identifier "touchpad catchall" MatchIsTouchpad "on" Driver "libinput" EndSection
You can adjust acceleration using the command:
xinput set-prop 'SynPS/2 Synaptics TouchPad' 'libinput Accel Speed' 0.5
Two-Finger Right Click
Additionally, if you wish to disable right-clicking so that you use two finger click as your right click, run:
xinput set-prop 'SynPS/2 Synaptics TouchPad' 'libinput Click Method Enabled' 0 1
If you would like for a tap on the touchpad to be registered as a click, use:
xinput set-prop 'SynPS/2 Synaptics TouchPad' 'libinput Tapping Enabled' 1
Issues after Sleep and Resume
If you are having issues with trackpad functionality not working after a sleep and resume, like non-smooth tracking or tap clicking not registering, you can switch back to the older communication protocol:
echo "options psmouse synaptics_intertouch=0" > /etc/modprobe.d/trackpad.conf
More details on what this does are here 
WiFi card not detected after reboot
If your WiFi card is occasionally not detected after reboots, this may be related to a known bug that is related to windows fastboot. Workarounds are to completely shutdown the machine (no suspend or reboot), on next boot it works for me. Alternatives suggested are to first boot into windows, and/or disable windows fastboot in the bios.
Not getting gigabit
If you have issues with a gigabit connection being capped at 100 MB/s and you are using the e1000e driver, try adding pcie_aspm=off to the kernel boot parameters.
Additionally, run the following to get a more slight network performance improvement:
ethtool -s <INTERFACE> autoneg on speed 1000 duplex full
The latest BIOS version is highly recommended. All information on this page should assume the latest BIOS unless explicitly stated otherwise.
error: failed to save storage - write protected), it may help to reset the BIOS to factory defaults (F9) and/or upgrade your BIOS.
Check BIOS version
From Lenovo's firmware readme, to check the system's installed BIOS version:
DETERMINING WHICH VERSION IS INSTALLED [Checking on ThinkPad Setup] 1. Turn on the computer. 2. While the "To interrupt normal startup, press Enter" message is displayed at the lower-left area or lower-center of the screen, press the F1 key. The ThinkPad Setup menu will be displayed. If a password prompt appears, type the correct password. 3. Locate the UEFI BIOS Version line. "UEFI BIOS version (BIOS ID)" will be shown on the UEFI BIOS Version line. 4. Turn off the computer.
Alternatively, use fwupdmgr from fwupd without rebooting:
$ fwupdmgr get-devices
... ├─System Firmware: │ Current version: 0.1.30 ...
Disabling Absolute Persistence
Lenovo offers two BIOS versions with their releases; Absolute Persistence and Non-absolute Persistence. Absolute Home & Office (originally known as CompuTrace, and LoJack for Laptops) is a proprietary laptop theft recovery software (laptop tracking software) with features including the abilities to remotely lock, delete files from, and locate the stolen laptop on a map. More information about its functionality and vulnerabilities can be read here
If you do not subscribe to this service and have no use for it, you can flash an alternate BIOS provided by Lenovo listed as "Non-Absolute Persistence". The BIOS versions are identified by their letter at the end of the .cab file. Versions ending in W include Absolute's features and versions ending in P remove it. The Non-Absolute version is included in the zip file containing BIOS updates from Lenovo's website or you can directly download it from fwupd.org.
To install the Non-Absolute Persistence BIOS, you must first permanently disable Computrace in the BIOS. Once done, you can flash the Non-Absolute Persistence (P version) with the same instructions.
$ su # fwupdmgr install <filename>.cab
Then reboot immediately to finish the upgrade.
Reverting to previous versions
To downgrade your bios, you can use the --allow-older flag with fwupd.
You will see a dmesg error that talks about CPU throttling.
There are a few ways to fix this. You should only use one of the following as they both attempt to undervolt.
To fix this install, then run
systemctl enable --now lenovo_fix.service
Undervolting the CPU/Intel GPU works well with intel-undervolt.