I wanted to create a post about my experience with setting up Ubuntu on my new x1 carbon 7th gen which I got a few days ago.
TL;DR
I was able to install and dual boot Ubuntu 19.04 alongside Windows 10 (which comes pre-installed) without too much difficulty. Most things worked out of the box including touchpad, trackpoint, bluetooth/wifi etc, but not everything. I had issues with sleep/suspend, battery life, heat, and I just couldn't get the Synaptics fingerprint reader to work. I was able to resolve a decent amount of the issues after doing quite a bit of googling.
Overall, I think the new x1 is very usable and works well on Linux once you fix a couple annoying issues, but I think Lenovo could really improve this experience. Lenovo should allow for an option to ship with Ubuntu out of the box or provide some sort of Linux set up guide so you don't have to rely on several different user articles in a myeriad of forums.
Battery Life
Lenovo claimed 12-14 hours of battery life for this model and several reviews attested they saw 10+ hours. However, I immediatley noticed I was only getting about 5-6 hours on Ubuntu, even though Windows would tell me I have 10+ hours at the same battery level.
I have more testing I need to do on this, but tlp is the solution I found. Its an advanced power management system for Linux which accounts for things like turbo boost. This article gives a really good overview. You can set it up pretty easily and then reboot your laptop to see the results:
$ sudo add-apt-repository ppa:linrunner/tlp
$ sudo apt-get update
$ sudo apt-get install tlp tlp-rdw
Sleep/Suspend and Wake up with Laptop's lid close/open
This one really annoyed the crap out of me. My x1 7th gen would go into deep sleep when I closed the laptop lid, and would not wake up automatically when I went to open the lid. I spent a lot of time debugging Ubuntu's suspend settings thinking that perhaps it wasn't configured properly to wake up upon lid open event. This led to check /proc/acpi/wakeup, which already had:
LID S4 *enabled
I discovered another video which said to make sure the BIOS power config for "Sleep State" was set to "Linux" instead of "Windows 10". I had an altogether different BIOS than the video:
C:\Users\bgupt>wmic bios get smbiosbiosversion
SMBIOSBIOSVersion
N2HET31W (1.04 )
A fancy new type of BIOS that even supports mouse input. But apparently my laptop shipped with an oudated version. I booted Windows and went to Lenovo's support page which has a tool that automatically updates drivers, utilities, and BIOS. This tool worked really well and updated my BIOS to N2HET31W 1.14. After this update, I set Config->Power->Sleep State to "Linux", after which closing/opening my lid in Ubuntu worked like it should :)
Fingerprint reader *still doesn't work! :(
The x1 7th gen ships with a Synaptics fingerprint scanner which is not listed on fprint's list of supported devices. I ensured my laptop had all the right fingerprint packages:
sudo apt install libpam-fprintd fingerprint-gui libbsapi
Opening fingerprint-gui, it says "No device found!" and Settings->Details->Users has no option to enable fingerprint logins. This thread leads to me to believe there's no solution currently.
That's all for now. If you own a x1 carbon 7th gen and have had some difficulty or even success with your Linux installation adventures, please do share them here.