Ubuntu 15.10, Thinkpad Carbon X1

WARNING: Right after upgrading I started getting kernel panics 1-3 times per day. This is definitely a problem with the 4.2 linux kernel, as Ubuntu 15.04 with kernel 3.19 (the last version 3 kernel) was rock solid running for weeks at a time under heavy usage, many suspends/wakes, plugging and replugging into docking stations, etc. all without rebooting. I always keep the prior version of the kernel installed, so for me, the solution is to keep Ubuntu 15.10 but select kernel 3.19 in Grub when booting.

Now for the rest of the original post…

I run Xubuntu on most of my computers both at home and at work. Version 15.10 just came out and I’ve upgraded all of them. On a desktop you might not notice much difference. On a laptop it’s got some good stuff you might like.

The biggest difference from 15.04 is the kernel. 15.10 uses kernel 4.2 instead of  kernel 3.19 which 15.04 uses. This new kernel supports the power saving modes of Broadwell processors and micro-hardware appearing on modern laptops.

Another benefit of 15.10, again for laptops, is that tlp is fully supported and in the Xubuntu standard repos. And its default settings work well. It auto-detects when the X1 is plugged vs. running on battery and it extends battery life by a couple of hours – 4-6 hours becomes 6-8 with normal use and screen constantly on.

A bit about tlp… while it comes pre-configured with good default settings, you should check a few things to ensure you’re getting the most from it. Here’s a good tlp reference site to start. Now here’s an important tip from that site, specific to Ubuntu:

First, you must deactivate Ubuntu’s normal CPU controller: sudo update-rc.d -f ondemand remove. This allows TLP to adjust the CPU speeds.
This command reverts this change: sudo update-rc.d ondemand defaults

Use this command to check whether TLP can control the CPU speed: sudo tlp-stat -p. If it says x86_energy_perf_policy: program not installed, then you need to install linux-tools-generic, and ensure the version matches your kernel.

Another thing you should do is allow the CPU speed to vary. The default settings do not. Edit the file /etc/default/tlp as root, and change 4 lines. First, they’re commented out, so un-comment them. And, put in numeric values for your processor.

CPU_SCALING_MIN_FREQ_ON_AC=1000000
CPU_SCALING_MAX_FREQ_ON_AC=3200000
CPU_SCALING_MIN_FREQ_ON_BAT=500000
CPU_SCALING_MAX_FREQ_ON_BAT=2000000

As you can see, I’ve used a lower top speed on BAT, and a  higher bottom speed on AC. This limits performance in favor of battery life, but not too much, while letting it slow down on AC, to save energy or charge faster. However, TLP will only use the higher speeds when the processor is active, so setting higher values won’t necessarily shorten battery life if the machine is idle. That said, TLP allows higher clock speeds liberally even when in powersave mode, so limiting the CPU top speed while on battery does extend battery life.

NOTE: any changes you make to the TLP config file will take effect when you enter the command: sudo tlp start. You can run this command even if it’s already started.

On Ubuntu 15.10 Kernel 4.2 all this happened automatically and everything worked. But when I had to revert back to kernel 3.19, my battery life suffered because TLP was no longer controlling CPU speeds. I had to reinstall linux-tools-generic version like this: sudo apt-get-install linux-tools-generic=3.19.0*, which reverted the version back to match the kernel.

A bit about Xubuntu…

I’ve done 2 in-place upgrades (from 15.04) and 1 fresh install. All went smoothly.

Why Xubuntu? it’s my favorite Linux distro because

  • It’s Ubuntu – the most popular distro with the most complete and up-to-date repositories.
  • It uses the XFCE desktop, which is smaller (both in RAM and disk), faster, more reliable than Ubuntu’s Unity desktop.