My Site
Categories
Ubuntu 14.10 and the Lenovo ThinkPad x250

I recently purchased and received a Lenovo ThinkPad x250 and immediately proceeded to install Ubuntu over whatever version of Windows it came with.

Unfortunately, not everything works out of the box (multiple monitors using the ultradock, sound with external speakers and the ultradock, 3d video, and the trackpoint buttons). It's not very surprising, as these machines were just released in the US last week, and I'm sure the next version of Ubuntu will have much better support for them. In the mean time, however, I did get some things to work, and I'm providing some instructions for those here.

Multiple Monitors using the UltraDock

I've always loved ThinkPads, and most of my laptops have been one, but it's only been recently that they've been enough to replace my desktop needs. That happened for me because of the UltraDock, which allows you to use multiple monitors with your laptop. On my T410 (which had a different ultradock), it just worked out of the box. With the x250 and it's dock, X would see both monitors as one large monitor. This is because the new dock uses a DisplayPort 1.2 feature, which didn't make it into the Linux kernel until 3.17 (Ubuntu 14.10 uses 3.16). Following this guide fixed the problem for me, with one change. I used the 3.18.7 kernel instead of 3.17.1 as he describes in the article, because 3.18 just happens to help fix the trackpoint button problems as well.

Trackpoint Buttons

Doing what I describe here will make the trackpoint buttons work (including middle click scrolling), but it will completely disable the touchpad. I'm ok with that, touchpads aren't my favorite. First, follow this guide to update your kernel, but instead of 3.17.1, use kernel 3.18.7 instead. (If you're feeling brave, I've got precompiled debs here). Edit /etc/modprobe.d/psmouse.conf and add the following line:

options psmouse proto=imps

Update: Putting options psmouse=imps in /etc/modprobe.d/psmouse.conf seems to do nothign. Instead, add psmouse.proto=imps to your kernel cmdline, as directed below in the "Volume Control and Backlight Brightness Keys".

Then, create a file at /usr/share/X11/xorg.conf.d/90-evdev.conf

Section "InputClass"
 Identifier "Touchpad/TrackPoint"
 MatchProduct "PS/2 Synaptics TouchPad"
 MatchDriver "evdev"
 Option "EmulateWheel" "1"
 Option "EmulateWheelButton" "2"
 Option "Emulate3Buttons" "0"
 Option "XAxisMapping" "6 7"
 Option "YAcisMapping" "4 5"
EndSection

Restart your X server, and your trackpoint buttons should work as expected.

Volume Control and Backlight Brightness Keys

To get the volume keys to work, I had to pass acpi_osi=Linux to the kernel boot options. Also, to get backlight control to work, add acpi_backlight=vendor as well. In /etc/default/grub, my GRUB_CMDLINE_LINUX_DEFAULT looks like this:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor psmouse.proto=imps"

After making those changes, run update-grub and reboot. This made the multimedia keys work for me, but the brightness controls still did not work. I installed a program called xbacklight and mapped the brightness controls to xbacklight -dec 10 and xbacklight -inc 10. There's some more work that could be done here (like automatically setting it to full brightness on AC power, etc), but this is good for now.

In Progress...

  1. The audio out jack on the Ultradock doesn't work at all, though the speakers on the laptop and the headphone port do work.

Update, Feb 21, 2015

I found the Padoka PPA here: https://launchpad.net/~paulo-miguel-dias/+archive/ubuntu/mesa/. Adding this PPA, running apt-get update && apt-get dist-upgrade eliminates the need to compile xf86-video-intel as directed in the "Multiple Monitors using the UltraDock" instructions, and makes 3d video work .

Still not working: the sound port on the UltraDock.

Update, Mar 01, 2015

I got the audio port on the ultradock working!

To make this work, create a file at /lib/firmware/x250.fw with the following contents:

[codec]
0x10ec0292 0x17aa2226 0

[pincfg]
0x16 0x21211010
0x19 0x21a11010

... then, create a file called /etc/modprobe.d/hda-intel.conf with the following contents:

options snd-hda-intel patch=x250.fw,x250.fw,x250.fw

Reboot, and the audio port on your dock should work. I imagine the process is the same for any of 2015 thinkpads. With each thinkpad, the only number that changes is the second one under the [codec] heading (in this case, 0x17aa2226). That information can be found by downloading this script: http://www.alsa-project.org/alsa-info.sh, and running it via bash alsa-info.sh as root. Search fo 0x17aa in the output, and you'll find the other half of the number you need.

Update Mar 2, 2015 - Fingerprint scanner works

Following the instructions found in this gist, I was able to get the fingerprint scanner to work. It doesn't work very well. I often have to try more than once to get it to recognize my fingerprint, and there doesn't seem to be any way to scan multiple images of your finger to improve reliability.

Coupled with the fact that the things are easy to fool, I will be disabling it.

Filed under: Linux
Comments:

From Paul on Feb. 26 @ 12:19 a.m. 2015

Thx! You saved my day!
From Erik on Feb. 26 @ 11:39 p.m. 2015

Thank you so much for that trackpoint-buttons hint, exactly the configuration I wanted to work with.

Do you still have troubles with 3d acceleration? While the i915_bdw driver from Mint 17.1 wasn't working for me, the i915 module from ubuntu/kubuntu 14.10 works out of the box here.
From synic on March 1 @ 3:11 p.m. 2015

@Erik: I'm using the padoka PPA, and everything is working just fine. I've been playing Borderlands 2 and Transistor today without any issues.
From j on March 1 @ 4:19 p.m. 2015

Hi,

Would receive mine soon. just wanted to ask if the touchscreen works out of the box.

Thanks
From synic on March 1 @ 4:35 p.m. 2015

I didn't get the touchscreen model, so I'm not sure.
From Chris on March 7 @ 9:02 a.m. 2015

I'm on 14.04.2, so slightly different, but while this gives me back my buttons, the middle button doesn't work for scrolling and the two fingered scrolling on the touchpad is gone.

I don't really have a ton of experience with X configuration (Ubuntu's had me spoiled for the last decade), but perhaps you know where to start fixing these?
From synic on March 7 @ 10:12 a.m. 2015

Did you try putting psmouse.proto=imps in GRUB_CMDLINE_LINUX_DEFAULT and running update-grub
From Chris on March 7 @ 11:15 a.m. 2015

Yes, that's how I got the buttons working in the first place. Looking around (https://bugs.freedesktop.org/show_bug.cgi?id=88609), it seems to be that those are features of the synaptics driver, not the psmouse one. To get the buttons working, we had to sacrifice other functionality.
From moro on March 8 @ 7:23 a.m. 2015

Hi, I have a probably stupid question, but you stated that you were able to map the brightness controls to xbacklight -dec 10 resp. xbacklight -inc 10 - how did you do that? I'm not able to get it work.
Thanks!
From alex on March 16 @ 2:51 p.m. 2015

How's the battery life? Did you give tlp a shot?
From freddy on March 17 @ 4:29 a.m. 2015

The ethernet port doesn't seem to work here. No link established according to dmesg and ethtool.

Did it work for you?
From zergar on March 17 @ 6:01 a.m. 2015

@moro adding "modprobe thinkpad_acpi force-load=1" to /etc/rc.local just before exit 0 got the job done for me, no keybindings needed with this command and it enables every Fn-button. look at the events with "sudo evtest /dev/input/event12" after executing the modprobe-command
From moro on March 17 @ 9:19 a.m. 2015

@zergar: many thanks, it is working great.
From Rabbit on March 19 @ 5:32 a.m. 2015

Hey,

everyone here who tried to flash the newest Bios Version 1.06 on x250? It doesn't allow me to flash from USB Device.
From dmnlg on March 19 @ 3:02 p.m. 2015

I enabled the fingerprint but doesn't work. - how do i disable - it blocks me from su/sudo

thanks
From carlad on March 23 @ 10:02 a.m. 2015

I used your suggestions for enabling the trackpoint buttons and it enabled the buttons ok, but did not disable the trackpad. The trackpad is still working, although i would like to disable it completely. Any ideas how I might do this? Cheers and thanks.
From freddy on March 23 @ 10:40 a.m. 2015

@carlad: Same here. I disabled the trackpad in the BIOS/UEFI under Keyboard/Mouse.

About the Ethernet failure, I reported earlier: It was a mistake on my end (The Ethernet port on device stops working if you dock your Laptop. You have to use the Ethernet port on the dock).
From carlad on March 23 @ 10:49 a.m. 2015

thanks @freddy i disabled in BIOS. muchos gracias :-))
From carlad on March 25 @ 12:10 p.m. 2015

Has anyone managed to get the screen brightness controls working (f5 and f6 buttons). They're not working for me at all...
From moro on March 26 @ 4:39 a.m. 2015

@carlad: see comment from zergar on March 17 @ 6:01 a.m. 2015 - worked for me
From Robert Eriksson on March 27 @ 7:55 p.m. 2015

Thank you Adam for sharing this
//Robert
From lazzie on April 6 @ 1:48 a.m. 2015

Hey, I know this is for 14.10, but nonetheless I wanted to inform future readers:

The latest update for 15.04 vivid just backported the necessary fixes for synaptics. Now not only the trackpoint buttons are working flawlessly out of the box, but you can also use the synaptics features/gestures. Kind of nice if you are anything like me and tend to use the two-finger-scroll if you are not in an upright position at the end of the day ;)

afaik this is also true for the 2015 x1 carbon

https://launchpad.net/ubuntu/+source/linux/3.19.0-11.11
From AR on April 22 @ 4:45 p.m. 2015

Followed the instructions for enabling the trackpoint buttons on ThinkPad T450s with Ubuntu 14.04.2. Worked perfectly! Thanks a lot!
From Stefan on April 23 @ 4:59 a.m. 2015

The audio fix also works also for Thinkpad 450s with ubuntu 15.04. The ID you have to enter was 0x17aa5036 on my machine.

I still have to unmute the dock speaker with alsamixer though
From AR on April 23 @ 9:09 p.m. 2015

Adam, a follow up question for you:

after enabling the TrackPoint buttons, is there a way to have an option for disabling the TrackPad?

Thanks a lot!
From Tim on May 15 @ 5:01 a.m. 2015

To second Stefan's post, your audio fix also works with Ubuntu 15.04. Everything else worked out of the box.
For me, the ID was already correct.
The channel of the headphone in alsamixer is called "Speaker+LO" and I unmute it with "amixer -c1 cset numid=1 80".
From Dan on May 27 @ 9:02 p.m. 2015

What Tim said immediately above, the amixer command was crucial, I couldn't figure out what I was supposed to unmute in alsamixer.
From toxmost on June 1 @ 10:02 p.m. 2015

Please help!!! After update bios in X250 - brick. Black screen. Please - if you have x250 lenovo - dump you bios (universal bios backup toolkit), and send me dump via email. Thank you!!!
From Darren on Aug. 23 @ 5:58 a.m. 2015

I tried both 14.04 and 15.04, but had same problem on both. If I closed the laptop lid and waited for the X250 to suspend to ram, and then opened laptop lid again, the screen display was messed up. All the console applications disappears (things like emacs, gnome-terminal etc), and menus that popup up had not text. Some things were okay, such as chrome. The network port did not recover either. This was for an X250 bought in mid 2015. My solution was to move to Fedora 22, which didn't have the problem. I presume my X250 had hardware components that were ahead of what's avail in the 14.04/15.04 kernels.


Darren
From sangham on Aug. 30 @ 8:49 a.m. 2015

Hey Darren, were you using Ubuntu or Xubuntu? I have the same issue under Xubuntu. Thinking of moving too...

Add a comment:
captcha

Optional, for comment reply notifications
 
Note: If you enter your email address, you will be subscribed to this article and will recieve comment updates via email. This is the only thing your address will be used for. A link will be provided at the end of each email that will allow you to unsubscribe should you need to, or you can go to http://synicworld.com//unsubscribe to unsubscribe from any/all updates.