Lenovo ThinkPad X1 Yoga (Gen 3)
The Lenovo ThinkPad X1 Yoga, 3th generation is a 2-in-1 convertible laptop introduced in early 2018. Its design is closely related to the Lenovo ThinkPad X1 Carbon (Gen 6). It features a 14" screen, 8th-gen Intel Core processors and integrated Intel UHD 620 graphics.
To ensure you have this version, install the package and run:
# dmidecode -t system | grep Version Version: ThinkPad X1 Yoga 3rd
|Intel graphics||Yes||i915, (intel_agp)|
|Native Ethernet with included dongle||Yes||?|
|Touchpad||Yes||psmouse, rmi_smbus, i2c_i801|
|TrackPoint||Yes||psmouse, rmi_smbus, i2c_i801|
|microSD card reader||Yes||scsi_mod|
- 1 BIOS
- 2 Suspend issues
- 3 Tablet Functions
Thunderbolt BIOS assist potential brick issue
Several linux users reported their systems were bricked after enabling "Thunderbolt BIOS assist" in the UEFI menu. Lenovo has released BIOS version 1.27 which prevents this issue. See this thread on the Lenovo forums for details.
EC Fan issues under Linux
Under BIOS version 1.24 the embedded controller will no longer spin the fan up properly during high system load causing CPU throttling issues. Reverting to version 1.21 will restore normal functions or you can use the Fan speed control#ThinkPad laptops for details.AUR package to control it via the OS. See
Automatic (Linux Vendor Firmware Service)
In August of 2018 Lenovo has joined the Linux Vendor Firmware Service (LVFS) project, which enables firmware updates from within the OS. BIOS updates (and possibly other firmware such as the Thunderbolt controller) can be queried for and installed through fwupd.
Download the latest BIOS image from the Lenovo Thinkpad X1 Yoga 3rd Gen downloads page. Obtain AUR and run
geteltorito.pl -o bios-update.img xxxxxxxx.iso on the downloaded ISO file to create a valid El Torito image file, then flash this file on a USB drive via
dd like you would flash Arch installation media. For further information see flashing BIOS from Linux.
The ThinkPad X1 Yoga supports setting a custom splash image at the earliest boot stage (instead of the red "Lenovo" logo), more information can be found in the
README.TXT located in the
FLASH folder of the update image.
The 3rd Generation X1 Yoga supports S0i3 (also known as Windows Modern Standby), but not S3 by default. Missing S3 also causes hybrid-suspend to go directly to hibernate. Lenovo included a BIOS option to enable S3 fro BIOS 1.30 onward for the Lenovo ThinkPad X1 Carbon (Gen 6), but there is no equivalent option for the X1 Yoga as of BIOS version 1.27 (2018-10-21).
To check whether S3 is recognized and usable by Linux, run:
dmesg | grep -i "acpi: (supports"
and check for
S3 in the list.
There is an automated script called x1carbon2018s3 by fiji-flo that was originally intended for use for the X1 Carbon 6th Gen (source). The script and documentation were updated and maintained by lsmith77 to adapt it for the X1 Yoga 3rd Gen. The latest known version is in a fork by ryankhart currently awaiting a pull request.
(Optional) To check out this script and its history, visit these GitHub repositories:
Bios settings 
Ensure that Boot Mode is set to
Quick and not
Thunderbolt BIOS Assist Mode to Enabled (via Config → Thunderbolt 3).
dmesg | grep -A3 'DSDT ACPI'
If you see all three of the following lines:
[ 0.000000] ACPI: DSDT ACPI table found in initrd [kernel/firmware/acpi/dsdt.aml][0x2338b] [ 0.000000] Lockdown: ACPI table override is restricted; see man kernel_lockdown.7 [ 0.000000] ACPI: kernel is locked down, ignoring table override
rather than just the first line, disable
Generate the override 
git clone https://github.com/ryankhart/x1carbon2018s3.git cd x1carbon2018s3/ chmod +x generate_and_apply_patch.sh ./generate_and_apply_patch.sh
Load the override on boot 
Edit your boot loader configuration and add /acpi_override to the initrd line. To ensure S3 is used as sleep default add mem_sleep_default=deep to you kernel parameters.
If you're using systemd-boot your
/boot/loader/entries/arch.conf might look like this:
title Arch Linux ACPI linux /vmlinuz-linux initrd /intel-ucode.img initrd /acpi_override initrd /initramfs-linux.img options root=/dev/nvme0n1p2 rw i915.enable_guc=3 mem_sleep_default=deep
If you're using grub edit
/etc/default/grub and add the following:
GRUB_EARLY_INITRD_LINUX_CUSTOM=acpi_override GRUB_CMDLINE_LINUX_DEFAULT="quiet mem_sleep_default=deep"
To verify the setting has been applied correctly run:
sudo cat /boot/grub/grub.cfg | grep initrd
You should see:
initrd /boot/intel-ucode.img /boot/acpi_override /boot/initramfs-4.19-x86_64.img
Verify that S3 is working (See Verifying S3)
Reboot and verify whether S3 is working by running:
dmesg | grep -i "acpi: (supports"
You should now see something like this:
[ 0.230796] ACPI: (supports S0 S3 S4 S5)
For example, for GRUB, one might edit
/etc/default/grub and edit
and restart the system.
The power consumption might still be higher than that of the S3 state in this case.
For the most part, the touch screen and stylus work under Xorg after installing Tablet PC for further information.package with no issues. See
The default stylus buttons are mapped by the wacom driver as follows:
|Physical Button||Xorg mouse number|
These can be changed with xsetwacom. To set the top button of the stylus to the equivalent of a middle click or Xorg mouse button 3:
xsetwacom --set "Wacom Pen and multitouch sensor Pen stylus" Button 2 3
To register the "eraser" as a right click use:
xsetwacom --set "Wacom Pen and multitouch sensor Pen eraser" Button 1 2
With Screen Rotator
Automatic screen rotation works well with ScreenRotator which has no configuration necessary. The touchscreen two finger swipe does not follow rotation at this time. InstallAUR and AUR.