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 | |
Wireless | 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 bootloader
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|howdyAUR authentication pam/python scripts that require linux-enable-ir-emitter
install the package linux-enable-ir-emitterAUR
# 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 |
Yes3 | 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 |