This is my recipe to install Ubuntu 19.04 Disco Dingo on the Lenovo Thinkpad X1 Carbon 6th gen (2018). This guide should serve you as well for Ubuntu 18.04 LTS, but the newer kernel and GNOME on 19.04 offer better power management and HiDPI support.
The X1 Carbon is an excellent laptop for developers, and even though its Linux support is good, getting it to work perfectly still requires some tinkering. This topic has been covered already, but there’ve been improvements in hardware support over the last year that are not reflected on older articles. Hopefully this will serve as an up-to-date, streamlined version on how to set it up after installing Ubuntu.
Mugshot: The culprit behind this article, suspended
This setup should leave the laptop fully working, except for the fingerprint reader, for which there are no available drivers. Everything else is 100% functional.
BIOS config changes
We’ll need to perform some changes on the BIOS to get the most of our Thinkpad. It’s better to do so before installing Ubuntu itself, since secure boot needs to be disabled to perform the installation anyway. Here’s the list:
# Disable secure boot to install Ubuntu Security > Secure Boot: Disable # Set Sleep State to Linux to enable S3 suspend mode # This should be available on firmware version >= 1.30 Config > Power > Sleep State: Set to Linux # Disable uneeded peripherals to save a few watts (optional) Security > I/O Port Access > Wireless WAN: Disable > Memory Card Slot: Disable > Fingerprint Reader: Disable
After Ubuntu’s install, you can add
tlp to improve power management:
sudo apt install tlp tlp-rdw acpi-call-dkms tp-smapi-dkms acpi-call-dkms
If you are keen on tracking the wattage your laptop is consuming, you should also try these tools:
sudo apt install powertop s-tui
s-tui monitoring power usage and temperature
X1 Carbon under Linux throttles the CPU below its TDP under load, robbing you of the extra oomph you paid top dollar for. Thankfully there is a fix for that. You’ll have to install the following:
sudo apt install git build-essential python3-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev python3-venv python3-wheel git clone https://github.com/erpalma/lenovo-throttling-fix.git sudo ./lenovo-throttling-fix/install.sh
Also, you’ll need to disable thermald, as it conflicts with the fix:
sudo systemctl stop thermald.service sudo systemctl disable thermald.service sudo systemctl mask thermald.service
lenovo-throttling-fix also supports undervolting, which helps bringing temperatures down, improve battery life and increase performance. It also DOES make the system unstable, when performed too aggressively. The project README has extensive documentation on how to set it up, if you are so inclined.
Works out of the box once the BIOS Sleep State has been fixed.
If you have the WQHD screen and you find GNOME’s 2x integer scaling too large for you, I’ve got an article dedicated to fractional scaling HiDPI support on Ubuntu 19.04.
TLDR: It works well, despite not being fully integrated in GNOME.