comment 0

Running Ubuntu 18.04 on a ThinkPad X1 Carbon 6th Gen

This post is meant to serve as a note to my future self in case I need to setup my laptop again, but I’m sure it’ll be useful to many other ThinkPad X1C6 users, judging from the Lenovo forums. The goal is to aggregate all the steps required to make the laptop run Ubuntu smoothly in an easy to follow list.

Abstract

Although Lenovo has a reputation for running Ubuntu flawlessly, certain updates to the hardware have caused issues on the 6th gen X1, and the 3rd gen Yoga.

Problems

  • Touchpad buttons, TrackPoint and right button action don’t work
  • Battery is drained at around 2-4%/hour while laptop in suspended mode.

Solutions

  • Touchpad buttons, TrackPoint and right button action don’t work. Solution found here:
    • Comment out i2c_i801 line from /etc/modprobe.d/blacklist.conf.
    • Add psmouse.synaptics_intertouch=1 to boot options in /etc/default/grub. Line should look something like this:
      GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psmouse.synaptics_intertouch=1".
    • Save file and run sudo update-grub so that the config file is regenerated.
    • Although this is enough to get it working, sometimes the TrackPoint is dead after resume, so we need to fix that. Add this script to /etc/pm/sleep.d/20_reset_trackpoint (gets executed every time the system resumes from sleep).
  • Battery is drained at around 2-4%/hour while laptop in suspended mode. The problem here is that Lenovo removed BIOS support for S3 mode in favor of Windows Modern Standby. We need to patch the ACPI table to add back support for S3 deep sleep mode.
    • Follow instructions in https://delta-xi.net/#056, but with updated patch.
    • Add mem_sleep_default=deep to GRUB_CMDLINE_LINUX_DEFAULT boot options in /etc/default/grub.
    • Run sudo update-grub again and reboot the laptop.
    • Enter BIOS setup:
      • Set Thunderbolt BIOS Assist Mode to Enabled.
      • Security - Secure Boot must be disabled.

Optional changes in Ubuntu configuration

In case you’re dual-booting with Windows, as I am, make GRUB remember last OS booted, by editing /etc/default/grub with the following changes:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

As usual, run sudo update-grub once you’re finished.

To set area click method, run gsettings set org.gnome.desktop.peripherals.touchpad click-method 'areas' in the terminal.

Filed under: IT

About the Author

Posted by

Go Core Team Lead @ Status.im (remote), previously Windows Team Lead @ Plex (remote), Architect, Codebase Whisperer, DevOps enthusiast, Continuous Learner