Translation(s): none


Installing

Obtain the "Squeeze Alpha 1 Netinstall" AMD 64 CD and burn it to a CD-ROM or Flash to a USB-Stick(unetbootin).
Either configure you WLAN Router for WEP or use a Ethernet to USB Adapter e.g. http://www.dlink.com/products/?pid=133
for Networking, cause the Onboard LAN controller isn't supported by the installer and Wifi only works with WEP.
Boot and install Debian (Textmode->Expert worked fine).

Caution: If installing with option Graphics Desktop, Gnash (a GNU Flash implementation) will be installed and,e.g. Youtube Videos won't work with that.

Configuring

Touchpad: To get 2 Finger scrolling / Tapping disable working, the Elantech driver must be loaded,
which is from 2.6.32 part of psmouse.
However with 2.6.32 from Debian Squeeze it won't work for some reason.Solution: Install 2.6.34 form experimental.
Add
deb http://ftp.de.debin.org/debian experimental main
to /etc/apt/sources.list and install it via
apt-get install -t experimental linux-image-2.6.34-1-amd64

Add the Elantech option for psmouse via
/etc/modprobe.de/psmouse.conf -> options psmouse force_elantech=1.
Install gsynaptics via
apt-get install gsynaptics
and configure it via System->Pointing Devices.

Brightness(Intel):
First off all test if you can change brightness via
setpci -s 00:02.0 F4.B=1(darkest)
or
setpci -s 00:02.0 F4.B=ff(lightest).
If those command change your brightness, you can make it trigger via Fn+F5 / Fn+F6 via ACPI.
For this install the eeepc-acpi-scripts (apt-get install eeepc-acpi-scripts and replace /etc/acpi/actions/hotkey.sh with:

#!/bin/sh

# do nothing if package is removed
PKG=eeepc-acpi-scripts
FUNC_LIB=/usr/share/$PKG/functions.sh
DEFAULT=/etc/default/$PKG
[ -e "$FUNC_LIB" ] || exit 0

case $(runlevel) in
    *0|*6)
        exit 0
        ;;
esac

BACKLIGHT=/sys/class/backlight/eeepc/brightness
if [ -e "$DEFAULT" ]; then . "$DEFAULT"; fi
. $FUNC_LIB

. /etc/acpi/lib/notify.sh
code=$3
value=$(test "x$1" = x- && cat "$BACKLIGHT" || echo "0x$3")

# In case keys are doubly-reported as hotkey and something else.
# It's random (and irrelevant) which is seen first.
acpi=
acpiwrite=
ACPITEST=/lib/init/rw/eeepc-acpi-scripts.acpi-ignore
case "$code" in
    # Soft buttons 3 & 4 and Fn-Space/SHE are special.
    # They're always reported as hotkeys.
    # This will probably break when button events are added for these keys.
    0000001[cd]|00000039)
        ;;
    *)
        if test -f "$ACPITEST"; then
            read acpi <"$ACPITEST"
        else
            acpiwrite=$(test "x$1" = x- && echo hotkey || echo -)
        fi
        test "$1" = "$acpi" && exit 0
        ;;
esac

seen_hotkey() { test "$acpi" = button; }

handle_mute_toggle() {
    /etc/acpi/actions/volume.sh toggle
}

handle_volume_up() {
    /etc/acpi/actions/volume.sh up
}

handle_volume_down() {
    /etc/acpi/actions/volume.sh down
}

show_wireless() {
    if /etc/acpi/actions/wireless.sh detect; then
        status=Off
    else
        status=On
    fi
    notify wireless "Wireless $status"
}

handle_blank_screen() {
    if [ -S /tmp/.X11-unix/X0 ]; then
        detect_x_display

        if [ -n "$XAUTHORITY" ]; then
            xset dpms force off
        fi
    fi
}

show_bluetooth() {
    if bluetooth_is_on; then
        notify bluetooth 'Bluetooth On'
    else
        notify bluetooth 'Bluetooth Off'
    fi
}

handle_bluetooth_toggle() {
    . /etc/acpi/lib/bluetooth.sh
    if [ -e "$BT_CTL" ] || [ "$BLUETOOTH_FALLBACK_TO_HCITOOL" = "yes" ]; then
        toggle_bluetooth
        show_bluetooth
    else
        notify error 'Bluetooth unavailable'
    fi
}

show_camera() {
    if camera_is_on; then
        notify camera 'Camera Enabled'
    else
        notify camera 'Camera Disabled'
    fi
}

handle_camera_toggle() {
    . /etc/acpi/lib/camera.sh
    if [ -e "$CAM_CTL" ]; then
        toggle_camera
        show_camera
    else
        notify error 'Camera unavailable'
    fi
}

show_brightness() {
    # final digit of ACPI code is brightness level in hex
    level=$(($value & 0xF))
    # convert hex digit to percent
    percent=$(((100 * $level + 8) / 15))
    notify brightness "Brightness $percent%" fast
}

handle_shengine() {
    . /etc/acpi/lib/shengine.sh
    handle_shengine "$@"
}

handle_touchpad_toggle() {
    . /etc/acpi/lib/touchpad.sh
    toggle_touchpad
    case "$?" in
        0)
            notify touchpad 'Touchpad on'
            ;;
        1)
            notify touchpad 'Touchpad off'
            ;;
    esac
}

handle_vga_toggle() {
    /etc/acpi/actions/vga-toggle.sh
}

handle_gsm_toggle() {
    /etc/acpi/actions/gsm.sh toggle
    if /etc/acpi/actions/gsm.sh detect; then
        notify gsm "GSM off"
    else
        notify gsm "GSM on"
    fi
}

# Handle events which we're handling differently on different models
case $(cat /sys/class/dmi/id/product_name) in
    [79]*|1000H)
        case $code in
            ZOOM)
                code=0000001b # soft button 2
                ;;
        esac
        ;;
    *)
        case $code in
            ZOOM)
                code=00000038 # Fn-F4
                ;;
        esac
        ;;
esac

case $code in
    # Fn + key:
    # <700/900-series key>/<1000-series key> - function
    # "--" = not available

    # F1/F1 - suspend
    # (not a hotkey, not handled here)

    # F2/F2 - toggle wireless
    0000001[01]|WLAN)
        notify wireless 'Wireless ...'
        if grep -q '^H.*\brfkill\b' /proc/bus/input/devices; then
          :
        else
          /etc/acpi/actions/wireless.sh toggle
        fi
        show_wireless
        if ! /etc/acpi/actions/wireless.sh detect; then
            wakeup_wicd
        fi
        ;;

    # --/F3 - touchpad toggle
    00000037)
        if [ "${FnF_TOUCHPAD}" != 'NONE' ]; then
            ${FnF_TOUCHPAD:-handle_touchpad_toggle}
        fi
        ;;

    # --/F4 - resolution change
    00000038) # ZOOM
        if [ "${FnF_RESCHANGE}" != 'NONE' ]; then
            $FnF_RESCHANGE
        fi
        ;;

    # F3/F5 - decrease brightness
    # F4/F6 - increase brightness
    0000002?)
        # actual brightness change is handled in hardware
        if [ "x$ENABLE_OSD_BRIGHTNESS" != "xno" ]; then
          show_brightness
        fi
        ;;

        BRTDN)
        brightness=$((0x`setpci -s 00:02.0 F4.B`-16));
        if [ $brightness -lt 0 ] ; then
           brightness=1;
        fi
        setpci -s 00:02.0 F4.B=`printf '%x' $brightness`;

        ;;

        BRTUP)
        brightness=$((0x`setpci -s 00:02.0 F4.B`+16));
        if [ $brightness -gt $((0xff)) ] ; then
          brightness=$((0xff));
        fi
        setpci -s 00:02.0 F4.B=`printf '%x' $brightness`;
        ;;

    # --/F7 - backlight off
    00000016)
        if [ "${FnF_BACKLIGHTOFF}" != 'NONE' ]; then
            ${FnF_BACKLIGHTOFF:-handle_blank_screen}
        fi
        ;;

    # F5/F8 - toggle VGA
    0000003[012]|VMOD)
        if [ "${FnF_VGATOGGLE}" != 'NONE' ]; then
            ${FnF_VGATOGGLE:-handle_vga_toggle}
        fi
        ;;

    # F6/F9 - 'task manager' key
    00000012|PROG1)
        if [ "${FnF_TASKMGR:-NONE}" != 'NONE' ]; then
            $FnF_TASKMGR
        fi
        ;;

    # F7/F10 - mute/unmute speakers
    00000013|MUTE)
        if [ "${FnF_MUTE}" != 'NONE' ]; then
            ${FnF_MUTE:-handle_mute_toggle}
        fi
        ;;

    # F8/F11 - decrease volume
    00000014|VOLDN)
        if [ "${FnF_VOLUMEDOWN}" != 'NONE' ]; then
            ${FnF_VOLUMEDOWN:-handle_volume_down}
        fi
        ;;

    # F9/F12 - increase volume
    00000015|VOLUP)
        if [ "${FnF_VOLUMEUP}" != 'NONE' ]; then
            ${FnF_VOLUMEUP:-handle_volume_up}
        fi
        ;;

    # --/Space - SHE management
    # See "SHE button" below

    # Silver keys, left to right

    # Soft button 1
    0000001a|SCRNLCK)
        if [ "${SOFTBTN1_ACTION}" != 'NONE' ]; then
            ${SOFTBTN1_ACTION:-handle_blank_screen}
        fi
        ;;

    # Soft button 2
    0000001b) # ZOOM
        if [ "${SOFTBTN2_ACTION}" != 'NONE' ]; then
            ${SOFTBTN2_ACTION}
        fi
        ;;

    # Soft button 3
    0000001c)
        if [ "${SOFTBTN3_ACTION}" != 'NONE' ]; then
            ${SOFTBTN3_ACTION:-handle_camera_toggle}
        fi
        acpiwrite=
        ;;

    # Soft button 4
    0000001d)
        if [ "${SOFTBTN4_ACTION}" != 'NONE' ]; then
            ${SOFTBTN4_ACTION:-handle_bluetooth_toggle}
        fi
        acpiwrite=
        ;;

    # SHE button
    00000039)
        if [ "${SOFTBTNSHE_ACTION}" != 'NONE' ]; then
            ${SOFTBTNSHE_ACTION:-handle_shengine}
        fi
        acpiwrite=
        ;;

esac

test "$acpiwrite" = '' || echo "$acpiwrite" >"$ACPITEST"



Nvidia: If you want to use Nvidia instead of Intel, reboot to Bios (F2) and set


Install build-essentials, module-assistant, linux-headers-2.6.34-1-all-amd64, nvidia-glx, nvidia-kenrel-source, nvidia-kernel-dkms,nvidia-xconfig
via apt-get install build-essentials module-assistant linux-headers-2.6.34-1-all-amd64 nvidia-glx nvidia-kenrel-source nvidia-kernel-dkms nvidia-xconfig
Call nvidia-xconfig and add BusID “PCI:1:0:0″ to the Device Section of /etc/X11/XF86Config.
Brightness won't work and battery drains faster.Due to the SATA compatiblity mode, Harddisk I/O is much slower(Startup and operation).

Wifi: Works out of the Box

Sound: Works out of the Box

Powermanagement: Use powertop to find out whats draining your battery. When all hacks are applied you get around ~11 Watt.

To increase battery life even more, get http://launchpadlibrarian.net/38458054/nvidia-g210m-acpi-source_0.1.0-1%7Eppa-karmic_all.deb.
Retrieve, unpack,compile and install via (as root):
cd /tmp
apt-get install build-essentials module-assistant linux-headers-2.6.34-1-all-amd64
wget http://launchpadlibrarian.net/38458054/nvidia-g210m-acpi-source_0.1.0-1%7Eppa-karmic_all.deb
ar x nvidia-g210m-acpi-source_0.1.0-1~ppa-karmic_all.deb
tar xvfz data.tar.gz
tar xvfz ./usr/src/nvidia-g210m-acpi-0.1.0.dkms.tar.gz
cd dkms_source_tree
make
insmod nvidia_g210m_acpi.ko
To make it permanent:
cp nvidia_g210m_acpi.ko /lib/modules/2.6.34-1-amd64/kernel/drivers/acpi/
depmod -a
echo nvidia_g210m_acpi >> /etc/modules


With nvidia_g210_acpi and following script(/etc/rc.local) you get around 10 Hours Battery Life. YEAH !

rfkill block bluetooth
ethtool -s eth0 wol d
iwconfig wlan0 power timeout 500ms
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
echo 0 > /proc/sys/vm/swappiness
echo 60000 > /proc/sys/vm/dirty_expire_centisecs
echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
echo 60 > /proc/sys/vm/dirty_background_ratio
echo 95 > /proc/sys/vm/dirty_ratio
echo 50 > /proc/sys/vm/vfs_cache_pressure
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
exit 0

(There may be other 'hosts' in /sys/class/scsi_host/ that you could duplicate that last line. May provide more battery life, unsure.


Camera: Upside-down webcam. There are fixes for this using v4l2ucp and an LD_PRELOAD wrapper script. See notes on this article

Lan: Works out of the Box (2.6.34 tested)

Hybrid Mode, Intel + Nvidia: TBD. Surf the WEB for the vga_switcheroo solution.


More coming soon(hopefully).

See also

Installing CrunchBang Statler on an Asus UL30VT