Experimenting With Ubuntu On A Lenovo Yoga 3 – 11″ Convertible Touch-PC

Every now and then it would be great to have a full operating system on a tablet rather than Android or another mobile optimized and castrated replacement that is just too inflexible for my taste. From some reports I've seen over time I was aware that Ubuntu has some sort of touch screen and on-screen keyboard integration but little is written about it. Recently, I came across the Lenovo Yoga 3 – 11" that has a 360 degrees rotatable keyboard and a touch screen. It can be used as a Laptop, as a screen only with the keyboard as a stand and in a full "tablet" like mode with the screen rotated 360 degrees so it rests on the backside of the keyboard. That sounded interesting and it's price tag of €599 fit my idea of what I would pay for such a device. But would it run Linux in a way that the device is usable in a non-keyboard mode? I tried hard to find more information on the net but came up pretty much empty handed. So I decided to give it a try myself as some of the stuff that I found at least indicated that it could work. After about a week I'm ready to give you an account of how it went from me, so here we go. It's going to be one of those long blog entries so if you only care for the summary, jump right to the end the post. Otherwise just read on for the nitty-gritty details of my adventure.

The Hardware

Let's have a look at the hardware first. Apart from it's 360 degrees rotatable keyboard the Yoga 3 – 11 has a screen resolution of 1900×1080 pixels. On an 11 inch display that almost looks "Retina" like. Further, my device came with 4GB of RAM, 128 GB SSD, 1 USB 3 port and 2 USB 2 ports of which one doubles for charging with a special connector. Other configurations with more RAM and a bigger SSD are available as well. To make it light and fanless (!) Lenovo uses an up to date Intel Broadwell dual core multi threading "Core M-5Y10c" that runs at 0.8 GHz with bursts up to 2+ GHz. For further details have a look at this detailed review over at notebookcheck.com.

Installing Ubuntu 15.04

As the processor and the device in general is pretty new and even the review linked to above is only from April 2015 I decided not to install the current Ubuntu LTS (14.04) but take the latest version of Ubuntu, which currently is 15.04, with the latest supported Kernel of that version, which is Linux 3.19. Before installing, I booted Clonezilla from a USB stick after disabling secure boot in the BIOS to make a backup of the existing and entirely unused and not even booted once Windows installation on the SSD, just in case. The Yoga 3 has a small key on the side of the device that needs to be pressed with a pen to start the BIOS settings when the device is off. It's a little bit unusual but I can see the advantages of the approach over frantically searching for the right function key to press to enter the BIOS settings after having switched-on the device.

While the backup was running I downloaded a copy of Ubuntu 15.04 and put it on a really fast USB 3 Flash memory stick. I then booted Ubuntu 15.04 from the memory stick and as it's a fast stick it booted to the desktop in just a couple of seconds. I had a quick check of the suspend and resume functionality since this is a critical thing for me and it was working. However that's just a first indication that guarantees nothing as we shall see later. One thing that wouldn't work out of the box is the on-board Wi-Fi but I was already aware of this and was reasonably certain I could make that work later on. Consequently I used an Ethernet to USB adapter so 3rd party add-ons and OS updates would be downloaded automatically during the installation process. Absolutely breathtaking, a full Ubuntu 15.04 installation from the fast USB Flash stick including the download of several hundred megabytes of 3rd party add-ons and patches took less than 10 minutes. Yes, 10 minutes!

First Steps in Ubuntu 15.04

Booting Ubuntu on the Yoga 3 with it's SSD takes around 10 seconds. I didn't time it but it's just as fast as on my other SSD based devices. Next I had a closer look at the Wi-Fi card and quickly found a driver that can be downloaded and installed with a couple of commands. DKMS makes sure it's automatically included when a kernel update is done during a normal update process. Thanks to Adam Lee who seems to work for the Ubuntu/Canonical hardware enablement team for the terrific work!

Keyboard and Touchpad

Concerning usability, the keyboard's size is pretty standard so 10 finger typing works well. Due to the limited height of the device, however, the key-lift is quite small and typing is not as comfortable as on a more standard keyboard. The Yoga 3 shares this disadvantages which other devices in its class. As I'm German, my device came with a German keyboard layout and unfortunately, the ' key has been moved away from its normal place to somewhere above the enter key. While for German text this is not a problem, it's a bit of a hassle when typing English text. Also inconvenient is the missing key at the top right to jump to the beginning of the current line, something I use quite often. And yet another inconvenience for me is that by default the overlays of the function keys to adjust sound volume, brightness etc. are reachable without a modification key. This can be changed in the setup but if done, the functions are not usable anymore in Ubuntu. So I have to chose between two evils. I chose to give up the F-keys, which work in combination with the ALT-modification key but I don't think I can get used to pressing ALT on this keyboard while not pressing ALT on others. And while we are on the input side, the touchpad works fine, also for 2-finger multi-touch do drag web pages and other things up and down the screen without the clicking on the slider on the right side of windows. Also, as a Thinkpad user I would prefer the touchpad keys at the top close to the keys rather than at the edge. Again, a personal preference.

Processor Speed and Video Playback

While the Yoga 3 11", and I keep pointing out the 11 inch as there are other variants available as well, especially the Yoga 3 Pro, which is a completely different device, feels very snappy overall the Core M processor is actually quite slow. The SunSpider 1.1 test takes 630 ms to complete, which is three times longer than what my 2 year old i3 based Thinkpad takes to execute the performance test. But I didn't notice this at all in day to day usage at all as other components, especially the GPU help a lot to make web browsing, word processing and other non-processing intensive activities very smooth. Full screen HD content on Youtube plays smoothly but I had some problems with Netflix in the Google Chrome browser which often showed shear when the camera moved sideways. Strangely enough, video quality was absolutely o.k. when the video played in a window, even if the window was extended to the full screen size except for Ubuntu's and Chromes status and window bars.

Touch Screen, Multi-touch and Rotation

One of the main questions I had before running this experiment was if and how well Ubuntu supports touch screens and devices without physical keyboards, i.e. with the Yoga 3 in video or tablet configuration when the hardware keyboard is of little use and even deactivated in full tablet mode to prevent unintended key presses. It turned out that Ubuntu 15.04 supported the touch screen very well and the on screen keyboard functionality is quite intelligent as well as it can be configured only to show the keyboard when text input is expected. Once enter is pressed the keyboard fades away until the user again taps on a window that waits for keyboard input. Also the on screen keyboard recognizes when the hardware keyboard is used again and doesn't pop-up automatically anymore. And finally, the on-screen keyboard can be resized and moved and even moves by itself when input is expected by a window the user clicks on that would be under the keyboard. Well done!

One thing that doesn't work is automatic rotation of the screen when the user flips the Yoga 3 in tablet mode from landscape to portrait mode. Shell commands launched via icons can do the trick, however. It's a bit of a kludge but something I can live with. Ubuntu also recognizes 2 finger multi-touch on the screen but it depends on programs what they do with it. By default Firefox doesn't do anything with it but there's a nice add-on that adds the functionality. After that, scrolling up and down on a web page works like one expects on a tablet.

Built in Camera and Video Telephony

Another important application for me is video telephony. Ubuntu supports the camera out of the box and Skype uses the camera without any further configuration. Video calls are smooth and the image on both sides is good, nothing there to complain about. The audio connector works as well but I only tried with headset without a microphone so I'm not sure if that's supported as well. There are volume hardware keys on the side of the Yoga 3 11" as well which work as they are supposed to and are probably most useful in tablet mode.

Suspend/Resume

So far, so good. Next I gave the suspend and resume functionality a closer look. Unfortunately I noticed that every now and then, a resume would end up with broken fonts being displayed and used thereafter until a reboot. I tried if installing 4.0 and 4.1 kernels would fix the issue but unfortunately it didn't. It seems to happen quite randomly as sometimes I would be able to suspend/resume 20 times before I saw it happening while after some reboots it would appear already after the third or fourth time. Also, the screen remained black sometimes while I could still switch to the text consoles via the function keys or the system froze completely while resuming. That's real deal breaker so I invested a lot of time to see if anything can be done about it. I search forums up and down and even installed Ubuntu 14.04 LTS to see if the issue would go away. It didn't and after a couple of days I had to admit defeat on that front.

Strange LibreOffice Behavior

Another think that kept me puzzled over many hours was LibreOffice's behavior. While I was editing a spreachsheet that had lots of cells with a lot of formatted text inside, Calc would either crash on me entierly after a while or it would suddenly become very slow when moving to a cell with a lot of text with the cursor keys. When looking at memory consumption in 'htop' I noticed that when this happened, Calc started using enormous amounts of memory each time I went into such a cell. At some point when calc became almost unresponsive it had accumulated almost 2 GB of RAM. I save the file and tried on another Ubuntu 15.04 installation with the same LibreOffice version but I could neither replicate the crashes nor the memory consumption there. Again I spent several hours going after this and could finally fix it by installing the brand new LibreOffice 5.0. But I could never find out why Libreoffice 4.4 behaved so strangely on this machine while it was just working fine on another.

Swap Partition always gone in Ubuntu 14.04

And while we are talking about the things that just don't make sense, I couldn't get the encrypted swap partition working when I installed Ubuntu 14.04. After every reboot the swap partition was no longer recognized. I could recreate it manually in 'gparted' and adapt the 'fstab' and 'crypttab' files but after a reboot it was again not recognized. Again something I've never experienced on any other PC I've installed Ubuntu on and it have been quite a few.

Summary

Despite the less then ideal hardware keyboard and touchpad, which are the only negative points for me on the hardware side, I really fell in love with this machine. I found Ubuntu very usable in tablet and video stand mode, the on-screen keyboard and touch-screen support is great. Apart from the strange Libreoffice issues that I could fix by installing version 5.0, all programs I use on a daily basis ran well despite the slow Core M processor and I did not notice a speed difference compared to using them on my i3 based Lenovo E330 laptop. The deal breaker unfortunately were the issues around suspend/resume. I don't like defeat but after dedicating several evenings to the problem I decided it was not worth further effort. As it doesn't happen too often I decided to live with it and hope that things will be fixed in a future kernel version.