Lenovo ThinkPad X1 Carbon (Gen 6)
The Lenovo ThinkPad X1 Carbon, 6th generation is an ultrabook introduced in early 2018. It comes in several variants(20KH*
and 20KG*
) and 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 Carbon 6th
Device | Working | Modules |
Intel graphics | Yes | i915, (intel_agp) |
Wireless network | Yes | iwlmvm |
Native Ethernet with included dongle | Yes | ? |
Mobile broadband | No¹ | ? |
Audio | Yes | snd_hda_intel |
Touchpad | Yes | psmouse, rmi_smbus, i2c_i801 |
TrackPoint | Yes | psmouse, rmi_smbus, i2c_i801 |
Camera | Yes | uvcvideo |
Fingerprint Reader | No² | ? |
Power management | Yes³ | ? |
Bluetooth | Yes | btusb |
microSD card reader | Yes | scsi_mod |
Keyboard Backlight | Yes | thinkpad_acpi |
Function/Multimedia Keys | Yes | ? |
|
Contents
BIOS
The most convenient way to install Arch Linux is by disabling "Secure Boot" Security -> Secure Boot - Set to "Disabled"
. However it is possible to self-sign your kernel and boot with it enabled. For further information have a look at the Secure Boot article.
In case your efivars
are not properly set it is most likely due to you not being booted into UEFI. Should the problem persist be sure to consult the UEFI#UEFI variables section.
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.
Manual Installation
BIOS update 1.31 was released on 2018-10-02. Obtain geteltoritoAUR and run geteltorito.pl -o bios-update.img n23ur12w.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 Carbon 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.
Suspend issues
Since BIOS version 1.30, the X1 Carbon supports S3 mode when enabled in the BIOS menu (choose "Linux" sleep mode instead of the default "Windows 10"). See #Automatic Linux Vendor Firmware Service for instructions to update and verify your BIOS version.
Enabling S3
To enable S3 support, make sure you have at least BIOS version 1.30 installed. Then, go into the BIOS configuration, and Config -> Power -> Sleep State - Set to "Linux"
. This should make S3 available. To verify, after making the changes in the BIOS configuration, boot into Linux, and run the dmesg
command again to make sure that S3 is now available.
Verifying S3
To check whether S3 is recognized and usable by Linux, run:
dmesg | grep -i "acpi: (supports"
and check for S3
in the list.
Disabling the memory card reader
You might also need to disable the Realtek memory card reader (which appears to use a constant 2-3 W) either via the BIOS or via
echo "2-3" | sudo tee /sys/bus/usb/drivers/usb/unbind
BIOS configurations
-
Config -> Thunderbolt BIOS Assist Mode - Set to "Enabled"
. When disabled, on Linux, power usage appears to be significantly higher because of a substantial number of CPU wakeups during s2idle.
Power management/Throttling issues
Due to wrong configured power management registers the CPU may consume a lot less power than under windows and the thermal throttling occurs at 80°C (97°C when using Windows, see T480s throttling bug).
There is a post in the official Lenovo forum to inform Lenovo about this issue.
Throttling fix
An easy package has been written to address the problem until (or if) Lenovo ever solves it.
Install lenovo-throttling-fix-gitAUR, then run:
sudo systemctl enable --now lenovo_fix.service
The script also supports more advance thermal/performance features including CPU undervolting. See the lenovo-throttling-fix repository README.md
for details.
Configuration
Keyboard Fn Shortcuts
- Fn+4 sends XF86Sleep (puts computer to sleep by default)
- Fn+S sends Alt_L+Sys_Req
- Fn+P sends Pause
- Fn+B sends Control_L+Break
- Fn+K sends Scroll_Lock
- Fn+Space toggles the keyboard backlight
- Fn by itself sends XF86WakeUp (wakes computer from sleep by default)
Special buttons
Some special buttons are not supported by X server due to keycode number limit.
Key combination | Scancode | Keycode | Note |
---|---|---|---|
Fn+F11 |
0x49 |
374 KEY_KEYBOARD
|
Not recognized in Wayland |
Fn+F12 |
0x45 |
364 KEY_FAVORITES
|
Recognized correctly on Wayland |
You can remap unsupported keys using udev hwdb:
/etc/udev/hwdb.d/90-thinkpad-keyboard.hwdb
evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* KEYBOARD_KEY_49=prog1 KEYBOARD_KEY_45=prog2
Update hwdb after editing the rule.
# udevadm hwdb --update # udevadm trigger --sysname-match="event*"
HDR Display Color Calibration
For models with the 1440p HDR display, the default color profile can be corrected using an ICC calibration provided by notebookcheck.net's review.
wget https://www.notebookcheck.net/uploads/tx_nbc2/B140QAN02_0.icm colormgr import-profile B140QAN02_0.icm
This will import the ICC profile, and next you'll need to activate it for your display. Find your display's object path:
colormgr get-devices | sed -rn 's/Object Path:\s*(.*eDP1.*)/\1/p'
And your new color profile object path:
colormgr get-profiles | grep -4 -i B140QAN02
And finally activate the profile and set it as the default for this display:
colormgr device-add-profile <device object id> <profile object id> colormgr device-make-profile-default <device object id> <profile object id>
You can verify the profile is active by running colormgr get-devices
.
TrackPoint and Touchpad issues
To get the TrackPoint and Touchpad to work at the same time, add synaptics_intertouch=1
to the psmouse
kernel module options, for example in the cmdline of the boot loader:
[...] root=/dev/sda1 rw psmouse.synaptics_intertouch=1 [...]
or by editing /etc/modprobe.d/psmouse.conf
:
options psmouse synaptics_intertouch=1
Reconnecting a dead trackpad can be done via
echo -n "none" | sudo tee /sys/bus/serio/devices/serio1/drvctl echo -n "reconnect" | sudo tee /sys/bus/serio/devices/serio1/drvctl
A bug in the libinput library that caused dropouts of the tap-to-click functionality of the touchpad on the X1 Carbon 6th Gen has been fixed in libinput 1.11.2, which was released on 3 July 2018.
Full-disk encryption
Ramdisk module
With LUKS for root, i915 needs to be loaded in ramdisk in order to access the password prompt.
Add i915 to MODULES list in /etc/mkinitcpio.conf
and regenerate the ramdisk.
Tools
Diagnostics
s-tui
(s-tuiAUR): an aesthetically pleasing and useful curses-style interface that shows graphs of CPU frequency, utilization, temperature, and power consumption. It also has a built in stress tester.
intel_gpu_top
(intel-gpu-tools): gives you some top-like info for the integrated GPU. This can be quite useful in diagnosing GPU acceleration issues.
powertop
(powertop): provides detailed information about CPU power consumption and recommendations on how to improve it.
tlp-stat
(tlp): a much simpler alternative to remembering which cat /sys/devices/system/*
to run in many cases. It can give very detailed, structured information about components like the battery, processor, graphics card, etc.
References
- T480s throttling bug, affects X1C6 as well
- Lenovo forums: T480s low cTDP and trip temperature in Linux
- Thread: TrackPoint/Touchpad issues, 20KG model
- StackExchange: Success with enabling RMI4 config flags for Touchpad and TrackPoint
- Kernel patch - Input: elantech - add support for SMBus devices
- Kernel patch - Input: synaptics - add Lenovo 80 series ids to SMBus
- Early KMS start: Adding i915 to ramdisk
Additional resources
- ThinkWiki X1 Carbon 6th Gen page
- Benjamin Tissoires, kernel maintainer of peripherals, has explained how input bugs get fixed in his talk Tools to debug a broken input device (Slides), especially interesting are slides 16 onward.
- Dell XPS 13 9370 quirks: Some pointers on getting Watt usage down to ~2W, Intel video powersaving features might be interesting, see also the Intel graphics page for interesting power-saving options.
- Dell XPS 13 (9360): Shares some hardware with the X1C6
- Intel Blog: Best practice to debug Linux* suspend/hibernate issues, including the pm-graph tool to analyze power usage during suspend
- A comprehensive example Arch install for the X1C6