Lenovo X1 Carbon and Ubuntu 18.04

Lenovo, Ubuntu, Linux

Update September 17, 2022
This article is severely out of date. The latest LTS Ubuntu versions have excellent support for the Lenovo X1C6. I will no longer be updating this article.

Out of the box, Lenovo's 2018 X1 Carbon is a beautiful machine. Designed with Windows in mind, it leaves some tweaking to get it working just right on most Linux distros.

This post will be updated as the OS/hardware support increases.

Better WQHD support

Linux doesn't do high resolution well, at least, not yet. We can hope for fractional scaling in the near future, but it looks like a fairly significant change way upstream.

There is hope for future fractional scaling support with these two code changes

For now, I'm making do with some hacky configurations:

  1. I'm running Ubunut 18.04 (on Gnome), install the gnome tweak tools
sudo apt install gnome-tweak-tool
  1. Under font, increase the scaling to 1.6 (or whatever floats your boat)
  2. Open Ubuntu display settings and reduce the scale to 100%
  3. In Ubuntu dock settings adjust the size to your preference

This should provide a bearable experience until we get authentic fractional scaling. The menu bar icons are still very small and some applications are difficult to use, but the majority works great.

Supporting Sleep & Battery Life

Update - September 7, 2018: Lenovo has release a new BIOS version 1.30 which provides the ability to fix this issue.

To update your BIOS on Linux run and restart your computer, the update process will take about 5 minutes:

fwupdmgr refresh
fwupdmgr update

after the update is complete restart and set your Sleep State to linux, it's located in:

Config > Sleep State > Linux

Press F10 to Save and Exit.

Warning: the below steps are not necessary, but kept for historical refernece

The X1C6 doesn't natively support the S3 sleep state. This was discussed in the lenovo forums in great detail and it doesn't look like we are getting a BIOS patch anytime soon. But that didn't stopped several hackers from making their own.

This patch updates the DSDTs to support S3 which signiticaly extends your deep sleep battery life.

Update August 1 2018 - fiji-flo creates a fancy script

Fiji-flo has created a nice little script to get this patch applied in a jiffy found here: x1carbon2018s3

Head over to fiji-flo's instructions, but cover my notes before.

Here's some of my notes on applying the patch:

  • make sure you have a recent version of iasl
  • on step five, I failed on hunk 7, not 6 as in the post but solved it using the instruction left for if hunk 6 fails (remove the 2 "One" lines in the generated dsdt.dsl)
  • in step 8, the /acpi_override that is being added is the location of the acpi_override that you copied to /boot on step 8, so this addition should actually be /boot/acpi_override

Improving battery life can be done by disabling some hardware in the BIOS:

  • Memory Card Slot (this is the most significant)
Security > I/O Port Access > Memory Card Slot
  • Fingerprint Reader (no support in Linux yet anyway)
Security > I/O Port Access >Memory Card Slot
  • Wireless WAN (I don't use this, and was concerned it would still poll the SD Card slot because they are the same)
Security > I/O Port Access > Wireless WAN