Lenovo IdeaPad Yoga 900

From ArchWiki

This article or section does not follow the Laptop page guidelines.

Reason: Stub (Discuss in Talk: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

Note:
  • 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

Note: Updating to the latest xf86-video-intel and linux kernel has fixed some of the external display issues with VGA and HDMI dongles.

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

Note: This fix has an unintended consequence that needs more research. The mapping will work and it disables the trackpad when you go into tablet mode. The issue is the trackpad will be automatically disabled if you close the laptop lid and re-open it. This requires you to hit F6 to re-enable it. Not mapping this key will leave the trackpad enabled in tablet mode, but otherwise all other operations are normal.

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.