Lenovo ThinkPad X390 Yoga
The Lenovo ThinkPad X30 Yoga is a 2-in-1 convertible laptop introduced in 2018. Its design is related to the Lenovo ThinkPad X1 Yoga (Gen 4). It features a 13.3" screen, 8th-gen Intel Core processors and integrated Intel UHD 620 graphics.
To ensure you have this version, install the package dmidecode and run:
# dmidecode -t system | grep Version Version: ThinkPad X390 Yoga
Device | Working | Modules |
Intel graphics | Yes | i915, (intel_agp) |
Wireless network | Yes | iwlmvm |
Native Ethernet with [1] | ? | ? |
Mobile broadband | Yes | cdc_mbim |
Audio | Yes | snd_hda_intel |
Touchpad | Yes | psmouse, rmi_smbus, i2c_i801 |
TrackPoint | Yes | psmouse, rmi_smbus, i2c_i801 |
TouchScreen | Yes | wacom, libinput or xf86-input-wacom, libwacom |
Stylus | Yes | wacom, x86-input-wacom, libwacom |
Camera | Yes | uvcvideo |
Fingerprint Reader | Yes | fprintd-libfprint2 |
Power management | Yes | ? |
Bluetooth | Yes | btusb |
microSD card reader | Yes | scsi_mod |
Keyboard Backlight | Yes | thinkpad_acpi |
Function/Multimedia Keys | Yes | ? |
Contents
BIOS
Thunderbolt BIOS settings issue
I was unable to disable Thunderbolt DMA protection and Virtualization settings when the notebook arrived. A BIOS update (using fwupdmgr) solved the issue.
Updates
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.
Fix touchscreen after resume
There are several possibilities, I opted for reloading the wacom kernel module:
/usr/lib/systemd/system-sleep/10-wacom.sh
#!/bin/bash case $1/$2 in pre/*) # echo "Going to $2..." /usr/bin/rmmod wacom ;; post/*) # echo "Waking up from $2..." /usr/bin/modprobe wacom ;; esac
This reloads the wacom kernel module during standby and fixes the issue for me. Other possible options can be found in the related ThinkPad articles, like disabling Thunderbolt or using rtcwake for 1 second. Both options didn't work reliably for me.
Tablet Functions
For the most part, the touch screen and stylus work under Xorg after installing xf86-input-wacom package with no issues. However, I found the touchscreen to perform much better using libinput. I created the following file:
/etc/X11/xorg.conf.d/40-libinput.conf
Section "InputClass" Identifier "touchscreen config" MatchProduct "Wacom|WACOM|PTK-540WL|ISD-V4" MatchDevicePath "/dev/input/event*" MatchIsTouchscreen "on" Driver "libinput" Option "Tapping" "true" Option "TappingDrag" "true" EndSection
This uses libinput and fixes scrolling with the finger in the desktop environment.
Screen Rotation
Automatic Screen Rotation
The iio-sensor-proxy package provides automatic screen rotation for some DEs. Install iio-sensor-proxy.
If you using Xfce, you can use the script from [2].
With Screen Rotator
Automatic screen rotation might work with ScreenRotator which has no configuration necessary. The touchscreen two finger swipe does not follow rotation at this time. Install iio-sensor-proxy-gitAUR and screenrotator-gitAUR.
My system started crashing sometimes when rotating, so I switched to the above-mentioned script.
Configuration
Many of the configuration options can be found in Lenovo ThinkPad X1 Yoga (Gen 3)#Configuration, as the X390 Yoga has a very similar structure to the X1 Yoga 3.
Fan Control
See Fan speed control#ThinkPad laptops
Fingerprint Reader
Experimental support is available if you install a testing firmware to the device and fprintd-libfprint2 from the AUR. See [3] for details. YMMV.
Keyboard Fn Shortcuts
Keybind | XF86 Event | Keycode | Keysym |
---|---|---|---|
Fn | XF86WakeUp | 151 | 0x1008ff2b |
Fn+F1 | XF86AudioMute | 121 | 0x1008ff12 |
Fn+F2 | XF86AudioLowerVolume | 122 | 0x1008ff11 |
Fn+F3 | XF86AudioRaiseVolume | 123 | 0x1008ff13 |
Fn+F4 | XF86AudioMicMute | 198 | 0x1008ffb2 |
Fn+F5 | XF86MonBrightnessDown | 232 | 0x1008ff03 |
Fn+F6 | XF86MonBrightnessUp | 233 | 0x1008ff02 |
Fn+F7 | XF86Display | 235 | 0x1008ff59 |
Fn+F8 | XF86WLAN | 246 | 0x1008ff95 |
Fn+F9 | XF86Tools | 179 | 0x1008ff81 |
Fn+F10 | XF86Bluetooth | 245 | 0x1008ff94 |
Fn+F11 | ?? | ||
Fn+F12 | XF86Favorites | 164 | 0x1008ff30 |