Lenovo Yoga Pro 2 on Ubuntu

I recently purchased a Yoga Pro 2 and spent a considerable amount of time setting it up to my liking on Ubuntu. This post summarizes the key steps required in getting the hardware to work properly. Some of these steps are well known and out there on the web, others aren’t.

I used etckeeper to put my /etc folder under version control. This makes it really easy for me to get the full history of the changes I made.

Backlight problem

When you first boot your Yoga Pro 2 on Ubuntu, the screen will be black. That’s because the backlight is off.  You can turn it on temporarily by increasing the brightness with the brightness key, or by adding the acpi_backlight=vendor argument to your kernel in Grub at boot time.

To make this permanent, apply edit this line of your /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"

and then run sudo update-grub2. This procedure is also described here.

Wifi and Bluetooth do not work

sudo rmmod ideapad-laptop ought to fix it at run time. To make permanent, run this:

echo blacklist ideapad-laptop | sudo tee -a /etc/modprobe.d/local.conf

I initially had regular Wifi disconnects on a specific network. I switched from NetworkManager to WICD to address that as explained here. I have since then returned to NetworkManager and have not experienced the problem again (I no longer use this particular Wifi network). Just putting this idea out there in case you're experiencing disconnects.

How to deal with the absurdly high resolution

At run time, try xrandr --output eDP1 --scale 0.5x0.5 where eDP1 is the name of the main output. To make permanent (and also nicer, xrandr scaling doesn’t look good), create a file /etc/X11/xorg.conf.d/10-monitor.conf with this content:

Section "Monitor"
    Identifier   "eDP1"

    # 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
    Modeline "1600x900@60"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync

    Option "PreferredMode" "1600x900@60"
EndSection

Video tearing

If videos are “tearing“, try creating /etc/X11/xorg.conf.d/20-intel.conf with:

Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    Option      "TearFree"    "true"
EndSection

Jumpy trackpad and lack of middle button

Try creating the file /etc/X11/xorg.conf.d/50-synaptics.conf with this content:

Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"
    # This option is recommend on all Linux systems using evdev, but cannot be
    # enabled by default. See the following link for details:
    # http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
    MatchDevicePath "/dev/input/event*"

    Option "FingerLow"              "46"
    Option "FingerHigh"             "46"
    Option "ClickFinger1"           "1"
    Option "ClickFinger2"           "2"
    Option "ClickFinger3"           "3"
    Option "TapButton1"             "1"
    Option "TapButton2"             "2"
    Option "TapButton3"             "3"
    Option "AreaBottomEdge"         "85%"
    Option "SoftButtonAreas"        "60% 0 85% 0 40% 60% 85% 0" # Btn2 LRTB - Btn3 LRTB
    Option "EmulateMidButtonTime"   "75"
EndSection

You can play with the values at runtime using synclient.

Closing the lid doesn’t always send the laptop to suspend, this is how to fix

Add these lines to /etc/rc.local:

# Disable wake up on anything for Yoga Pro 2, otherwise it sometimes wakes from suspend
cat /proc/acpi/wakeup |
    grep '*enabled' |
    cut -f 1 -d ' ' |
    xargs -n 1 -I {} sh -c 'echo Disabling wake up on {}... && echo {} > /proc/acpi/wakeup'

Kudos to csslayer for figuring that one out.

Bluetooth mouse disconnects after a few minutes and does not reconnect

This one was sneaky, but the solution is simple, add these lines to your /etc/rc.local

# Prevents the Bluetooth USB card from getting reset which disconnects the mouse
BTUSB_DEV="8087:07dc"
BTUSB_BINDING="$(lsusb -d "$BTUSB_DEV" |
    cut -f 1 -d : |
    sed -e 's,Bus ,,' -e 's, Device ,/,' |
    xargs -I {} udevadm info -q path -n /dev/bus/usb/{} |
    xargs basename)"

echo "Disabling autosuspend for Bluetooth USB Soundcard: $BTUSB_BINDING..."
echo -1 > "/sys/bus/usb/devices/$BTUSB_BINDING/power/autosuspend_delay_ms"

(Use lsusb to confirm that your Bluetooth USB card is indeed 8087:07dc).

I posted about this here.

Crackling sound at the beginning of calls when using the Google Talk plugin

Try running Chromium with this environment variable set: PULSE_LATENCY_MSEC=30.

UPDATE: Check this out instead.

SSD optimization

Because the storage device on the Yoga Pro 2 is an SSD, you’ll want to read these two pages:

  1. How do I optimize the OS for SSDs?
  2. How to enable TRIM?

That’s all folks

That’s it for now! It was quite painful to get all this setup but the Yoga Pro 2 is a fantastic piece of hardware so I’m still quite happy with the purchase.

I will continue to update this post with any new fix that I come across.

Please comment if you find other ‘fixes’ for the Yoga Pro 2 on Ubuntu, if you have unsolved problems, or if this article helped you!

41 thoughts on “Lenovo Yoga Pro 2 on Ubuntu

  1. Peter says:

    Thanks

  2. haze says:

    As I’m hesitating to buy this (sadly win-)machine… but aiming to run Linux on it, this is a great resource that somehow regained me confidence. However, I’m still mostly concerned about the high-resolution display… how is the screen-resolution trick in terms of readablity and quality?

    • obadz says:

      It’s at least as good as a native 1600×900 laptop, which is a perfectly fine resolution for that screen size. I don’t know if it’s any better but I don’t see how it could possibly be worse.

      • Andrew says:

        Are you running multi screens? One of my let downs is I was hoping to use the onelink dock (driverless display) for a multi screen setup.

        Apparently USB 2.0 display driver works though..

  3. saldana says:

    do the resolution right and set dpi settings in the right places. if you want the easy way, can run xfce or desktop environment to handle it and set in .Xdefaults, firefox, etc.

    • obadz says:

      If I do that, only the apps which defined their sizing in “inches/cm” as oppozed to pixels will appear on normal size right? I think everything else will appear tiny.

      Last I checked that was a minority of applications on Linux, but pls correct me if I’m wrong..

  4. Gerardus Calcitrosus says:

    On the subject of “Jumpy trackpad and lack of middle button”

    I tried this; it worked before but under ubuntu 14.04 the laptop boots up to a black screen with a cursor in the top left corner as soon as I create that file. Any suggestions?

    Some more information: I had not blacklisted ideapad-laptop yet, neither had I “fixed” the resolution yet (with 10-monitor.conf). If there is a specific order to stick to, which I did not, then that might be a cause other than using ubuntu 14.04. (I wanted to try out the higher resolution and use https://github.com/pfps/yoga-laptop/ to replace ideapad-laptop module.)
    I’m sure that additional 50-synaptics.conf file is the cause, as that’s the only thing I did before rebooting the machine.

    • Gerardus Calcitrosus says:

      (The black screen means I cannot do anything or use my PC. The cursor is frozen and no input appears when pressing a key.
      If someone knows how to enter the file system and delete the file so that the system can boot again, be sure to comment. I’ll probably use something like a usb recovery program (hiren’s?) and try it that way.)

      • obadz says:

        That’s very strange. I would not expect /etc/X11/xorg.conf.d/50-synaptics.conf to prevent the X server from starting (which is what sounds like it is happening) unless you have a typo in it or something.

        Try Ctrl+Alt+F1 to get a console after boot up.
        Otherwise, try Recovery Mode: https://wiki.ubuntu.com/RecoveryMode
        Finally, if that fails, the Ubuntu install stick should do the trick.

        Once you’re there, you should have a look at /var/log/Xorg.0.log to see if it provides any indication as to what’s wrong.

      • Gerardus Calcitrosus says:

        Hmm. Installed my other programs and some more stuff, and tried again. Works now. No idea what happened, but let’s consider it solved for now.

  5. Gabriel says:

    This is VERY helpful (and usable) information, but it raises (for me) a few additional questions:
    1) I would like to use 1920X1080 resolution– how should I change the other parameters in your fix?
    2) I have no sound at all when I boot on (L)ubuntu. I had disabled the ideapad_laptop module, since without doing so I was getting no wifi. The machine is useless to me without sound… ;-( Do I have to wait for Lenovo to issue an updated driver for the wifi?

    Thanks–

    • haze says:

      I remember having the no-sound issue also. But somewhere further in the process of tweaking other not-related settings… sound started working. Don’t really know why, rather strange. Sorry, for not being really helpfull here.

      About the screen resolution: just like you, i considered a higher setting, but then again… that would make it more difficult to operate from the touch screen (as all UI elements become smaller again). I left it at 1600×900 and never looked back.

    • obadz says:

      Hi Gabriel,

      You’re welcome.

      1) 1920×1080 isn’t a multiple of the physical resolution of the monitor (3200×1800) so it might not look as nice. If you want to try anyway, you can get a modeline this way to replace the one I supplied:

      $ cvt 1920 1080
      # 1920×1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
      Modeline “1920x1080_60.00” 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

      2) A friend of mine has the sound issue but we haven’t gotten to the bottom of this yet, so not sure how to help. Try looking in /var/log/syslog for any indication of what could be wrong. You’re looking for the keywords sound / snd / audio / pcm.

      Did you install using the legacy mode in the BIOS or the Windows 8 style UEFI? That is the only difference between my install and my friend’s and I’m wondering if it could be causing the sound issue (I did legacy BIOS, he has UEFI)

      • haze says:

        fwiw. i did the UEFI install…

      • Andrew says:

        btw the sound issue I read somewhere else may lead to something to do with alsamixer and auto-mute. I recall reading that somewhere else, but never tried it myself.

        I’m also using UEFI install though, and my sound is working fine.

    • Joel says:

      I have the same sound issue. It seems that sound doesn’t work for Ubuntu if I restart Windows. Sound comes back on when you choose to shut down Windows. Still trying to find out the exact reason though.

  6. haze says:

    Other than that, i’m struggling to find a solution to comfortably operate in tablet only mode. In fact, if only we could get the 2 finger scrolling working from the touch screen, that make it a whole lot more usable. So far, i’m started experimenting with “Ginn” … without success. I think it somehow conflicts with unity’s own gesture set.

    • haze says:

      After the 14.04 LTS upgrade, one finger scrolling via the touchscreen works.

      • Does that work in all apps? Did you do something special? After my 14.04 upgrade it’s still the same as in 13.10… one finger scrolling works only in a few apps like Nautilus, but definitely not in FF or Chrome where it would be most useful.

  7. Andrew says:

    Hi,

    Thank you so much for all of this! It’s working great on F20

    I love the synaptics mouse patch, although now I can’t seem to click and drag as easily. Any ideas?

    Cheers,
    Andrew.

    • obadz says:

      Thanks for the feedback.

      Yes I have the click’n’drag problem too. It’s quite annoying and if anyone has a solution I would love to hear it. Bluetooth mouse works fine though 😉

      • Andrew says:

        The double press click and drag seems to work though.

        I may experiment with some of those values, as click + drag *sometimes* works..

  8. Andrew says:

    Are you using the intel driver [1] or the whatever came with the default install? I seem to still be getting video tearing (even with your patch).

    https://01.org/linuxgraphics/downloads

  9. claudelo says:

    Hi,
    I’ve just installed Ubuntu on my new Yoga laptop (in dual boot). I’m surpised almost everything works perfect (the wifi, the touchpad, touching the screen, with the fingers or the magic pencil). However, one bad thing is that the screen display does not rotate in neither tent nor tablet modes (it works perfect in Windows, but this is so far the only aspect which does not work in ubuntu). How do you deal with the screen rotation?
    Thank you

    • Peter F. Patel-Schneider says:

      There are two problems with rotating the screen:

      1/ Getting the sensors to work. This needs a quirk to the 3.14 drivers, but has been incorporated into the 3.15 drivers.

      2/ Writing a program that listens to the accelerometer (or other sensor) and rotates the screen and touchscreen accordingly.

      I have patched drivers and a simple rotation program at https://github.com/pfps/yoga-laptop
      Work is being done (not by me right now and some of it slowly) to improve both the drivers and the rotation code.

  10. I had to do this to get the ACPI fix to work:

    for d in `cat /proc/acpi/wakeup |
    grep ‘*enabled’ |
    cut -f 1 -d ‘ ‘ `;
    do
    echo $d > /proc/acpi/wakeup;
    done;

    Also, for me, just running in 1920×1080 looks better than the xrandr DPI hack.

  11. Ilya says:

    Hi,

    First of all, THANKS a lot!! I am using Ubuntu for a course I’m taking and I was absolutely frustrated to find out that this laptop (that perfectly suits all my other needs) has so much issues with Ubuntu. This guide really stopped me from reconsidering my purchase 🙂

    Second, could you please help me with the following two annoying issues (considering Im a newbie to linux, maybe the solution is quite simple):

    1. When launching the laptop, it presents the “grub 2.2” dual-boot screen (if I understand correctly – this is how this menu is called). Everything there is in tiny font, even though after performing the fix you offered for resolution, after loading the font is quite OK.
    2.I tried to edit the grub file as you suggested (even though I didn’t have any black screen issues during installation). It definitely brightened the screen – however after running update-grub2 and trying to open grub file again – the gedit became stuck.Much worse, after restart the laptop booted extremely slowly and the Ubuntu didn’t function better – until I restored the grub file to its previous state. Did you ever step into this situation?

    Again, thanks a lot!

  12. Omar Iskandarone says:

    Very helpfull. I bought the laptop two days ago and was struggling here and there.
    Tried Kali Linux at first but as I came across this article I switched to Ubuntu 14.04. Things are working and/or not working as mentioned in your article.
    The overall experience is good enough to allow me to keep Ubuntu and just hope for something better in 14.10 or may through some more tweaks like the ones you suggested.

    Thanks indeed and one question: do you think your tweaks would work the same under Debian or Kali?

    • obadz says:

      Thanks indeed and one question: do you think your tweaks would work the same under Debian or Kali?

      Yes, I believe most of what’s here should work on all Debian derivatives.

  13. Mario Del Boccio says:

    Hi, I tried to follow your instructions for dealing with the high res. if I read it right the code you wrote makes it boot up at 1600×900? Is there any way to use the 3200×1800 res? I scaled everything to 2 in res settings but I can’t figure out how to change settings by program aka reddit or spotify or nautilus. The text is extremely small while it scales fine in Firefox and menus. 1920×1080 is blurryish to me and looks bad. Also I had create an xorg.config.d file in the x11 sub folder and then drag the code as a text file to the desktop and insert it into the file sub folder. Is that the right way?

  14. Hi, I’ve created this: /etc/X11/xorg.conf.d/10-monitor.conf with this content:

    Section “Monitor”
    Identifier “eDP1”

    # 1600×900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
    Modeline “1600×900@60” 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync

    Option “PreferredMode” “1600×900@60”
    EndSection
    but it doesn’t work. i’m begginer user of ubuntu, so maybe I’m not aware of something. Maybe it should be “run” somehow? (First I created folder xorg.conf.d – empty; now its with 10-monitor.conf file but it doesn’t work.
    Could you help me somehow?

  15. Bernard N says:

    The Windows button on the keyboard and touchscreen can be mapped using xbindkeys, but you can’t use it with other shortcuts that use the windows key. So it becomes a dedicated key for a single function of your choosing.

    I mapped it to the ShowDesktopGrid in KDE. This works great and is very convenient. I use 3×3 virtual virtual desktop.

    To map it, add the following to .xbindkeysrc in your home directory:
    “qdbus org.kde.kglobalaccel /component/kwin org.kde.kglobalaccel.Component.invokeShortcut ShowDesktopGrid”
    c:133

    Replace the qdbus command with anything you want.
    Then make sure xbindkeys is running when you login. For KDE DesktopGrid, make sure it is enabled under KDE System Settings -> Desktop Effects -> All Effects -> Desktop Grid.

  16. harry says:

    Awesome tutorial, thanks! Little note for the trackpad config though, I think it should be
    Option “TapButton2” “3”
    Option “TapButton3” “2”
    Cheers!

  17. Nicholas says:

    Thanks for all the help but just curious how do I find the name of the name output for my laptop, specifically for changing my screen resolution. eDP1 doesn’t seem to work but I can’t find what else it would be or where to find it. Thanks.

  18. venik212 says:

    I am now using the Yoga 2 Pro with Mint Cinnamon, which I like a lot. Almost everything works, but 2 issues are still driving me crazy:
    1) The touchpad is jumpy and unstable– every time I lift my finger the cursor moves. I set the speed and sensitivity of the pointer to low in System Settings, and when that did not cure the problem, I use your xorg.conf.d approach, but it did not cure it. Which parameters should I play with teh make the cursor stable? It must be a driver issue, I think, since it works perfectly in Windows 8.1 on the same hardware.
    2) I selected to Disable the touchpad during typing, but it often fails. Any ideas?

    Thanks a lot for all the help.

  19. venik212 says:

    Ignore my last post– it was my fault… (I cannot type.. 😉
    It now works!

  20. venik212 says:

    Well– after using the system with the 50-synaptics.conf file for a little while I discovered an unexpected (and problematic) consequence: now when I right click a menu entry, instead of getting the context menu (“add to panel; add to favorites.. etc” it launches the program, as if the right click had been converted to a left click. To test, I renamed the 50-synaptics.conf file, rebooted, and now I have a jumpy touchpad but it restored the right click with the context menu…. I assume that something in the code of the 50-synaptics.conf file causes that problem, but what?
    I am running cinnamon/mint on a Yoga 2 Pro.
    Thanks for any suggestions on how to get around it.

Leave a reply to Andrew Cancel reply