Lenovo IdeaPad Flex 10

From ArchWiki
Jump to navigation Jump to search

Tango-edit-clear.pngThis article or section does not follow the Laptop page guidelines.Tango-edit-clear.png

Reason: lspci/lsusb dumps do not belong into laptop pages (Discuss in Talk:Lenovo IdeaPad Flex 10#)

The Lenovo Flex 10 is a flexible dual-mode laptop computer with a 10.1" screen released in 2014. It comes preinstalled with Windows 8/8.1. The Flex 10 hardware is well supported in recent Linux kernels and enjoys good driver support for most of its components.

PCI Devices

$ lspci
00:00.0 Host bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register (rev 0e)
00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
00:13.0 SATA controller: Intel Corporation Device 0f23 (rev 0e)
00:14.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series USB xHCI (rev 0e)
00:1a.0 Encryption controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine (rev 0e)
00:1b.0 Audio device: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller (rev 0e)
00:1c.0 PCI bridge: Intel Corporation Device 0f48 (rev 0e)
00:1f.0 ISA bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit (rev 0e)
00:1f.3 SMBus: Intel Corporation Device 0f12 (rev 0e)
01:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01)

USB Devices

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 04f3:024b Elan Microelectronics Corp.
Bus 001 Device 006: ID 0cf3:3004 Atheros Communications, Inc. AR3012 Bluetooth 4.0
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 13d3:5614 IMC Networks
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Hardware Support


Before installing any other OS (other than the default Windows 8/8.1) it is required to disable the secure boot option in the boot setup menu.


Works natively with xf86-video-intel. SNA mode, however, is unstable and can cause occasional screen freezes, using UXA mode is recommended instead.


Works out of the box with xf86-input-synaptics.


It works out of the box. See Touchscreen to help configure the default behavior (e.g. enable two-fingers scrolling on Firefox).



When suspending to RAM with ALPM link_power_management_policy set to anything else than max_performance the device tends to lose connection to SATA storage devices at least while running kernel version 3.18.6. This can be observed for example by entering a virtual console and executing systemctl suspend there. Even before the device enters to suspend state ATA related messages can be seen on the console and the device hangs on resume.

Check current policys with:

cat /sys/class/scsi_host/host0/link_power_management_policy /sys/class/scsi_host/host1/link_power_management_policy

Change policys to max_performance before suspending to RAM:

echo max_performance > /sys/class/scsi_host/host0/link_power_management_policy
echo max_performance > /sys/class/scsi_host/host1/link_power_management_policy

The easiest workaround is to use TLP for power management governing with max_performance set for both SATA ALPM settings in /etc/default/tlp

# SATA aggressive link power management (ALPM):
#   min_power, medium_power, max_performance


The Elan touchscreen in the Flex does not cope well with USB power management while running on Linux kernel version 3.18.6.

Enabling automatic power control for the usb device will immedietly result the touchscreen to stop responding to input. Your usb device ids may vary.

echo auto > '/sys/bus/usb/devices/1-4.4/power/control';

It seems to be possible to get the touchscreen back on it's feet by simply setting always power on option with

echo on > '/sys/bus/usb/devices/1-4.4/power/control';

Also after suspend or hibernate resume the touchscreen may appear as not responding. Weird enough just by reading some input from /dev/input/mouse1 will get it back to working.

# dd if=/dev/input/mouse1 of=/dev/null bs=10 count=1

At the moment there is no known real touch input support in addition to the plain mouse emulation.