Lenovo ThinkPad X1 Yoga (Gen 4)

Hardware
PCI/USB ID
Working?
Touchpad
Yes
TrackPoint
Yes
Keyboard
Yes
Video
Yes
Webcam
04f2:b67c
Yes
IR Webcam
13d3:56ba
Yes
Ethernet
Yes
Bluetooth
Yes
Audio
Yes
Wi-Fi
Yes
Mobile broadband
Untested
Fingerprint reader
Yes
NFC
Yes
Screen orientation sensor
Yes
Touch screen
Yes
Wacom pen
Yes
The Lenovo ThinkPad X1 Yoga, 4th generation is a 2-in-1 convertible laptop introduced in late 2019. Its design is closely related to the
Lenovo ThinkPad X1 Carbon (Gen 7)
. 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
dmidecode
and run:
# dmidecode -t system | grep Version
Version: ThinkPad X1 Yoga 4th
Firmware
Updates
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
.
BIOS hanging, not booting into boot loader
Sometimes, the BIOS just "hangs" and you cannot do anything but force-power off. This was fixed in the latest version of the Synaptics touchpad which you can install using fwupdmgr.
S3 Suspend Bug with Bluetooth Devices
Occasionally your Thinkpad will wake up immediately after suspending with certain
bluetooth
devices added. To prevent this, remove the devices or disable
bluetooth
before suspending.
Enabling S3
The UEFI has two
Sleep State
options, called
Windows
and
Linux
, which you can find in at
Config > Power > Sleep State
. See
Power management/Suspend and hibernate
for the explanation of the various sleep states.
Reboot and verify whether deep sleep is available, as explained in
Power management/Suspend and hibernate#Changing suspend method
.
Touchpad
Sometimes after a boot, the touchpad does not work. This was fixed in the latest firmware for the Synaptics device which you can install using fwupdmgr.
Fingerprint sensor
Install the latest
fprintd
package. Also install the firmware modules with fwupdmgr from the
lvfs-testing remote
:
$ fwupdmgr enable-remote lvfs-testing
$ fwupdmgr refresh
$ fwupdmgr update
See
fprint
for more details on how to setup fingerprints.
IR Webcam
Confirm you have an IR camera by typing:
$ lsusb|grep IMC.Networks.Integrated.Camera
Shows (something like):
Bus 001 Device 003: ID 13d3:56ba IMC Networks Integrated Camera
The kernel drivers in Arch pick this up just fine, but there are packages like
Howdy
|
howdy
AUR
authentication pam/python scripts that require
linux-enable-ir-emitter
install
the package
linux-enable-ir-emitter
AUR
# linux-enable-ir-emitter configure
Follow the prompts
Then run the enablement scripts:
# linux-enable-ir-emitter run
(Optional) test the functionality:
# linux-enable-ir-emitter test
Create the systemd link to the enablement scripts:
# linux-enable-ir-emitter boot
NFC
See
https://github.com/nfc-tools/libnfc/issues/455
Screen orientation sensor
Install the latest
iio-sensor-proxy
package and reboot the system. Do not manually start the service as systemd DBUS handles it for you.
You can confirm the sensor is working by typing:
$ monitor-sensor --accel
=== Has accelerometer (orientation: normal)
Try open your Thinkpad to tablet mode and rotate it around to confirm it is sensing correctly.  Use
Ctrl+c
to close the monitor-sensor process when done.
Function keys
Key
Visible?
1
Marked?
2
Effect
Fn+Esc
No
Yes
Enables Fn lock
Fn+F1
Yes
Yes
XF86AudioMute
Fn+F2
Yes
Yes
XF86AudioLowerVolume
Fn+F3
Yes
Yes
XF86AudioRaiseVolume
Fn+F4
Yes
Yes
XF86AudioMicMute
Fn+F5
Yes
Yes
XF86MonBrightnessDown
Fn+F6
Yes
Yes
XF86MonBrightnessUp
Fn+F7
Yes
Yes
XF86Display
Fn+F8
Yes
Yes
XF86WLAN
Fn+F9
Yes
Yes
XF86Tools
Fn+F10
Yes
Yes
XF86Bluetooth
Fn+F11
No
Yes
none/opens keyboard config in Windows
Fn+F12
Yes
Yes
XF86Favorites
Fn+B
Yes
No
Break
Fn+K
Yes
No
ScrollLock
Fn+P
Yes
No
Pause
Fn+S
Yes
No
SysRq
Fn+4
Yes
3
No
XF86Sleep
Fn+Space
No
No
toggle keyboard backlight
Fn+Left Arrow
Yes
No
Home
Fn+Right Arrow
Yes
No
End
Fn+L
No
No
low power mode
Fn+M
No
No
normal power mode
Fn+H
No
No
high power mode
The key is visible to
xev
and similar tools
The physical key has a symbol on it, which describes its function
systemd-logind handles this by default
Battery threshold settings
It is possible to set thresholds for when the battery should stop/start charging using
$ tlp setcharge start_value stop_value
The following values are recommended:
[1]
Laptop Usage
start value
stop value
Regularly complete discharge (<20%) of battery
95
100
No complete discharge, between 50% to 100%
75
80
No battery usage, always AC
45
50