Lenovo ThinkPad X1 Carbon (Gen 6)
- 1 Model description
- 2 Suspend issues
- 3 Power Management/Throttling issues
- 4 TrackPoint and Touchpad issues
The Lenovo ThinkPad X1 Carbon, 6th generation is an ultrabook introduced in early 2018. It comes in several variants 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 and run:
# dmidecode -t system | grep Version Version: ThinkPad X1 Carbon 6th
|Native Ethernet with included dongle||Yes|
|microSD card reader||Untested|
* via workaround
Suspend-to-RAM (S3) not supported by default
The 6th Generation X1 Carbon supports S0i3 (also known as Windows Modern Standby) and does not support the S3 sleep state. See https://delta-xi.net/#056 for instructions for patching ACPI DSDT tables to add S3 support.
See https://bbs.archlinux.org/viewtopic.php?id=234913 for the discussion related to this issue.
Note that this disables wakeup/resume on lid open.
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
- 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 https://www.reddit.com/r/thinkpad/comments/870u0a/t480s_linux_throttling_bug/).
There is a post in the official Lenovo forum (https://forums.lenovo.com/t5/Linux-Discussion/T480s-low-cTDP-and-trip-temperature-in-Linux/td-p/4028489) to inform Lenovo about this issue.
Until Lenovo fixes this issue, you can manually set the limit.
To begin, install msr-tools
Create the file /usr/local/bin/cpu-throttling.sh (making it executable) containing the following :
#!/bin/bash /bin/modprobe msr wrmsr -a 0x1a2 0x3000000 # which sets the offset to 3 C, so the new trip point is 97 C
Then you can create the associated service.
Create the file /etc/systemd/system/cpu-throttling.service :
[Unit] Description=set cpu heating limit to 97°c [Service] ExecStart=/usr/local/bin/cpu-throttling.sh RemainAfterExit=no [Install] WantedBy=timers.target
Create the file /etc/systemd/system/cpu-throttling.timer :
[Unit] Description=set cpu heating limit to 97°c every minute [Timer] OnActiveSec=60 OnUnitActiveSec=60 Unit=cpu-throttling.service [Install] WantedBy=timers.target
Then, enable it :
# systemctl enable cpu-throttling.timer
Reboot and check with :
# rdmsr -f 29:24 -d 0x1a2 3
TrackPoint and Touchpad issues
On the 20KG model, the Touchpad(Synaptics) and TrackPoint(Elantech) do not work together, one has to disable the TrackPoint in BIOS to get the Touchpad to work reliably. The root of the issue seems to be that the default loading of the TrackPoint via ancient PS/2 drivers conflicts with Touchpad loading. Synaptics has introduced a new way of doing things named RMI(4) that fixes some those issues. Further explanation is collected in this thread. Benjamin Tissoires, kernel maintainer of peripherals, has explained how input bugs get fixed in this talk, especially interesting are slides 16 onward.
There are several workarounds available:
Remove i2c_i801 kernel module from blacklist
/etc/modprobe.d/blacklist.conf and comment out
blacklist i2c_i801. This enables loading the input devices over rmi4 with recent kernels.
synaptics_intertouch=1 to the
psmouse kernel options, for example in the cmdline of the boot loader:
[...] root=/dev/sda1 rw psmouse.synaptics_intertouch=1 [...]
Compile kernel with CONFIG_RMI4 options enabled
Someone has reported success with enabling RMI4 config flags for kernel compilation.