Arch Linux on Lenovo IdeaPad Y700 15"

Collection of tweaks that I gathered after installing Arch Linux on to Lenovo IdeaPAD Y700.

What works

  • WIFI
  • Suspend (look at the bumblebee issue with suspend if nvidia module gets loaded on resume)
  • Hibernate
  • Sound without subwoofer
  • Video (I used bumblebee to switch between intel/nvidia GPUs)
  • Brightness
  • Keyboard backlit
  • Power managment via laptop mode tools and systemd.
  • Card reader (you might need to run echo 1 | sudo tee /sys/bus/pci/rescan so card reader becomes visible)
  • HDMI output

What does not work so far

  • Subwoofer

Installation

Boot

Extra tweaking

Video

  • Make sure switchable GPUs are enabled in BIOS
  • Follow insructions on the arch wiki
  • To enable intel GPU add i915.preliminary_hw_support=1 to GRUB_CMDLINE_LINUX_DEFAULT in the /etc/default/grub file. This should be solved after 4.3 kernel release.
  • Problems with video scaling in fullscreen mode can be solved by using gl as an output driver (mplayer -vo gl).

Wifi

Since there is no HW based wifi switch (only Fn+F5 combination) and kernel still tries to read it wifi is reported disabled on every boot. There was a patch for the 17 inch model here.

Temporary solution 1:

  • sudo systemctl enable rfkill-unblock@wifi.service
  • sudo rfkill unblock wifi
  • Works fine with wicd
  • Configuring NetworkManager service to be run after rfkill service should also work

Temporary solution 2:

  • echo blacklist ideapad_laptop | sudo tee /etc/modprobe.d/blacklist.conf to disable acpi module

Audio clicking

This is caused by suspend-on-idle module in the pulse audio. Instead of disabling the module I decided to just set very long timeout. To do that append timeout=36000 to line load-module module-suspend-on-idle in the /etc/pulse/default.pa configuration file. And now restart pulse by running pulseaudio --kill and pulseaudio --start.

Hibernate

  • Add resume=/dev/my-swap-partition to GRUB_CMDLINE_LINUX_DEFAULT line in /etc/default/grub
  • Run sudo grub-mkconfig -o /boot/grub/grub.cfg
  • Add resume to the list of HOOKS in /etc/mkinitcpio.conf before filesystems but after all block, sata and other hardware related hooks.
  • Run sudo mkinitcpio -p linux
  • Reboot
  • systemctl hibernate should work now

Comments