Linux on a Lenovo T550

Categories: Off-topic, Linux

I have just received my brand-new Lenovo Thinkpad T550 with 3K screen. Here’s what I think of the hardware, and my experiences installing Linux on it.

Summary: Hardware mostly nice, with some flaws - especially the keyboard layout. Linux : mostly works, with some quirks - particularly related to the onboard graphics and 3K screen.

The Hardware

My old laptop is well past time for retirement, and the T550 (released in Feb 2015) with 3K screen (2880x1620) appeared to be the right device to replace it:

  • A 15-inch “3K” resolution screen (2880x1620) [T550 with 1920x1080 also available]
  • An open-source-friendly GPU (Intel Broadwell embedded graphics)
  • An SSD drive

The 3K screen might be a little bit of luxury, but my 7-year old laptop has 1600x1200 resolution, and I really didn’t want to buy a new system with less vertical resolution. Sadly, it is very hard to find any reasonable system, let alone one with high resolution, without an Nvidia GPU; Nvidia do indeed make the best-performing graphics chips but I do not want to use a proprietary driver under Linux. The latest generation of Intel chips (Broadwell) have embedded graphics which appears to finally be adequate for everything except serious gaming. The screen really is lovely to look at, with crisp text and graphics. Sadly, the “3K” resolution is in the 16:9 ratio which is IMO not the best for software development (or even other types of work which generally involve reading lots of long documents). Google’s Pixel laptop does offer a saner screen ratio, but only comes in a 13” variant, and internal storage is limited.

Buying the SSD drive from Lenovo was possibly a mistake; the prices for anything except the basic 128GB drive were unreasonable, so I chose that one. However in hindsight it might have been better to buy the system with the cheapest rotating drive option and immediately install a third-party SSD; 500GB or even 1TB drives are available elsewhere for not much more than the 128GB option direct from Lenovo. Note however that one reviewer of a T450 had some difficulty getting access to the internal components on that (similar) system.

In appearance, it is fairly mainstream. A little thinner than my 7-year-old 15” laptop, a little lighter, a little wider. All in all, rather old-fashioned in appearance but pleasant enough. The screen hinge is very nice - smooth action and stays exactly where it is put. The matt texture of the outer shell and the “palm rest” area looks quite nice, but does show fingerprints.

The system is generally silent, which is very pleasant. However when under moderate load the fan does turn on, and is clearly audible. It starts quite abruptly, rather like a whale coming up for air : puff before setting down to a background whine. I had hoped the fan would run less often than it does.

One thing that really does annoy me about this machine is the keyboard. The keys themselves are nice; good feel and size. However the CTRL key is not the bottom-left key as usual; Lenovo have added a “Fn” key to its left. The function-keys across the top of the keyboard are by default bound to system operations like volume-control or screen-brightness-control, and these keys can be used as traditional “F1..F12” keys only by also holding down the “Fn” key (or pressing Fn-Esc to “lock” the Fn key on). As a programmer, the CTRL key is probably the one I use most after the space-bar, and having it be small and not the first key in the row is currently rather annoying. Hopefully I’ll adjust eventually (or use the available BIOS option to swap the keys). The home/end keys are also awkwardly placed for regular use. The keyboard includes a number-pad on the right-hand side, which seems a strange decision to me - who uses a number-pad these days?

The trackpad is very large, and centered under the spacebar, which has two effects. It looks weird (due to the numberpad on the right, the spacebar is not in the centre of the computer, and so the trackpad is similarly weirdly asymmetrically placed). More importantly, due to size and placement, when I type I keep hitting the trackpad with the ball of my thumb which “clicks” randomly on the current page. Very annoying. The solution appears to be to hold the hands at 45% to the keyboard (pointing in towards the FGH keys) rather than holding them straight. Alternatively, Cinnamon has a “disable trackpad when typing” option I might try soon. Or maybe the best solution is to disable the “tap to click” feature and instead rely on the physical buttons at the top of the trackpad; only experience will tell.

The wired network port is placed on the left side near the front which is a little awkward; a connection near the rear would keep the cable better out of the way. However that’s only relevant if you use wired networking, which I presume most people won’t these days.

The speakers are mounted underneath the laptop, but still produce reasonably good sound - at least fine for viewing YouTube etc.

The larger 6-cell battery protrudes about 1 cm from the underside of case, causing the laptop to sit tilted on a flat surface. This is actually a bonus; the slight angle is good for typing - and might even keep the system a little cooler (better airflow underneath).

Linux

Note: The BIOS can be accessed by pressing “enter” immediately after restarting. There is an option to disable “secure boot” which I immediately turned off (Security|Secure Boot), though I believe that most major distributions can work with secure-boot enabled these days. While there, you may wish to enable CPU virtualization extensions (Security|Virtualization) to improve VM performance.

My regular distro is Linux Mint with the Cinnamon desktop - a traditional interface similar to Gnome2.x or Windows prior to v8.0. I therefore briefly tried the following mainstream distros:

  • Linux Mint 17.1 with Cinnamon desktop
  • Ubuntu 15.04 with Unity and with Cinnamon
  • Fedora 22 beta-2 with Gnome3 and with Cinnamon
  • Debian 8 (Jessie) with Gnome3 and with Cinnamon

As the Broadwell CPU and its embedded graphics is so new, the later the software the better - but at least Kernel-3.16, Mesa 10.2 and Intel graphics driver 2.99.* are required for accelerated graphics.

Linux Mint has the latest Cinnamon desktop but otherwise is based on Ubuntu 14.04 LTS, and thus fails in all of these areas. The fallback “software rendering” works surprisingly well; the installation process runs fine, the cinnamon desktop functions fine and the 3K screen resolution is handled elegantly. Nevertheless, the lack of accelerated rendering makes this unviable. It is possible to upgrade the kernel to 3.16 via the usual package admin tools, but that wasn’t sufficient to avoid software rendering. Presumably an updated intel graphics driver could be added somehow (see comments on Debian stable), but I haven’t tried that on Mint. The cinnamon desktop used the full 3K resolution, ie icons were rather small, but text is apparently scaled up by default resulting in quite an effective use of the screen - unlike when installing the cinnamon desktop package on top of other distributions (see later).

Update 2015-08-07: Ubuntu have released an update to 14.04 LTS (14.04.3) which uses the kernel and X stack from Ubuntu 15.04. Hopefully Mint will make a release based on this, in which case the behaviour of Mint should be similar to Ubuntu 15.04 as described below!

The Ubuntu 15.04 installer without problems, and handles the 3K resolution acceptably by scaling everything by 2 thus effectively giving a resolution of 1400x800. The default Unity interface also runs with everything scaled up by 2 initially, which was not really the desired behaviour for an expensive screen. The scaling can be modified via the Settings | Display configuration window, and reducing scaling to 1.2 or 1.4 gives really nice results. The Unity interface appears to handle a high-resolution screen much better than anything Gnome-based; both text and icons scale and I found no problems in the 10 minutes I spent playing around. I then installed the cinnamon package and logged in under that desktop; sadly things didn’t go so well. There was initially no background image (pure black), which is easily fixed. However the text for desktop icons is black rather than white, and more significantly many icons are missing from the menus; I have no idea why the “standard” package for cinnamon went so wrong, but didn’t investigate much further. The (gnome-based) cinnamon setup also defaults to scaling everything by 2x; this can be changed via menu Preferences|General. Scaling with Gnome-based desktops sadly doesn’t have the flexibility that Unity offers - you get only integer scaling factors - ie 1x or 2x. However the primary problem with 3K resolution is reading text, and fortunately text can be scaled separately; setting overall scaling to 1x and then with the Settings | Font dialog scaling text up to somewhere in the range 1.2->1.4 results in a reasonable compromise with one exception : web-browsing. See later for comments on web-browsers.

Fedora 22 (beta-2 at the time I tested it) also installs fine - and also by default scales everything up by 2, to an effective resolution of 1400x800. This is sufficient for the installer anyway. I haven’t tried Fedora in a while, and while its installer is acceptable the Ubuntu installation process (also used by Mint) is definitely more user-friendly. The default Gnome3 desktop works acceptably in doubled-resolution. Turning off the default scaling can only be done by first installing gnome-tweak-tools. Fonts can be scaled as described above for Ubuntu with Cinnamon. Installing the cinnamon package and logging back in results in a nicely-configured cinnamon desktop - actually the best-packaged cinnamon of any of the distros except for Mint. I found no significant problems other than web-browsing (see later), and Fedora+Cinnamon appears to be quite a reasonable option.

As Debian have just released new stable version 8 (“Jessie”), I gave that a spin too. The kernel is at 3.16, and Mesa at 10.3.2, so both are sufficient for Broadwell graphics. However the version of the xserver-xorg-video-intel driver is not new enough to get accelerated graphics on Broadwell. It appears that the person who packaged the driver disliked Intel’s version-numbering (2.99.x) and refused to include it. I agree that Intel should have made a release with a proper version-number, but all other Linux distributions have included it without apparent problems; I guess that’s just Debian politics. Fortunately, the driver can be installed by enabling the “experimental” repository and pulling it from there (hopefully at some future time the driver will be available via the backports repository instead). I had one minor problem during installation - the graphical installer indicated that the wireless networking on the T550 requires ‘proprietary firmware’. As I have no nearby wired connectivity, that was somewhat tricky. Finding the driver is fairly easy, and supposedly it can be loaded from a USB stick during the installation process, but I could not get that to work. Fortunately Debian provide an alternate installation medium with proprietary firmware included, and that worked fine. Debian’s graphical installer is somewhat less elegant than in either Fedora or Ubuntu, but still acceptable. The default Gnome desktop starts in “software rendering” mode, but is nevertheless useable. After installing the necessary intel graphics driver and restarting, everything is pretty similar to the experience with Fedora. Unfortunately, installing Cinnamon rather resembled the experience under Ubuntu - missing background, desktop icons with black text. However all icons in the menus were there, and so after adding a suitable background image things were acceptable. As with all the other distros except Mint and Ubuntu+Unity, the best settings for the screen were to disable the auto-scaling and instead scale the text only (hidpi scaling can be disabled via menu Preferences|General).

Speculation : the cause of the problems with cinnamon display might be a mismatch between the cinnamon version and the theme; those two distros with cinnamon 2.4 (mint and fedora) work fine, while Debian 8 comes with cinnamon 2.2. Sadly the “install theme” tool offers all available themes, and it doesn’t appear to be possible to tell which themes have been designed for which cinnamon version except if the author nicely put that in the comments.

Web Browsing with 3K Resolution

A common problem with the approach of disabling GTK’s 2x scaling and instead scaling text only is that Firefox does not respect the text scaling; web pages are almost unreadable.

Firefox does have an option to set the default font size, but this has almost no effect - most websites specify a specific font-size rather than using the old “small/standard/large” options. Firefox also provides a “set minimum font size” option which is moderately successful; choosing font-size of 20-24 makes most websites readable. There are however some places where this causes problems; in particular, some websites have a horizontal menu-bar on their pages and these can get badly mangled. Even worse, some of these menubars trigger drop-down menus when the mouse passes over them and these can get very confused when their requested font-size is overridden; one particularly bad example is the java.oracle.com page for downloading Java. A few other sites set the max-width of their content which results in a narrow strip of content in the middle with massive margins on each side, but most are acceptable.

Update: A far better solution is to open the Firefox “about:config” page and override the value for “layout.css.devPixelsPerPx”. Setting this to “1.5” works very well for me on this 3K screen. A shame this isn’t the default…

Installing Latest Intel Graphics Driver on Debian Stable

Edit /etc/apt/sources.list (or use the GUI alternative) and add:

deb http://ftp.debian.org/debian experimental main

then execute

apt-get update
apt-get install xserver-xorg-video-intel/experimental

Enabling the “experimental” repo will not interfere with normal updates; the master Release file in the experimental repository sets NotAutomatic=yes which causes apt to assign priority=1 to all packages from this repository, ie the other repos override this one unless the experimental repo is explicitly specified or the package exists nowhere else.

Update: Sadly there appear to be problems with just installing the latest xserver-xorg-video-intel driver (2.99.917-1~exp1). It works well initially, but after a few resume-from-hibernation operations, performance drops radically; I can’t find any obvious errors reported and glxinfo reports that the intel driver is still active but performance is not much better than software-rendering. In addition, the following serious warning can be seen in the kernel logs (even when performance is reasonable):

[drm] stuck on render ring
[drm] GPU HANG: ecode 0:0x00dfffff, in Xorg [4932], reason: Ring hung, action: reset

Update2: I installed kernel 4.1.0 from source recently, and the slow-graphics-after-a-while problem no longer occurs.

Other Issues

The trackpad comes with 3 buttons at the top, and the track-area itself can also be pressed to click. Currently the left- and right-click buttons are for some reason performing “scroll” operations instead of clicking, and the middle button has no effect at all. Pressing the trackpad to click works, as does tap-to-click (though I have disabled this due to it being triggered too often by my palm while typing). Scrolling via either swiping the edge or two-finger-swipe both work (selectable via settings dialog).

Other Reviews

There is another review of a similar system which you might find interesting.

Useful Tools

Things I found useful for verifying graphics drivers and performance:

  • glmark2
  • glxinfo