Lenovo IdeaPad Yoga 900
Hardware | PCI/USB ID | Working? |
---|---|---|
GPU | Yes | |
Wireless | Yes | |
Audio | Yes | |
Touchpad | Yes | |
Touchscreen | Yes | |
Camera | Yes | |
Card Reader | Yes | |
Bluetooth | Yes |
The Lenovo Yoga 900[dead link 2023-09-16 ⓘ] is a 2 in 1 laptop with a faux-3200x1800 RG/BW Pentile display.
For a general overview of laptop-related articles and recommendations, see Laptop.
Lenovo has released a BIOS (version 2UCN10T) for Yoga 900 13ISK2, in which Lenovo gives back the right for choosing RAID/AHCI mode to the users. Hence, 13ISK2 is edible for Linux now.
Installation
BIOS
Lenovo does not currently offer a BIOS update ISO image. This means you can only upgrade the BIOS from Windows 10.
Font Size
The console text is hard to read during install with this display, which renders in 3200x1800 resolution but omits part of the detail due to its incomplete (RG/BW) subpixel matrix. You can temporarily use a default larger font like sun12x22.
setfont sun12x22
Consider installing the terminus-font package for access to even larger fonts and making it permanent with /etc/vconsole.conf
(Linux console#Persistent configuration).
Wifi
During install the wifi-menu may show no networks. This is caused by a soft-block. Using rfkill should fix the issue.
rfkill unblock all
Configuration
Keyboard
- BIOS has a setting to flip the behavior of the
Fn
key. - The status below is based on Gnome
Key | Visible? | Working? | Effect |
---|---|---|---|
Fn+F1 |
– | Yes | Audio mute/unmute |
Fn+F2 |
– | Yes | Audio volume down |
Fn+F3 |
– | Yes | Audio volume up |
Fn+F4 |
– | Yes | Close application |
Fn+F5 |
– | Yes | Refresh page |
Fn+F6 |
– | No | Disable Touchpad |
Fn+F7 |
– | Yes | Airplane mode |
Fn+F8 |
– | No | Display active apps |
Fn+F9 |
– | Yes | Turn off LCD |
Fn+F10 |
– | Yes | Toggle display |
Fn+F11 |
– | Yes | Dim LCD backlight |
Fn+F12 |
– | Yes | Brighten LCD backlight |
Fn+Space |
– | Yes | Toggle keyboard backlight |
KVM
KVM can be enabled in the BIOS via the Intel Virtual Technology option.
HiDPI
See HiDPI.
Sensors
Install the iio-sensor-proxy to get the accelerometer and light sensor working
Troubleshooting
Card Reader
Initial testing shows the card read working fine out of the box. There are a few errors on boot that need more research.
Boot message:
kernel: mmc0: Unknown controller version (3). You may experience problems.
Insert of card message:
kernel: sdhci: Timeout waiting for Buffer Read Ready interrupt during tuning procedure, falling back to fixed sampling clock kernel: mmc0: tuning execution failed kernel: mmc0: ddr50 tuning failed
External Monitor
Several issues occur when trying to display on an external monitor. This laptop only has a display port over USBC-C, which requires dongles to connect to most monitors. Testing to a monitor with a display port connection has yielded the best result. Testing with HDMI and VGA dongles have revealed several issues. Often xrandr does not show a display connected. Rebooting with the monitor attached does not fix the issue. Sometimes running xrandr several times will show a connection.
If you try to force xrandr to display with the following:
xrandr --output eDP1 --auto --output DP1 --auto --right-of eDP1
Sometimes you will see the following kernel message:
kernel: ------------[ cut here ]------------ kernel: WARNING: CPU: 1 PID: 1253 at drivers/gpu/drm/i915/intel_pm.c:3553 skl_update_other_pipe_wm+0x177/0x180 [i915]() kernel: WARN_ON(!wm_changed) kernel: Modules linked in: kernel: ccm snd_hda_codec_hdmi deflate ctr twofish_generic twofish_avx_x86_64 twofish_x86_64_3way twofish_x86_64 twofish_ kernel: hid_rmi ax88179_178a usbnet mii iwlmvm mac80211 snd_soc_skl snd_soc_skl_ipc i2c_designware_platform i2c_designwar kernel: fan i2c_hid thermal wmi battery bluetooth intel_hid int3400_thermal rfkill pinctrl_sunrisepoint pinctrl_intel int kernel: kernel: CPU: 1 PID: 1253 Comm: Xorg Tainted: G U W O 4.5.2-1-ARCH #1 kernel: Hardware name: LENOVO 80MK/VIUU4, BIOS C6CN35WW 12/17/2015 kernel: 0000000000000286 000000000f1007b6 ffff88044bf4f918 ffffffff812dad91 kernel: ffff88044bf4f960 ffffffffa01b8d20 ffff88044bf4f950 ffffffff81078e52 kernel: ffff8804604ec000 ffff88044bf4f9dc ffff88045d629bd4 ffff8804604eb000 kernel: Call Trace: kernel: [<ffffffff812dad91>] dump_stack+0x63/0x82 kernel: [<ffffffff81078e52>] warn_slowpath_common+0x82/0xc0 kernel: [<ffffffff81078eec>] warn_slowpath_fmt+0x5c/0x80 kernel: [<ffffffffa00e77c7>] skl_update_other_pipe_wm+0x177/0x180 [i915] kernel: [<ffffffffa00e795e>] skl_update_wm+0x18e/0x5f0 [i915] kernel: [<ffffffffa01725ff>] ? intel_ddi_enable_transcoder_func+0x17f/0x260 [i915] kernel: [<ffffffffa00eb06e>] intel_update_watermarks+0x1e/0x30 [i915] kernel: [<ffffffffa0155e61>] haswell_crtc_enable+0x321/0x8c0 [i915] kernel: [<ffffffffa0151777>] intel_atomic_commit+0x737/0x1870 [i915] kernel: [<ffffffffa0020581>] ? drm_atomic_check_only+0x181/0x600 [drm] kernel: [<ffffffffa0020a37>] drm_atomic_commit+0x37/0x60 [drm] kernel: [<ffffffffa00908b6>] drm_atomic_helper_set_config+0x76/0xb0 [drm_kms_helper] kernel: [<ffffffffa000f1b2>] drm_mode_set_config_internal+0x62/0x100 [drm] kernel: [<ffffffffa00142c0>] drm_mode_setcrtc+0x3e0/0x500 [drm] kernel: [<ffffffffa0005892>] drm_ioctl+0x152/0x540 [drm] kernel: [<ffffffffa0013ee0>] ? drm_mode_setplane+0x1b0/0x1b0 [drm] kernel: [<ffffffff811ece7c>] ? __vfs_write+0xcc/0x100 kernel: [<ffffffff811ffdd1>] do_vfs_ioctl+0xa1/0x5b0 kernel: [<ffffffff81084df1>] ? __set_task_blocked+0x41/0xa0 kernel: [<ffffffff8120a1f7>] ? __fget+0x77/0xb0 kernel: [<ffffffff81200359>] SyS_ioctl+0x79/0x90 kernel: [<ffffffff8108793e>] ? SyS_rt_sigprocmask+0x8e/0xc0 kernel: [<ffffffff815b0b6e>] entry_SYSCALL_64_fastpath+0x12/0x6d kernel: ---[ end trace 4d86447ef15dd94e ]---
Networking
Toggle Trackpad
The trackpad key (F6) is not mapped correctly to toggle the trackpad. Using UDEV to Map scancodes to keycodes will restore this function. This is a custom hwdb file to restore the feature.
# Lenovo YOGA 900-13ISK evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrLenovoYOGA900* KEYBOARD_KEY_bf=f21 # Fn+F6 Disable Touchpad
Depending of the exact model, the scancode can vary. If this not work, try KEYBOARD_KEY_be=f21
or use evtest as explained in Map scancodes to keycodes to get the scancode.
Screen Rotation
When you first boot the screen rotation may not work. A bug currently requires you to suspend and resume the laptop before the screen will rotate using the iio-sensor-proxy package.
Light Sensor
When you first boot the light sensor for automatic screen brightness may not work. A bug currently requires you to suspend and resume the laptop before the light sensor will work using the iio-sensor-proxy package.