# Samsung N120

This article aims on providing the informations on installing and setting up Arch Linux on the Samsung N120. Basically I used information from Samsung NC10 netbook wiki.

A lot of the information is derived from the NC10 Arch Forum and N120 Arch Forum and several hints scattered around in the ArchWiki.

## Prior to Installation, current state and Common Issues You Should Be Aware Of

Following information is based on kernel 2.6.32 (2010.04.08).

- Suspend to RAM and Suspend to Disk works perfectly.
- Webcam works out-of-the-box, even with Skype.
- Volume controls and LAN works.
- WLAN works out of the box for Atheros hardware and with Realtek hardware after installing firmware.
- Audio (including onboard microphone, speakers and audio off on earphone plugging) is working flawlessly.
- It is possible to get all Fn+key combinations working (See Fn-keys and fix).
- Updating BIOS to version 07CE (or later) fixes some brightness control issues.
- If you encounter problems with the installation from USB disk, add acpi=off to the kernel parameters.

## Installation

You can use the usb image provided at the official download locations or the iso, if you have an external optical drive. If installation fails try to add acpi=off to the kernel parameters.

## Configure your installation

### Network

#### Ethernet

Works out-of-the-box with stock kernel module sky2.

#### Wireless

- With devices based on Atheros chip use the stock kernel module ath5k.
- With Realtek based devices wireless works with stock kernel module r8192e_pci.

See Wireless network configuration for more information.

### Video

### Initial Brightness

The full brightness can be set with the following command

    setpci -s 00:02.1 F4.B=FF

where FF is the highest level of brightness. That parameter moves in the range 00..FF. Don't set it too low because your backlight will turn off! I tried different parameters and optimal are F.4B=45 or F.4B=50. I added setpci -s 00:02.1 F4.B=40 to my /etc/rc.local.

### Graphics Adapter

The Video controller is a typical Intel chipset that works with the xf86-video-intel driver (or xf86-video-intel-new from AUR)

To save some interrupts and therefore power you can disable dri in your xorg.conf. This disables 3D effects but if you do not need them this could be an option.

    Section "Device"
    Option "NoDRI"
    Identifier "Card0"
    Driver "intel"
    VendorName "Intel Corporation"
    BoardName "Mobile 945GME Express Integrated Graphics Controller"
    BusID "PCI:0:2:0"
    EndSection

#### External VGA

External VGA works out of the box with xrandr

in order to prevent problems when switching to console or when unplugging the external monitor, make sure to specify the frequency along with the mode, for example :

    xrandr --output VGA --mode 1280x1024 --rate 60

You can also use randr frontend, lxrandr for example.

Dual head positioning works also perfectly : Xorg#Multiple monitors

### Audio

The audio device is an Intel HD. Since alsa 1.0.19 distributed in archlinux extra repository, you do not need to manually install alsa driver. Everything is working out of the box: onboard microphone and speakers, audio off on earphone plugging.

Troubleshooting :

- If the volume is too low, or lower than in Windows run alsamixer, and set "front" to 100%.

- If the microphone does not work, press F4 in alsamixer and play with the settings (boost to 0, digital and capture to mid-values, and input to front-mic should be a sane default).

Note that settings can be saved with "alsactl store"

- One user reported that he had to disable every snd module in his rc.conf except for two: snd_hda_intel and snd_pcm_oss.

- [deprecated] if the speakers do not mute when you plug in headphones, you may need to compile alsa.

Download latest alsa build. Extract the tar.bz2 and open a console on alsa source folder

    1.execute this command : ./configure --with-cards=hda-intel --with-oss=yes --with-sequencer=yes
    2.execute this command : make
    3.execute this command : sudo make install
    4.get alsa-utils with pacman
    5.configure sound volume with alsamixer , reboot , and enjoy :)

### Suspend and Hibernate

Pm-suspend should work correctly without any quirks at the moment.

You can use this command not only to suspend from terminal but also in combination with acpid

If after closing the lid your machine doesn't wake up from suspend correctly and needs to be resumed multiple times, you can try using the following workaround. This is an excerpt from /etc/acpid/handler.sh file:

        button/lid)
           if [ `/bin/awk '{print $2}' /proc/acpi/button/lid/LID0/state` = closed ]; then
               /usr/sbin/pm-suspend
           fi
           ;;

In contrast hibernate works without "modifications" (except the ones mentioned in the pm-utils article).

If you are a kde4/kdemod user you can take advantage of powerdevil (included in kdemod-core/kdemod-kdebase-workspace since release 4.2). Screen brightness, cpu scaling, suspend and hibernate all work flawlessly, without any hack.

Right after resume you may notice (i.e. in powertop) lost support for C2 and C4 CPU states. Don't panic. Those modes are likely to return in several minutes.

### Fn Keys

You need at least kernel 2.6.28.4 to get the Fn keys to work correctly.

(Volume Controls worked out of the box in kdemod 4.2)

To bind the Fn keys to action, read Extra keyboard keys. The suspend key (Fn+ESC) and disable touchpad (Fn+F10) keys should work out of the box. Note, that suspend key is handled in /etc/acpi/handler.sh (see "power/sleep" case entry). If you use pm-utils, you should substitute the default action with the call to pm-suspend or pm-hibernate.

This tweak taken from Ubuntu wiki. To get volume and brightness Fn keys work in Gnome you have to make sure that gnome-power-manager is running and add ";N120" to the list of Samsung models in /usr/share/hal/fdi/information/10freedesktop/30-keymap-misc.fdi, i.e.

    <match key="/org/freedesktop/Hal/devices/computer:system.hardware.product"
    contains_outof="SP55S;SQ45S70S;SX60P;R59P/R60P/R61P;Q310;X05">

becomes

    <match key="/org/freedesktop/Hal/devices/computer:system.hardware.product"
    contains_outof="SP55S;SQ45S70S;SX60P;R59P/R60P/R61P;Q310;X05;N120">

Also you can play with xbindkey. As an example, here is how to bind the keys for volume control :

1) install xbindkeys (and xbacklight from package xorg-server-utils for brightness control):

    pacman -S xbindkeys xorg-server-utils

2) crate a config file in your home directory :

    vi .xbindkeysrc

3) with the following content :

    "amixer sset Master 2+ &"
        m:0x0 + c:176
    "amixer sset Master 2- &"
        m:0x0 + c:174
    #"amixer sset Master 0 &"
    "amixer sset Master toggle &"
        m:0x0 + c:160
    #"sudo pm-suspend"
    #    m:0x0 + c:223
    "xbacklight +10"
        m:0x0 + c:233
    "xbacklight -10"
        m:0x0 + c:232

For your NC10 Fn keysums may differ. If any Fn keys do not work with the above .xbindkeysrc, you should check the keysum values with

    xbindkeys -k

4) run xbindkeys :

    xbindkeys

and volume control should work within an X session !

to add aditional bindings, you can get the codes of most of the Fn-keys with

    xbindkeys -k

For the keys that are not recongnized, see

    dmesg |tail

to make the kernel recognize them.

(If your Screen is not bright enough, boot into Windows and set the Brightness to maximum)

(you can adjust Brightness during the boot process without returning into Windows and you need to set maximum brightness on battery only mode)

Alternatively, you can add needed broghtness level on the boot, simply add line setpci -s 00:02.1 F4.B=FF (00..FF) to your /etc/rc.local.

#### Fix Fn + key combinations does not produce key release events

Run and add following command to /etc/rc.local to fix Fn-key behavior (14052):

    echo 133-139,143,147,236,227 > /sys/devices/platform/i8042/serio0/force_release

For example the brightness controls (Fn+Up/Down) should now work as expected.

### Power saving

See power saving.

Category:

- Samsung