If you consider yourself a user, not a tinkerer, the number one rule of running GNU/Linux is not even to try it except on hardware that others have already tried with complete success. (Do not buy a laptop, desktop, or server thinking that you will be able to work around any hardware compatibility challenges.)
At McGill we are offered a subsidised laptop from a menu of two options: a Lenovo X230 packed with Microsoft software and bundled with its docking station, or a Macbook Pro. I was not very interested in the former until a glance at the googlewikiweb suggested that things had changed since I had last checked, and that Ubuntu now animated the X230-tablet well out of the box, and with no remaining hard-to-solve issues. So I got one.
Alas, that web-research of mine was rather hasty and people’s written claims optimistic. Despite the long-time existence of the highly-tuned Emperor Raven, the X230Tablet and Ubuntu turn not to love each other yet, and I have not got all the key features of this hardware working properly. Nevertheless, it’s usable as a laptop.
I’ll leave it to other reviews to cover the X230T hardware. It’s nifty, especially with its docking feature, but is not lightweight. Here I will recount what I have done to install Ubuntu 13.04 and where I got stuck. I am entirely wedded to GNU/Linux (ie, it’s all I know) and this is my new primary desktop/computation/teaching machine, so I just want it to work. I don’t enjoy the fiddling, but I think I’ve had to fiddle already with this hardware.
My hardware configuration
I have the X230 Tablet with the 500GB conventional hard drive, 16GB of RAM, and the docking station. In my office, I am usually using an extended desktop between the laptop and an external monitor which is oriented in portrait mode for easy reading of PDFs. I have an external Wacom Bamboo pen/finger graphics tablet.
Generic installation and personal setup
The initial installation of 13.04 and 13.10 from USB media both worked smoothly and took only a few minutes (wow!).
I began by doing an update and installing some of my basic software:
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install nautilus-dropbox lyx ipython autofs python-pandas python-rpy2 git htop meld auctex linphone tmux curl icedtea-7-plugin inkscape virtualbox-guest-additions-iso wine banshee virtualbox gimp feh libreoffice-java-common chromium-browser cifs-utils smbclient sudo apt-get install muse-el cheese xournal vlc python-pip pdftk sudo apt-get install ssh
Some non-apt python packages I need:
sudo pip install pysal sudo pip install svgutils
Some things I need for my email client: (I find Ubuntu’s latest version of offlineimap buggy, so I downloaded Debian’s copy of an older version (6.3.4) which seems to work.)
sudo apt-get install dovecot-common alpine offlineimap dovecot-imapd gnome-schedule curl
At McGill I set up campus printing.
I also changed my account settings for auto-login coupled with auto-screen-lock upon login.
X230(T) particulars: tablet, rotation, etc
So many things work beautifully out of the box in 13.04, it should be noted, like wifi, camera, touch and pen inputs in standalone laptop mode, basic display across one external monitor, fan throttling, one of the two screen rotation buttons, audio, volume keys, sound output mute, etc. (But in 13.10, display via external projectors did not work properly!)
There are lots of trails on the web (Active Rotate, tabuntu, tablet-screen-rotation-support, Magick-rotation, a “rotation how-to”, …) to different packages and custom scripts for setting up rotation buttons or automatic sensing of going into tablet mode.
A basic problem is that mapping of finger inputs, pen inputs, and graphical display are all separate. So each can be mis-rotated or mis-located.
Our minimal goal is to get the display and inputs to notice when we swivel the display into tablet mode (or back again), and when in tablet mode to: (1) turn off the trackpad (which otherwise goes beserk from being touched by the back of the screen), (2) bring up a virtual keyboard for character input, (3) rotate the screen to portrait mode (to start with), and (4) rotate the pen and touch input maps. Other things would be nice, like having the tablet rotation mode buttons working to go between landscape and portrait when in tablet mode, and so on.
I think the right way to go in mid/late 2013 is to install Martin Ueding’s think-rotate package:
sudo -s add-apt-repository ppa:martin-ueding/stable apt-get update apt-get install think-rotate
At this point, features (1) through (4) all work fairly nicely, as well as automatically undoing them when I swivel out of tablet mode. This also makes the little red button/light next to the undocking lever work to initiate electronic disconnection. [Edit: actually, they do not work well enough even with this best option. Further fixes and/or tweaks (or an alternative) may be necessary before being usable; see remaining problems, below.]
There is a one-time setup required for training some applications about the eraser on the back of your stylus:
- Gimp (if you use it) needs to be told that there is an eraser on the back of the stylus. This is as easy as going to Edit->Preferences -> Input devices, and and turning the eraser input device from “Disabled” to “Screen”. For both the X230 stylus and my external Wacom tablet, the pressure sensitivity of the eraser works immediately.
- Similarly, if you use Inkscape, use File->Input Devices, and change the settings from “Disabled” to “Screen” for your stylus(es) and eraser(s).
14.04 and 14.10: As seems to be the norm for the first year of each recent distribution from Ubuntu, when I installed 14.10 I had too many problems to recount or to suffer. Occasionally I updated it and tried again, but problems only gradually disappeared. By late February 2015 I find it usable (indeed, excellent, except for all the stuff listed below) and similar in performance and problems to 14.04. Also typical of recent versions from Ubuntu, updates have remained frequent for the LTS and they sometimes break things for a while.
- The keyboard backlight does not work! This is a major drawback given the new hardware features of the X230T (no above-screen headlight). For instance, the following does nothing for me:
echo 255 > /sys/devices/platform/thinkpad_acpi/leds/tpacpi\:\:thinklight/brightness
- Horizontal (two-finger) scrolling is not offered on the touchpad settings in Ubuntu anymore. I’m not sure why not, but this command deals with that forever:
gsettings set org.gnome.settings-daemon.peripherals.touchpad horiz-scroll-enabled "true"
- However, how do I accomplish the same thing for 2-finger scrolling on the touchscreen?
- Sometimes when I dock at work, it does not jump automatically into my proper extended desktop configuration. I have a command line alias to force it there quickly (using xrandr) for these occasions. (Seems no longer a problem under 14.04, 14.10)
- When I boot at work, the touchscreen is mapped to the extended desktop, not to the screen it’s on! The pen is okay. I dealt with this by adding the following to the alias mentioned above. It tells the pen to map itself to the same area used for the internal display:
xsetwacom set "Wacom ISDv4 E6 Finger touch" MapToOutput LVDS1
Ideally, that alias would be tied to a docking event, automatically.
- Cursor movement is not entirely smooth when driven by the trackpad. This didn’t bother me until it was pointed out, but it really ought to be fixed. There’s a workaround at https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/1042069 (Problem unchanged on 14.10; workaround not yet tried.)
- Also, two-finger scrolling from the touchpad isn’t smooth: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/1111853 (Problem unchanged on 14.10; workaround not yet tried.)
- What about all the multi-touch gestures you might imagine would be available? For instance, I’d certainly like to be able to switch between my virtual workspaces/desktops using two (or more) finger swipe on the Desktop. And I’d like to be able to bring up menus of workspaces or of applications with, say, a four-finger tap. How can I get these things working? Maybe start here??
- Tablet mode: Also, when in Tablet mode, Unity’s auto-hiding “launcher” side bar doesn’t come up when the cursor approaches the edge. That is debilitating, especially without any multi-touch gestures to use (well, a workaround at least to access all desktops is to use Super-s on the virtual keyboard to show all the desktops). I think I’d like to be able to set the Launcher not to auto-hide when switching to tablet mode, and to turn auto-hiding back on when leaving tablet mode. [Update: this is now possible, and incorporated as an example customization, in think-rotate] (I have not bothered trying tablet mode under 14.04, 14.10)
- Tablet mode: When moving a window from one desktop to another by dragging it to the edge (against the edge resistance which helps offer a resize-to-half-screen behaviour), I don’t find it possible to move only one to the right or left; instead, it always moves many desktops at once.
- Tablet mode: Actually, the think-rotate functionality seems flakey and may get confused as to which direction the swivelling is going. It might be nicer to find a way simply to set one of the rotate buttons to do all the changes when pressed, rather than triggering automatically. [This problem has disappeared with recent think-rotate updates]
- Tablet mode: The stylus cursor does not always match up well with the stylus’ position in tablet mode.
- [SOLVED] The fingerprint reader does not work at all. On earlier Lenovo models (like T410s) it did work. Update: a driver has been released. Do this:
sudo add-apt-repository ppa:fingerprint/fprint
sudo apt-get update
sudo apt-get install libpam-fprintd libfprint0 fprint-demo gksu-polkit fprintd
The lines above (enter them one by one) end in a command that will require you to swipe your index finger 5 times in a row, to train the system. The penultimate line will also require you to confirm the suggestion.
- Under 14.04 and 14.10, closing the lid to send the laptop to sleep only works sometimes. This can lead to dangerous overheating and battery usage if you’re closing it to put into a bag or leave for a while. I’ve tried BIOS updates, etc.
- Worse, even telling the computer to shut down is not reliable. Some of the time, it will automatically reboot (immediately) instead of shutting down. Similar bad consequences to the sleep problem.
- Since I have the fingerprint reader working nicely (I prefer not to type passwords in public), there is one remaining problem. Most of the time after waking from sleep, the machine is hung for ~20 seconds claiming to be waiting for a fingerprint (https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/1300462), though the fingerprint reader is not activated (in fact, while waiting, the fingerprint reader seems unavailable even if I switch to a tty session to log in there). After that, it eventually goes to asking for a password (whereupon I press enter, and get the option of the fingerprint) .
- I replaced my hard drive with a solid state model (MX100) which apparently is not compatible with the tlp package (power management). I got spontaneous complete hard drive failures until I removed tlp (both 14.04 and 14.10).
- There is a 10-20 second delay in the effect of using the brightness toggle function keys.
- Some more general Ubuntu-related software problems:
- Under both 14.04 and 14.10, I get spontaneous unity settings daemon crashes which sometimes make all my hotkeys stop working.
- Under 14.04, banshee crashes as frequently as every 5 minutes.
I believe these problems (not the 14.x ones) are all similar on 13.10. There were other problems (bugs) that I experienced in the initial release version of 13.10, such as failure to twin display across the laptop and an external projector, but they seem to have been resolved.
Conclusion and comments
This machine should NOT be certified as compatible with Ubuntu until the most basic hardware features (such as backlight, tablet transformation, behaviour with external displays), which make the X230T what it is, are taken care of by the distribution. I hope by the next LTS they have invested in the details for all the higher-end models they can. They probably ought to know from Tesla as well as numerous other business models that rolling out first on the flashier end of the market is good for uptake.
Remember that Microsoft’s profits are aided by countless person-years of work at all the hardware companies, every year, every release, helping Windows work with their hardware. I do hope one day those hardware firms will have reason to distribute their efforts a little more broadly. In the mean time, I hope that this page may help for a period to collect and maybe address remaining problems for Ubuntu on the X230T (though it is already a discontinued/outdated model within two months of writing this blog).