Blog posts about free software,
usage, configuration and my involvement in free software
Posted by Sebastian Humenda at 23.08.2016, 16:59
The Lenovo Yoga 700 is a laptop with a 360° rotatable touch display and comes with Windows 10 preinstalled. This article is split into two parts. The first part walks through the installation and set up of Debian Jessie GNU/Linux on this machine and what needs to be done to get all of the hardware working. The second part deals with useful configuration hints for this model and finally a general note on interoperability with Windows.
The Lenovo Yoga is equipped with a 500 GB SSHD (with 8 GB of SSD cache), 4 GB RAM, a 14" touch display and no optical drive. Other sites on the web will have more information about the model.
lspci detects the following connected devices:
00:00.0 Host bridge: Intel Corporation Device 1904 (rev 08) 00:02.0 VGA compatible controller: Intel Corporation Device 1916 (rev 07) 00:04.0 Signal processing controller: Intel Corporation Device 1903 (rev 08) 00:14.0 USB controller: Intel Corporation Device 9d2f (rev 21) 00:14.2 Signal processing controller: Intel Corporation Device 9d31 (rev 21) 00:15.0 Signal processing controller: Intel Corporation Device 9d60 (rev 21) 00:16.0 Communication controller: Intel Corporation Device 9d3a (rev 21) 00:17.0 SATA controller: Intel Corporation Device 9d03 (rev 21) 00:1c.0 PCI bridge: Intel Corporation Device 9d15 (rev f1) 00:1f.0 ISA bridge: Intel Corporation Device 9d48 (rev 21) 00:1f.2 Memory controller: Intel Corporation Device 9d21 (rev 21) 00:1f.3 Audio device: Intel Corporation Device 9d70 (rev 21) 00:1f.4 SMBus: Intel Corporation Device 9d23 (rev 21) 01:00.0 Network controller: Intel Corporation Device 3166 (rev 99)
Debian Jessie provides a solid basis for everyday work, but the hardware support with its 3.2 kernel is too old. Since this laptop was meant to work flawlessly, I chose to install stable instead of testing. Since the Yoga 700 is equipped with a touch display, it is advisable to use a desktop environment with support for this. Debian's default environment GNOME is a good choice, so pick wisely when downloading an installation image.
The WiFi card is not supported by the stock Jessie kernel, hence I downloaded a full CD image, to perform the installation off-line. I wrote the image to a USB drive using:
dd if=debian*.iso of=/dev/sdb
It is advisable to run the installation in text-mode, because the graphics card is not fully supported with the Jessie kernel as well.
When the partition manager showed up, I chose to shrink the partition of Windows and create a Debian partition on the freed space with 20 GB. The rest of the installation went smoothly and EFI boot was set up without any manual interventions. This surprised me the most, because installation was in fact easier than without EFI, where the user was always confronted with a "Do you really want to overwrite the MBR" screen.
When the Debian installation was done, I rebooted and ended up with a non-working X setup. I changed to the virtual console using control+alt+f1 to find out the source of the error. The X log said:
(EE) no screens found(EE)
Note: Lenovo changed their Laptop layout to swap the F
<num> keys with some other functionality. Use
fn + F<num>, to obtain the old behaviour.
Further digging in the log file revealed, that the chip set was not supported. After some hours of try and failure, I discovered, that installing two packages from backports was the solution. I first fetched linux-image and firmware-iwlwifi (the first from backports, the second from testing), put them on the USB drive and installed them on the target system:
mount /dev/sdb /mnt cd /mnt/sdb dpkg -i linux*.deb dpkg -i firm*.deb cd umount /mnt
After a reboot, I was indeed able to set up a wireless connection.
Note: If installing the firmware does not work for you, you can get the missing files from https://github.com/OpenELEC/iwlwifi-firmware. These need to be moved to
To fix the X error, I set up backports to install a newer package for the graphics card. After I inserted the required lines in
/etc/apt/sources.list, I ran:
apt-get update apt-get dist-upgrade -y apt-get -t jessie-backports install xserver-xorg-video-intel service gdm3 stop && service gdm3 start
The Lenovo Yoga 700 is certainly not the most advanced laptop from Lenovo and its hardware support on GNU/Linux might not be complete, but it can be easily adapted.
The internal SSHD will cache frequently used files (supposedly mostly programs) and will indeed deliver good performance after using the machine for a short while, re-boots included. It is however fairly easy to speed up the boot process even more by installing readahead. This program will simply gather a list of files used during boot and will load them in advance and in parallel to the kernel cache (main memory) to speed up the boot process. The installation is as easy as:
apt-get install readahead sudo touch /etc/readahead.d/profile-once reboot
The next boot will take longer than usual, but subsequent reboots should be faster.
There are two services which are often not necessary on a regular laptop/desktop system: exim4 and ModemManager. Disabling services influences boot time and potentially increases batter lifetime, because the CPU doesn't need to wake up as often. The email server exim4 and the modem manager can be disabled like this:
systemctl disable exim4 systemctl disable ModemManager
For this particular laptop model, the Debian installer did not install the laptop-mode-tools, which it normally does. It can be manually installed:
apt-get install laptop-mode-tools
This increases battery lifetime noticeably.
The more recent Windows versions do not properly shutdown, but hibernate the system. This has the advantage that users get the impression of a really quick boot up of Windows but the downside that volumes are never cleanly unmounted and hence it's unsafe to access them from another operating system. The quickest solution is to disable hibernation in Windows all together. In Windows, type
cmd in the search field of the start menu, choose the appropriate entry and start a shell with administrator privileges by right-clicking the item and selecting "run as administrator". Once in the command interpreter, type:
powercfg -h off
After this, the Windows partition can be used from Debian, instructions can be found here.