Difference between revisions of "Samsung N140"

From ArchWiki
Jump to: navigation, search
m (fixes)
(Saving Power: Remove out of date cpufreq information. Module is auto loaded now. Remove battery info not related to Arch linux.)
 
(27 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
[[Category:Samsung]]
 
[[Category:Samsung]]
{{out of date}}
 
 
This article provides information about installing and setting up Arch Linux on the Samsung N140. It is also relevant for the Samsung N130 which is identical except for the omission of Bluetooth and stereo speakers (and possibly a different battery capacity). There are versions of the N130 which include a 3G cellular modem, available from Vodafone and China Mobile. The [[Samsung NC10]] is similar but not identical to the N140, so you may or may not find useful information on that page.
 
This article provides information about installing and setting up Arch Linux on the Samsung N140. It is also relevant for the Samsung N130 which is identical except for the omission of Bluetooth and stereo speakers (and possibly a different battery capacity). There are versions of the N130 which include a 3G cellular modem, available from Vodafone and China Mobile. The [[Samsung NC10]] is similar but not identical to the N140, so you may or may not find useful information on that page.
 
=== BIOS issues ===
 
 
==== No backlight setting via ACPI ====
 
 
A workaround is to use {{ic|setpci}} as shown below.
 
 
Alternatively there is a kernel patch (unrelated to the SATA freeze problem) available which changes the backlight brightness using SMI instead of poking PCI config space. It provides a kernel module called "samsung-laptop". Interestingly we see from a version of this patch which is included in OpenSUSE 11.1 that a special (as yet unreleased?) BIOS for the N130 can be informed that the OS is Linux. The effect of this hasn't been published. Suggestion: run the samsung-laptop module with its debug parameter set to 1 to check whether it does anything at all.
 
 
==== No key releases for some Fn keys ====
 
 
Some of the Fn keys give key press events but no key releases. This problem was also seen on the NC10 and NC20. A workaround is given below. For kernels 2.6.32 and later this can be done from userspace.
 
  
 
== Installation ==
 
== Installation ==
Line 19: Line 6:
 
Do the standard Arch installation procedure from the ARCH CD ISO using an external USB CDROM drive. Alternatively boot the Arch installer from a USB flash drive.
 
Do the standard Arch installation procedure from the ARCH CD ISO using an external USB CDROM drive. Alternatively boot the Arch installer from a USB flash drive.
 
The standard Arch kernel is recommended.
 
The standard Arch kernel is recommended.
 
A number of users have used a custom kernel for the following reasons:
 
* to boot with a minimal kernel containing just the required modules and without an initial ramdisk
 
 
=== Custom kernel without initrd ===
 
 
An AUR package [https://aur.archlinux.org/packages.php?ID=52790 linux-n130] is available. In this kernel most drivers are compiled in and there is no initial ramdisk. The drivers for cpu frequency scaling (acpi-cpufreq), wifi (ath9k, rtl8192e) and webcam (uvcvideo) are compiled as modules (i.e. '''not''' compiled in) so they can be inserted or removed from the kernel to enable or disable those features. Modules files in {{ic|/etc/modules.d}} can be used to enable or disable loading at boot.
 
 
Prepare the directory
 
$ mkdir ~/builds
 
$ mkdir ~/builds/linux-n130
 
$ cd ~/builds/linux-n130
 
Get the AUR package and untar it
 
$ wget https://aur.archlinux.org/packages/li/linux-n130/linux-n130.tar.gz
 
$ tar zxvf linux-n130.tar.gz
 
$ cd linux-n130
 
 
At this point you can edit the PKGBUILD file if you need to change the name or version number, change options or add additional patches.
 
 
Check the PKGBUILD. Don't experiment with the CK patchset at this point:
 
_USE_CK_PATCHSET=0
 
Compile it (this will take some time...):
 
$ makepkg -s
 
[[pacman|Install]] the kernel from the new .pkg.tar.xz file.
 
 
Then insert a new item in your boot loader configuration file to boot the new kernel "linux-N130". Note that no initrd line is necessary for this kernel.
 
 
For [[GRUB]] edit {{ic|/boot/grub/grub.cfg}}. The syntax looks like this (sda1 = your root partition; sda2 = your swap partition):
 
 
menuentry "Arch Linux N130" {
 
  set root=(hd0,1)
 
  linux /boot/vmlinuz-N130 root=/dev/sda1 resume=/dev/sda2 ro quiet
 
}
 
 
For [[GRUB Legacy]] edit {{ic|/boot/grub/menu.lst}}. The syntax looks like this:
 
 
# (3) Arch Linux N130
 
title  Arch Linux Custom N130 Kernel
 
root  (hd0,YOURROOT-1)
 
kernel /boot/vmlinuz-N130 root=/dev/sdaYOURROOT resume=/dev/sdaYOURSWAP ro quiet
 
 
Reboot. If you have problems the standard Arch kernel is still installed and selectable from the GRUB menu.
 
{{Note|The linux-n130 has the i915 module compiled in with KMS enabled by default. There is no need to set up KMS as described below unless you wish to disable it.}}
 
  
 
== Configure your installation ==
 
== Configure your installation ==
Line 78: Line 22:
  
 
The kernel module for this device is "ath9k". Kernels 2.6.32 release candidates and later seem to work fine.
 
The kernel module for this device is "ath9k". Kernels 2.6.32 release candidates and later seem to work fine.
 
A [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=54ab040d24904d1fa2c0a6a27936b7c56a4efb24 patch] was included in 2.6.32 just before the final release. It disables PS (power saving) mode by default, since this mode was found to have problems. See [http://bugzilla.kernel.org/show_bug.cgi?id=14267 here] . PS mode can also be disabled through a dedicated systemd service containing {{ic|iwconfig wlan0 power off}} command.
 
  
 
==== Realtek RTL8192E ====
 
==== Realtek RTL8192E ====
  
===== Open source driver =====
+
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8192E/RTL8192SE Wireless LAN Controller (rev 01)
 
+
The native Linux driver for this wireless device is still in preparation, but it is available as a kernel module "rtl8192e" in "staging" -- i.e. in preparation for inclusion in the kernel and available to try out, but likely to still have some problems. It has been reported as working [https://bbs.archlinux.org/viewtopic.php?id=86454&p=6]. {{Pkg|linux-firmware}} package is required. See
+
http://lkml.org/lkml/2009/12/15/410.
+
 
+
On rebooting, the kernel messages (visible with "dmesg") should now indicate that rtl819xE finds the firmware for loading into the device.
+
 
+
Note: [[wicd]] may cause excessive dropped connections with this driver, while [[NetworkManager]] appears to work better.
+
 
+
===== Ndiswrapper =====
+
  
It has been reported as working with [[Wireless_Setup#ndiswrapper|ndiswrapper]] which makes use of the closed source Windows driver under Linux.
+
Confirmed working out of the box on the current release (2014.07.03), with 3.15.3 Kernel.
  
 
=== Cellular 3G Modem ===
 
=== Cellular 3G Modem ===
Line 109: Line 42:
 
==== Kernel Mode Setting ====
 
==== Kernel Mode Setting ====
  
See also [[Intel#KMS_.28Kernel_Mode_Setting.29]].
+
See also [[Intel#KMS .28Kernel Mode Setting.29]].
  
 
[[KMS]] works providing real consoles at the native LCD resolution, 1024x600.
 
[[KMS]] works providing real consoles at the native LCD resolution, 1024x600.
Line 143: Line 76:
 
Regenerate the init ramdisk for the kernel(s) you are running:
 
Regenerate the init ramdisk for the kernel(s) you are running:
 
  $ mkinitcpio -p linux
 
  $ mkinitcpio -p linux
or
 
$ mkinitcpio -p linux-n140
 
 
Remove any vga= or video= from grub {{ic|/boot/grub/menu.lst}} kernel line, and reboot.
 
Remove any vga= or video= from grub {{ic|/boot/grub/menu.lst}} kernel line, and reboot.
 
==== KMS with KDE ====
 
 
With earlier versions of KDE, on logout it returned to the F1 real console instead of to [[KDM]].
 
Uncommenting this entry in {{ic|/usr/share/config/kdm/kdmrc}} solved the problem:
 
  TerminateServer=true
 
This setting is now the default.
 
  
 
==== Backlight Brightness ====
 
==== Backlight Brightness ====
  
xbacklight does not work currently.
+
Brightness function keys confirmed working out of the box on current release (2014.07.03) with 3.15.3 kernel.
However the brightness can be set with the following command
+
 
+
setpci -s 00:02.1 F4.B=hh
+
 
+
where hh is the level of brightness, in the range 00 to FF. Don't set it to zero
+
because your backlight will turn off!
+
 
+
Note this does not require the samsung-laptop patch mentioned above.
+
 
+
Use the following script to increase and decrease the brightness. Put it in
+
/sbin/backlight for example. Use xbindkeys to bind commands to the backlight Fn keys.
+
Obtain sudo permission for user to use those commands with visudo.
+
 
+
#!/bin/bash
+
# increase/decrease/set/get the backlight brightness (range 0-255) by 16
+
#
+
#get current brightness in hex and convert to decimal
+
var1=$(setpci -s 00:02.1 F4.B)
+
var1d=$((0x$var1))
+
case "$1" in
+
      up)
+
              #calculate new brightness
+
              var2=$(echo "ibase=10; obase=16; a=($var1d+16);if (a<255) print a else print 255" | bc)
+
              echo "$0: increasing brightness from 0x$var1 to 0x$var2"
+
              setpci -s 00:02.1 F4.B=$var2
+
              ;;
+
      down)
+
              #calculate new brightness
+
              var2=$(echo "ibase=10; obase=16; a=($var1d-16);if (a>15) print a else print 15" | bc)
+
              echo "$0: decreasing brightness from 0x$var1 to 0x$var2"
+
              setpci -s 00:02.1 F4.B=$var2
+
              ;;
+
      set)
+
              #n.b. this does allow "set 0" i.e. backlight off
+
              echo "$0: setting brightness to 0x$2"
+
              setpci -s 00:02.1 F4.B=$2
+
              ;;
+
      get)
+
              echo "$0: current brightness is 0x$var1"
+
              ;;
+
      toggle)
+
              if [ $var1d -eq 0 ] ; then
+
                      echo "toggling up"
+
                      setpci -s 00:02.1 F4.B=FF
+
              else
+
                      echo "toggling down"
+
                      setpci -s 00:02.1 F4.B=0
+
              fi
+
              ;;
+
      *)
+
              echo "usage: $0 {up|down|set <val>|get|toggle}"
+
              ;;
+
esac
+
exit 0
+
  
 
==== External VGA ====
 
==== External VGA ====
Line 222: Line 92:
  
 
=== Suspend and hibernate ===
 
=== Suspend and hibernate ===
 +
Suspend and hibernate work out of the box with {{ic|systemd-logind}}.  See below for setting up resuming from [[#Hibernate|hibernation]].
  
Suspend to RAM with {{ic|pm-suspend}} works.
+
Edit {{ic|/etc/systemd/logind.conf}} to change default key handling.
  
It is most useful to trigger suspends using [[acpid]].
+
/etc/systemd/logind.conf
 +
---------------------------------------
 +
HandlePowerKey=poweroff
 +
HandleSuspendKey=suspend
 +
HandleHibernateKey=hibernate
 +
HandleLidSwitch=suspend
  
To catch the "sleep" function key, edit {{ic|/etc/acpi/handler.sh}} so that the button/sleep) event calls /usr/sbin/pm-suspend (instead of "echo mem > /sys/power/state" which may leave wifi down after resume):
+
Don't forget to restart the service after making changes
 +
# systemctl restart systemd-logind.service
  
button/sleep)
+
You can call the functions from the command line with {{ic|systemctl ''function''}}
  case "$2" in
+
  SLPB) logger "Sleep button pressed, suspending to RAM"
+
    /usr/sbin/pm-suspend
+
    ;;
+
  *)    logger "ACPI action undefined: $2"
+
    ;;
+
  esac
+
;;
+
  
When catching the lid closure, the button/lid event will be seen twice -- once on suspend
 
and again on resume. So use the lid state to distinguish between these so that pm-suspend
 
is not triggered twice.
 
  
Enter the following lines in {{ic|/etc/acpi/handler.sh}}:
+
Alternatively using a power manager, for example {{ic|xfce4-power-manager}}, you can control key handling from a GUI.
button/lid)
+
 
  if [ $(/bin/awk '{print $2}' /proc/acpi/button/lid/LID0/state) = closed ]; then
+
    /usr/sbin/pm-suspend
+
  fi
+
;;
+
  
Hibernate works correctly. See [[pm-utils]].
 
  
 
If you are a KDE4 user you can take advantage of powerdevil (included in kdemod-core/kdemod-kdebase-workspace since release 4.2) to manipulate the screen brightness, cpu scaling and hibernate. Suspend
 
If you are a KDE4 user you can take advantage of powerdevil (included in kdemod-core/kdemod-kdebase-workspace since release 4.2) to manipulate the screen brightness, cpu scaling and hibernate. Suspend
Line 257: Line 118:
 
to be loaded at boot.
 
to be loaded at boot.
  
=== Fn keys ===
+
====Hibernate====
 +
Hibernate works out of the box with {{ic|systemd}}, but you need to have a SWAP file/partition.
  
Firstly edit {{ic|/usr/share/hal/fdi/information/10freedesktop/30-keymap-misc.fdi}}
+
You will need to add {{ic|<nowiki>resume=swap_partition</nowiki>}} to your kernel parameters.  Example below for GRUB.
and insert N140 into the list where you see NC10 already.
+
  
Now in a real console
+
/etc/default/grub
  showkey
+
---------------------------------------------
 +
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda1"
  
will show presses for the function keys, but ''no releases'' for some of them.
+
Run {{ic|grub-mkconfig -o /boot/grub/grub.cfg}}
  
This is a BIOS issue which was also found on the Samsung NC10. A workaround quirk was put in the
+
kernel in atkbd.c for the NC10. Patching this routine to apply the same
+
If you use an initramfs (default for Arch), you need to add the {{ic|resume}} hook into the configuration of [[mkinitcpio]]
quirk also works for the N140.
+
There is a much simpler solution because this quirk can now be applied from user space. Simply create a systemd tmpfile with the following line:
+
  
{{hc|/etc/tmpfiles.d/local.conf|
+
/etc/mkinitcpio.conf
  w /sys/devices/platform/i8042/serio0/force_release - - - - 130,131,132,134,136,137,179,247,249
+
  ---------------------------------------------------------------
}}
+
# resume must be placed after block and lvm2, but before filesystems
 +
HOOKS="... block lvm2 resume filesystems ..."
  
After this is run, doing {{ic|showkey}} in a real console will show key presses and releases.
+
Then, rebuild the initrd image
 +
# mkinitcpio -p linux
  
==== Binding Fn keys with xbindkeys ====
+
=== Fn keys ===
 
+
The following has been tested with KDE, but should also work for other DEs.
+
 
+
To bind the Fn keys to action, read [[Extra_Keyboard_Keys#The_quick_way]] and also [[Extra_Keyboard_Keys_in_Xorg#Using_your_Desktop_Environment_tools|Extra Keyboard Keys in Xorg]].
+
 
+
The suspend key {{Keypress|Fn+ESC}} and disable touchpad {{Keypress|Fn+F10} keys, numlock, scroll lock,
+
volume controls and mute work out of the box.
+
 
+
Note, that suspend key is handled in {{ic|/etc/acpi/handler.sh}} (see "button/sleep" case entry) as
+
shown above.
+
 
+
# Install {{Pkg|xbindkeys}}
+
# Check the key values with {{ic|xbindkeys -mk}}
+
# Edit .xbindkeysrc {{bc|
+
  "sudo /sbin/backlight up"
+
      m:0x0 + c:233
+
  "sudo /sbin/backlight down"
+
      m:0x0 + c:232
+
  "/home/user/bin/systeminfo_battery"
+
      m:0x0 + c:244
+
  "sudo /sbin/backlight toggle"
+
      m:0x0 + c:156
+
  "/home/user/bin/systeminfo_disk"
+
      m:0x0 + c:157
+
  "/home/user/bin/systeminfo_cpu"
+
      m:0x0 + c:210
+
  "/home/user/bin/systeminfo_wifi"
+
      m:0x0 + c:246
+
}}
+
 
+
# Run {{ic|xbindkeys}}, and try it out
+
 
+
For KDE4 put a link to {{ic|/usr/bin/xbindkeys}} in {{ic|~/.kde4/Autostart}}:
+
  ln -s /usr/bin/xbindkeys ~/.kde4/Autostart/xbindkeys.link
+
 
+
The {{Keypress|Fn+F3}} ("Euro") key: here Samsung implemented what has been called
+
an [http://lists.freedesktop.org/archives/hal/2009-August/013536.html entertaingly hilarious hack].
+
Fortunately some eurozone models have a real Euro key as well.
+
  
 
==== Binding Fn keys in Openbox ====
 
==== Binding Fn keys in Openbox ====
  
 
In [[Openbox]] one can use the internal keybind setup instead of xbindkeys.
 
In [[Openbox]] one can use the internal keybind setup instead of xbindkeys.
Here is an excerpt from rc.xml:
+
Example of rc.xml (In this instance, volume Fn Keys):
  
     <keybind key="XF86Battery">
+
 
 +
    <!-- Multimedia Keys -->
 +
     <keybind key="XF86AudioRaiseVolume">
 
       <action name="Execute">
 
       <action name="Execute">
         <command>~/.PersonalBin/batteryDisplay</command>
+
         <command>amixer set Master 5%+ unmute</command>
 
       </action>
 
       </action>
 
     </keybind>
 
     </keybind>
     <keybind key="XF86Display">
+
     <keybind key="XF86AudioLowerVolume">
 
       <action name="Execute">
 
       <action name="Execute">
         <command>~/.PersonalBin/monitor</command>
+
         <command>amixer set Master 5%- unmute</command>
 
       </action>
 
       </action>
    </keybind>
 
    <keybind key="XF86Launch1">
 
      <action name="Execute">
 
        <command>~/.PersonalBin/brightnessToggle</command>
 
      </action>
 
    </keybind>
 
    <keybind key="XF86Launch2">
 
      <action name="Execute">
 
        <command>nice python ~/.config/openbox/scripts/checkmail.py --update</command>
 
      </action>
 
    </keybind>
 
    <keybind key="XF86Launch3">
 
      <action name="Execute">
 
        <command>~/.PersonalBin/powersaveToggle</command>
 
      </action>
 
    </keybind>
 
 
     </keybind>
 
     </keybind>
 
     <keybind key="XF86AudioMute">
 
     <keybind key="XF86AudioMute">
 
       <action name="Execute">
 
       <action name="Execute">
         <command>~/.PersonalBin/volume mute</command>
+
         <command>amixer set Master toggle</command>
      </action>
+
    </keybind>
+
    <keybind key="XF86WLAN">
+
      <action name="Execute">
+
        <command>~/.PersonalBin/wlanToggle</command>
+
      </action>
+
    </keybind>
+
    <keybind key="XF86AudioLowerVolume">
+
      <action name="Execute">
+
        <command>~/.PersonalBin/volume -</command>
+
      </action>
+
    </keybind>
+
    <keybind key="XF86AudioRaiseVolume">
+
      <action name="Execute">
+
        <command>~/.PersonalBin/volume +</command>
+
      </action>
+
    </keybind>
+
    <keybind key="XF86MonBrightnessDown">
+
      <action name="PreviousWindow">
+
        <bar>no</bar>
+
        <allDesktops>yes</allDesktops>
+
        <finalactions>
+
          <action name="Focus"/>
+
          <action name="Raise"/>
+
        </finalactions>
+
      </action>
+
    </keybind>
+
    <keybind key="XF86MonBrightnessUp">
+
      <action name="NextWindow">
+
        <bar>no</bar>
+
        <allDesktops>yes</allDesktops>
+
        <finalactions>
+
          <action name="Focus"/>
+
          <action name="Raise"/>
+
        </finalactions>
+
 
       </action>
 
       </action>
 
     </keybind>
 
     </keybind>
Line 392: Line 167:
 
=== Saving Power ===
 
=== Saving Power ===
  
Read [[Laptop#Power_Management]].
+
Read [[Laptop#Power management]].
Read [[Lightweight Applications]].
+
 
+
{{Note|Caution is advised here with hdparm settings because the issue with SATA freezing is
+
related to power management and spindowns. Before you tune the Samsung N130/N140 to minimize power consumption it is strongly recommended that you resolve the SATA freezing issue as discussed above.}}
+
 
+
The Samsung N130/N140 contains a 1.6 GHz Intel Atom ULV (ultra low voltage) N270 processor, designed for low power consumption. The power consumption of the netbook (not just the processor) can be as low as 6W on idle with HDD spun down, although a typical figure under normal usage would be considerably higher.
+
 
+
Obviously the battery life depends on battery capacity as well as power consumption.
+
The supplied battery varies in different markets. This list is a guideline only. Do not rely on this information before purchase -- check with YOUR vendor and update this wiki if it is incorrect:
+
 
+
Voltage 11.1V
+
 
+
N130            = 4000mAh [44Wh] (most markets), 5200mAh [57Wh] (Sweden)
+
N130 (Vodafone)  = ? [?] (Spain)
+
N130 (CMCC)      = ? [?] (China)
+
N140            = 5200mAh [57Wh] (US, Germany, France, Sweden), 5900mAh [65Wh] (UK)
+
Extended battery = 7800mAh [86Wh]
+
 
+
Install {{Pkg|powertop}} which is a [[powertop|very useful tool]] for measuring and tuning power consumption.
+
 
+
Enable CPU frequency scaling (P-states) by loading the driver module {{ic|acpi-cpufreq}}. This is most conveniently done dropping a namesake file in {{ic|/etc/modules-load.d}}:
+
{{hc|/etc/modules-load.d/acpi-cpufreq.conf|
+
acpi-cpufreq
+
}}
+
 
+
Select the CPU frequency governor by adding the following lines to a systemd tmpfile:
+
{{hc|/etc/tmpfiles.d/local.conf|
+
w /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor - - - - ondemand
+
w /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor - - - - ondemand
+
}}
+
  
 
{{Note|Contrary to the advice in many places {{ic|hdparm -B 255 /dev/sda}} does NOT necessarily turn off advanced power management. What happens depends on the disk model. With the Samsung HM160HI disk 255 results in very frequent spindowns}}
 
{{Note|Contrary to the advice in many places {{ic|hdparm -B 255 /dev/sda}} does NOT necessarily turn off advanced power management. What happens depends on the disk model. With the Samsung HM160HI disk 255 results in very frequent spindowns}}

Latest revision as of 01:41, 12 March 2016

This article provides information about installing and setting up Arch Linux on the Samsung N140. It is also relevant for the Samsung N130 which is identical except for the omission of Bluetooth and stereo speakers (and possibly a different battery capacity). There are versions of the N130 which include a 3G cellular modem, available from Vodafone and China Mobile. The Samsung NC10 is similar but not identical to the N140, so you may or may not find useful information on that page.

Installation

Do the standard Arch installation procedure from the ARCH CD ISO using an external USB CDROM drive. Alternatively boot the Arch installer from a USB flash drive. The standard Arch kernel is recommended.

Configure your installation

Ethernet

RTL8101e/8102e fast ethernet. Works out of the box.

Wifi

The supplied wifi device is either an Atheros AR9285 (PCI ID = 168c:002b) (European markets) or a Realtek RTL8192E (US and UK markets).

Atheros AR9285

02:00.0 Network controller [0280]: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) [168c:002b] (rev 01)

The kernel module for this device is "ath9k". Kernels 2.6.32 release candidates and later seem to work fine.

Realtek RTL8192E

02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8192E/RTL8192SE Wireless LAN Controller (rev 01)

Confirmed working out of the box on the current release (2014.07.03), with 3.15.3 Kernel.

Cellular 3G Modem

Specifications required

Graphics Adapter

The video controller is an Intel chipset that works with the xf86-video-intel driver.

00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GME Express Integrated Graphics Controller [8086:27ae] (rev 03)
00:02.1 Display controller [0380]: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller [8086:27a6] (rev 03)

Kernel Mode Setting

See also Intel#KMS .28Kernel Mode Setting.29.

KMS works providing real consoles at the native LCD resolution, 1024x600. There is a known problem with 2.6.32 kernels (later release candidates up to at least release 2.6.32.8), which results in screen flickering and blackouts about 5 minutes after resuming from suspend-to-RAM or suspend-to-disk.

Note:
  • If you encounter screen flickering or blackouts with KMS enabled, try setting i915.powersave=0 as a kernel boot option
  • Since version 2.10.0 of xf86-video-intel, support for UMS has been removed from the intel driver. This means that KMS is a requirement now
Method A

If you are using a kernel with no inital ramdisk and you can simply add the required options to the GRUB kernel line:

# (3) Arch Linux N130
title  Arch Linux Custom N130 Kernel
root   (hd0,YOURROOT-1)
kernel /boot/vmlinuz26-N130 root=/dev/sdaYOURROOT resume=/dev/sdaYOURSWAP ro quiet i915.powersave=0 i915.modeset=1
Method B

If you are using an initial ramdisk (either the standard kernel or the custom kernel method B above) then do the following:

Edit /etc/modprobe.d/modprobe.conf:

options i915 powersave=0 
options i915 modeset=1

Edit /etc/mkinitcpio.conf:

MODULES="intel_agp i915"
FILES="/etc/modprobe.d/modprobe.conf"

Put keymap early in /etc/mkinitcpio.conf HOOKS. Regenerate the init ramdisk for the kernel(s) you are running:

$ mkinitcpio -p linux

Remove any vga= or video= from grub /boot/grub/menu.lst kernel line, and reboot.

Backlight Brightness

Brightness function keys confirmed working out of the box on current release (2014.07.03) with 3.15.3 kernel.

External VGA

External VGA works out of the box with xrandr / krandrtray. Tested at 1920x1080 resolution.

Audio

The audio device is an Intel HD.

00:1b.0 Audio device [0403]: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller [8086:27d8] (rev 02)

Suspend and hibernate

Suspend and hibernate work out of the box with systemd-logind. See below for setting up resuming from hibernation.

Edit /etc/systemd/logind.conf to change default key handling.

/etc/systemd/logind.conf
---------------------------------------
HandlePowerKey=poweroff
HandleSuspendKey=suspend
HandleHibernateKey=hibernate
HandleLidSwitch=suspend

Don't forget to restart the service after making changes

# systemctl restart systemd-logind.service

You can call the functions from the command line with systemctl function


Alternatively using a power manager, for example xfce4-power-manager, you can control key handling from a GUI.


If you are a KDE4 user you can take advantage of powerdevil (included in kdemod-core/kdemod-kdebase-workspace since release 4.2) to manipulate the screen brightness, cpu scaling and hibernate. Suspend from KDE works too, but if you are using handler.sh to suspend on the button/lid and button/sleep acpi events, then KDE only needs to lock the screen. Note that cpu scaling requires acpi-cpufreq module to be loaded at boot.

Hibernate

Hibernate works out of the box with systemd, but you need to have a SWAP file/partition.

You will need to add resume=swap_partition to your kernel parameters. Example below for GRUB.

/etc/default/grub
---------------------------------------------
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda1"

Run grub-mkconfig -o /boot/grub/grub.cfg


If you use an initramfs (default for Arch), you need to add the resume hook into the configuration of mkinitcpio

/etc/mkinitcpio.conf
---------------------------------------------------------------
# resume must be placed after block and lvm2, but before filesystems
HOOKS="... block lvm2 resume filesystems ..."

Then, rebuild the initrd image

# mkinitcpio -p linux

Fn keys

Binding Fn keys in Openbox

In Openbox one can use the internal keybind setup instead of xbindkeys. Example of rc.xml (In this instance, volume Fn Keys):


   <keybind key="XF86AudioRaiseVolume">
     <action name="Execute">
       <command>amixer set Master 5%+ unmute</command>
     </action>
   </keybind>
   <keybind key="XF86AudioLowerVolume">
     <action name="Execute">
       <command>amixer set Master 5%- unmute</command>
     </action>
   </keybind>
   <keybind key="XF86AudioMute">
     <action name="Execute">
       <command>amixer set Master toggle</command>
     </action>
   </keybind>

Saving Power

Read Laptop#Power management.

Note: Contrary to the advice in many places hdparm -B 255 /dev/sda does NOT necessarily turn off advanced power management. What happens depends on the disk model. With the Samsung HM160HI disk 255 results in very frequent spindowns