Lenovo ThinkPad X390 Yoga

From ArchWiki
Jump to navigation Jump to search

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 ?

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. The package is available in the community repo

sudo pacman -S iio-sensor-proxy 

Since I'm using Xfce, I used the script from the BBS [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