Lenovo IdeaPad Yoga 2 Pro - ArchWiki

# Lenovo IdeaPad Yoga 2 Pro

From ArchWiki
Jump to navigation Jump to search

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Missing templates, poorly organized (Discuss in Talk:Lenovo IdeaPad Yoga 2 Pro#)

Device | Status | Modules
Graphics | Working | xf86-video-intel
Wireless | Working* | iwlwifi
Audio | Working | snd_hda_intel
Touchscreen | Working | usbtouchscreen
Accelerometer | Working | iio-sensor-proxy
Touchpad | Working | xf86-input-synaptics
Camera | Working |
Card Reader | Unknown |
Bluetooth | Working |
HDMI | Working |

## Installation

Installing Arch on the HiDPI screen may be difficult as the text will be hard to read. To make the font more readable, before you hit install, disable mode settings. Hit Tab in the arch linux boot menu and append the option `nomodeset` along with `nomodeset` kernel parameter. For Intel graphics card you need to add `i915.modeset=0` and for Nvidia graphics card you need to add `nouveau.modeset=0`. For Nvidia Optimus dual-graphics system, you need to add all the three kernel parameters (i.e. `"nomodeset i915.modeset=0 nouveau.modeset=0"`).

Be aware, adding nomodeset prevents the kernel from identifying the monitor. As a result brightness adjustment and xrandr won't work. This line should probably be removed after installation.

## The ideapad_laptop module

Note: This should not be needed as of kernel 4.3

Several problems come up if the ideapad_laptop module is in use. Namely, it blocks the network card and generates a massive stream of warning from the USB subsystem such as:

    Dec  5 08:40:44 localhost kernel: [  290.632613] xhci_hcd 0000:00:14.0: ep 0x81 - asked for 15360 bytes, 15117 bytes untransferred
    Dec  5 08:40:44 localhost kernel: [  290.735110] xhci_hcd 0000:00:14.0: ep 0x81 - asked for 15360 bytes, 15117 bytes untransferred
    Dec  5 08:40:44 localhost kernel: [  290.837534] xhci_hcd 0000:00:14.0: ep 0x81 - asked for 15360 bytes, 15117 bytes untransferred
    Dec  5 08:40:44 localhost kernel: [  290.940070] xhci_hcd 0000:00:14.0: ep 0x81 - asked for 15360 bytes, 15117 bytes untransferred
    Dec  5 08:40:44 localhost kernel: [  291.042570] xhci_hcd 0000:00:14.0: ep 0x81 - asked for 15360 bytes, 15117 bytes untransferred

You can silence these in the short run by running:

    # dmesg -D

And you can unblock the wireless card by running:

    # rfkill unblock wlan

However, in the long term, you will probably want to blacklist the `ideapad_laptop` driver so that neither of these occur in the first place. I am yet to find a disadvantage to doing so.

## Keyboard and other hardware keys

To access boot menu or BIOS settings, you must use the alternate power button, next to the standard one.

No keypad available at all.

### Keyboard special keys

Note: A working keymap means that there is some output in `xev` when the key combination is pressed OR that the functionality is built in and "just works". It does not mean that the keymap is linked to the functionality. For that it is often necessary to add a keyboard shortcut by the method of your choice or to use a desktop shell with built-in shortcut support for the keycode in question. For some of the keys the function operates on a BIOS level and no shortcut is needed.
Note: BIOS has a setting to flip the behavior of the FN key.

Keys | Function | X sees
--- | --- | ---
`Fn+F1` | Audio mute/unmute | XF86AudioMute
`Fn+F2` | Audio volume down | XF86AudioLowerVolume
`Fn+F3` | Audio volume up | XF86AudioRaiseVolume
`Fn+F4` | Close application | `Alt_L+F4`
`Fn+F5` | Refresh page | `F5`
`Fn+F6` | Disable Touchpad | ?
`Fn+F7` | Airplane mode | ?
`Fn+F8` | Unknown | `Alt_L+Tab`
`Fn+F9` | Turn off LCD | ?
`Fn+F10` | Toggle display | `Super+p`
`Fn+F11` | Dim LCD backlight | XF86MonBrightnessDown
`Fn+F12` | Brighten LCD backlight | XF86MonBrightnessUp

### Hardware keys on right side

From hinge to front:

    XF86AudioRaiseVolume
    XF86AudioLowerVolume
    Super_L+o

## Touchscreen

Touchscreen USB device seems to come and go if the `usbtouchscreen` module is not loaded.

### Multitouch gestures

You need to install ToucheggAUR from the AUR in order to enable multitouch gestures. Optionally, you can install touchegg-gce-gitAUR as a graphical front-end. See more details in the dedicated wiki page.

Tip: If you use Gnome Shell you should start `touchegg` before it, in order to avoid conflicts.

### Touchscreen button

The touchscreen button with a Windows logo is mapped as `Super`. However, `key_down` and `key_up` are generated simultaneously on touch release. The haptic feedback (vibration) when touching this button is currently not controllable via software.

### Touchscreen stops working after suspension

Sometimes touchscreen stops working after resuming from suspension mode. You should be able to fix the problem reloading the `usbhid` and `usbtouchscreen` kernel modules:

    # modprobe -r usbhid usbtouchscreen

## ACPI

I modified `/etc/acpi/default.sh` to allow for some debugging and additional features (see below):

    #!/bin/sh
    set $*
    group=${1%%/*}
    device=$2
    id=$3
    value=$4
    log_unhandled() {
           logger "ACPI event unhandled: $*"
    }
    case "$group" in
           button)
                   case "$action" in
                           power)
                                   /etc/acpi/actions/powerbtn.sh
                                   ;;
                           lid)
                                   /etc/acpi/actions/lid.sh
                                   ;;
                           *)      log_unhandled $* ;;
                   esac
                   ;;
           ac_adapter)
                   case "$value" in
                           *)      log_unhandled $* ;;
                   esac
                   ;;
           *)      echo $* > /dev/tty5
                   log_unhandled $* ;;
    esac

### Touchpad

The touchpad sends random input from time to time, especially when lid is closed. If you like your computer to keep running when the lid is closed, you may want to disable the touchpad with ACPI events:

/etc/acpi/actions/lid.sh

    #!/bin/bash
    export DISPLAY=:0
    if grep closed /proc/acpi/button/lid/LID0/state
    then
           synclient TouchpadOff=1 2>/dev/tty5 && echo "lid closed, disabling touchpad" >/dev/tty5
    else
           synclient TouchpadOff=0 2>/dev/tty5 && echo "lid open, eênabling touchpad" >/dev/tty5
    fi

Of course, the echo statement is optional and for debug purposes.

### Backlight

With newer kernels (I am currently using `3.17.6-1-ARCH`) backlight works out-of-the-box.

"old" (ref needed) kernels require boot argument

    acpi_backlight=vendor

Screen backlight brightness can be manually set with

    # echo $VAL > /sys/class/backlight/intel_backlight/brightness

with $VAL between 0 and 937

It's possible that you will get a permission denied error, in which case you can run

     # chmod a+rw /sys/class/backlight/intel_backlight/brightness

which makes the brightness editable by any user.

Note: Some users have experienced brightness being stuck under Windows (10) (when you change it there is no actual change), it will most likely work under arch.

### Battery

Battery info can be accessed with

    ls /sys/class/power_supply/BAT1/*

Unfortunately, the values obtained there have no units (older Lenovo products had rates in mA, battery voltage, etc.)

## Graphics

Steam has been known to crash trying to run games complaining about missing i965 module. It seems some applications treat it as accelerated, and some do not.

Resolution seems to be not so well supported by some desktop environments/window managers. Gnome-based DEs like Cinnamon and Mate, as well as XFCE and fvwm seem to work fine.

Users may wish to boost font-sizes, as the HiDPI screen can be hard to read in some settings.

If you have trouble detecting a display with the micro hdmi port, consider filing the plastic on the male hdmi plug back a bit (not on the laptop). See here. The rubber case can prevent the plug from inserting fully.

## Rotation/Conversion

You can easily rotate screen with xrandr, however it does not rotate touchscreen/touchpad input which makes it fairly awkward to use. There is a project attempting to address this. Keyboard hardware-disables in tablet mode, but touchpad is still active which needs to be addressed. No ACPI or keycode signals appear to be emitted for the various screen rotation states.

## See also

- The LinLap site has some good information - see [1];
- a good Review of Arch Linux on a HiDPI Lenovo Yoga 2 Pro by KeithCU with useful comments [2];
- an installation guide written by Ubuntu users: [3].
- color profile for fixing the mustard-yellow issue: [4]

Category:

- Lenovo

Hidden category:

- Pages or sections flagged with Template:Style