?TableOfContents

Translations: [:DebianEeePCFrench/HowTo/Install:French] [:DebianEeePCGerman/HowTo/Install:German]

Install Lenny using native Debian kernel and modules

This is now the recommended way to install Debian Lenny on an Eee PC. While it is not yet finished, we're daily working to improve each step. The goal is to have a standard debian-installer "just work" so we're taking the extra time and effort to do that rather than working around the problem by making a lot of custom eee-specific code.

Preparation

You need a USB disk. Please download these files:

To prepare the USB disk, copy the image onto the drive:

dd if=debian-eeepc.img of=/dev/<YOUR-USB-DEVICE>

Note: <YOUR-USB-DEVICE> = the whole device, not a device partition (e.g. /dev/sdX NOT /dev/sdX1)

You may have noticed that you are using the entire device without a partition table. This works because the BIOS knows how to boot directly from FAT partitions. This boot mode is called "superfloppy" mode and is supported by the Eee PC BIOS for USB devices and SD cards.

Installation

Boot the eee and press <ESC> during the first screen. This lets you select which device to boot from.

The actual installation is very standard; if you're reading this, you almost certainly already know how to install Debian. :) It is fine to use ext3 as your filesystem, which is the default. See http://wiki.eeeuser.com/ssd_write_limit for a compelling argument that you're not going to kill your flash drive by the small percentage of extra writes that a journaling filesystem will add over the lifespan of the drive. You may wish to do without swap simply because it will save space on the relatively small SSD in the Eee. Also ["DebianEeePC/TipsAndTricks"] links to some tuning tips if after reading this article you're still concerned about write life-span.

Additional modules not yet in Debian kernels

Introduction to building out-of-kernel modules

The instructions below require you to install and compile module source packages using module-assistant. This can be done on your Eee PC, but will result in the installation of a lot of development tools that you might not otherwise need.

An alternative method is to do the installation and compilation of the modules on another Debian machine (one that is faster and has more disk space), and then install the resulting module packages on the Eee PC.

If you decide to go this route, refer to the manpage for module-assistant. You will need to run "m-a build ..." instead of "m-a auto-install ...". Note that if your Eee PC is running a different kernel version than your build machine, you will need to install the linux-headers and linux-kbuild packages corresponding to the Eee PC's kernel, and use the "-l" option to specify that version when you invoke module-assistant.

Once you have successfully built a module, copy the resulting .deb to the Eee PC and install it there with "dpkg -i ...".

Ethernet (atl2)

This just works now. The old version of our installer had a bug which required a manual install of atl2 after installation – this is now no longer required.

Wireless (madwifi)

Install and configure module-assistant:

Become root and invoke the following commands:

apt-get install module-assistant
m-a prepare

Download and install this patched madwifi-source package:

Be sure to have the debhelper package installed.

Become root and invoke the following command:

wget http://people.debian.org/~synrg/debian-eeepc/madwifi-source_0.9.3.2-2+eee_i386.deb
dpkg -i madwifi-source_0.9.3.2-2+eee_i386.deb

Be sure to have the contrib section in your  /etc/apt/sources.list  because madwifi-source needs madwifi-tools. Now you can use module-assistant to build and install a .deb package for the driver:

Become root and invoke the following commands:

m-a build madwifi
dpkg -i /usr/src/madwifi-modules-2.6.22-3-686_0.9.3.2+eee+2.6.22-6.lenny1_i386.deb
modprobe ath_pci

Do not use "m-a a-i madwifi", as m-a will try to upgrade the source package, walking over our patched version. Putting madwifi-source on hold is an ineffective measure against this, so don't bother. If you use "m-a build madwifi" and then install as per the instructions above, the source package will not be upgraded. See ["../../Todo#package_madwifi_source"]. A new release of this fork of madwifi will be made soon with a different name which will solve this problem.

See ["DebianEeePC/HowTo/Wifi"] to set up wifi with or without encryption.

Webcam (uvcvideo)

The module source in lenny should work with module-assistant:

Become root and invoke the following commands:

m-a a-i linux-uvc
modprobe uvcvideo

This won't work if you are using a 2.6.24 kernel. As noted in #[http://bugs.debian.org/463655 463655], the latest SVN revision of the driver works fine.

Then test it's working by executing:

Become root and invoke the following command:

apt-get install luvcview
As normal user you can now make use of your web cam tool
luvcview -f yuv

The camera is switched off by default after the installation. You can enable it in the BIOS, or by doing echo 1 > /proc/acpi/asus/camera. You should see messages about the camera being detected if you do dmesg | tail.

You need to have installed acpi for this (see below) – at least in lenny.

If you broke your webcam settings, use mplayer -fps 30 tv:// once to restore them.

Power management & hotkeys

Kernel module (eeepc-acpi)

The eeepc-acpi-source package is available in Debian unstable and testing. It builds an out-of-kernel module to support the Eee PC hotkeys. It was based on Asus's patched asus_acpi.c module, but doesn't conflict with standard Debian kernel packages.

First, set up a module-compilation environment as described in the Madwifi section above. Then build and install the eeepc-acpi module with module-assistant:

Become root and invoke the following commands:

m-a a-i eeepc-acpi
modprobe eeepc_acpi
/etc/init.d/acpid restart

Add eeepc_acpi to /etc/modules so that it will be loaded when you boot.

To respond properly to the acpi events, you will need the new eeepc-acpi-scripts package described in the next section, 'Scripts'.

Notes:

Scripts (eeepc-acpi-scripts)

Special keys

Key

Function

Work, comment

Fn + F1

sleep

Yes

Fn + F2

wifi

Yes (read details below)

Fn + F3

- light screen

Yes

Fn + F4

+ light screen

Yes

Fn + F5

Change screen

Yes

Fn + F6

Task manager

No, nothing append

Fn + F7

disabled Sound

Yes

Fn + F8

- sound

Yes

Fn + F9

+ sound

Yes

Install the eeepc-acpi-scripts package to get the described functionality. This is now available in unstable and testing. Please note that this package conflicts with acpi-support. As root you must apt-get purge acpi-support. This removes all of the acpi-support scripts that would remain in /etc. If you do not follow this step you will cause conflicts.

Enabling/disabling the wifi works like plugging/unplugging the PCI Express wifi card. To ensure that it properly gets enabled when it is plugged, you need the pciehp kernel module. (And for some reason, it only works with the "pciehp_force=1" option.) Create a file /etc/modprobe.d/pciehp with 'options pciehp pciehp_force=1' in it and put 'pciehp' in /etc/modules. Then 'rmmod pciehp; modprobe pciehp'.

Read the doc in /usr/share/doc/eeepc-acpi-scripts/README.Debian and configure /etc/default/eeepc-acpi-scripts as needed.

Ethernet (atl2) upgrade

The version of atl2 binary module in Lenny is old and has bugs that are fixed in the new source package that exists in Lenny. Upgrade as follows:

Become root and invoke the following commands:

apt-get install module-assistant
m-a a-i atl2
modprobe atl2

For good measure this reloads the atl2 driver.

Xorg

Touchpad Scrolling

The default debian installer did not enable the touchpad scrolling for me. The following are bits that I had to add to xorg.conf to enable touchpad scrolling.

Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "CorePointer"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "auto-dev"
        Option          "HorizEdgeScroll"       "1"
EndSection
Section "Server Layout"
    Identifier          "Default Layout"
    Screen              "Default Screen"
    InputDevice         "Generic Keyboard"
    InputDevice         "Synaptics Touchpad"
EndSection



mousewheel.horizscroll.withnokey.action   (change 2 to 0)
mousewheel.horizscroll.withnokey.numlines  (change -1 to 1)

Multiple displays

In /etc/X11/xorg.conf, make sure any "?HorizSync" and "?VertRefresh" lines are commented out or removed from the "Monitor" section and set "Virtual 2048 2048" in the "Display" subsection of your "Screen" section.

To enable an external display, positioning it above the Eee's own display, plug it in and type "xrandr --output VGA --above LVDS --auto". A future release of eeepc-acpi-scripts will add hotkey support for this.

Aiglx support for compiz

The following were needed to get [http://compiz.org/ Compiz] working. Compiz works for me with xfce, but its a bit choppy rotating the cube to a workspace that has opened programs on it. (If you have a good working xorg.conf thats different to this, please update)

Section "Device"
        Identifier      "Configured Video Device"
        Driver          "i810"
        Option          "XAANoOffscreenPixmaps"
        Option          "AddARGBGLXVisuals"     "true"
EndSection
Section "DRI"
    Mode 0666
Endsection
Section "Extensions"
    Option              "Composite"     "Enable"
Endsection

Hibernate

[?DamyanIvanov] Hibernate worked for me just fine after I've set up a 256M dedicated SWAP partition. Perhaps the same is possible using swap files too. The only glitch is that I have to quit memory-hungry programs like Iceweasel before attempting hibernate, as otherwise the swap space is not enough. To hibernate, run s2disk as root (from the uswsusp package). If you use gnome-power-manager you can just press the power button (but remember to disable the button action in /etc/acpi/actions/power.sh installed by debian-eeepc-scripts to avoid double prompts).

Troubleshooting

Ethernet does not come up

One problem you may come across is the ethernet not becoming active. This is a bug with the chipset for when you install. To fix this, temporarily enable PXE/netboot in the BIOS. You may not come across this problem, but you can enable it and disable it at any time without problem. The problem will be gone as soon as you have installed so you may disable PXE in the BIOS after that.




Shutting down fails

There is an issue surrounding shutting down. The system halts, but the fan continues to run and the wifi light stays on. The reason is the sound module doesn't close correctly, but there is a fix!

Then it will poweroff correctly!

Microphone does not work

If the microphone does not work by default. The following fixes that.



For more sound-specific advice see ["DebianEeePC/HowTo/Sound"].

Screen resolution not large enough for some apps

Because the resolution screen is 800x480. Many applications exceed the screen. The best example is the Gnome application Evolution. See ["DebianEeePC/TipsAndTricks"]

Installer complains about initrd and wants to abort

This is no problem. Don't abort, just select continue.

NetworkManager stops functioning with wireless after resume

If you are using eeepc-acpi-scripts without the 'zzz' and 'wifi' scripts, this can be fixed by modifying /etc/acpi/actions/suspend.sh as follows:

# do nothing if package is removed
[ -d /usr/share/doc/eeepc-acpi-scripts ] || exit 0
if (runlevel | grep -q [06]) || (pidof '/sbin/shutdown' > /dev/null); then
exit 0
fi
brn_control=/proc/acpi/asus/brn
brightness=$(cat $brn_control)
#turn off wireless, stop network-manager
/etc/acpi/actions/hotkey.sh ath0 ATKD 00000011
/etc/init.d/dbus stop
#suspend
pm-suspend --quirk-s3-bios --quirk-dpms-on
#picks up here for resume
echo $brightness > $brn_control
#restart dbus (and thus nm), turn wireless back on
/etc/init.d/dbus start
/etc/acpi/actions/hotkey.sh ath0 ATKD 00000010

Wireless not working (using wpa_supplicant)

If you get strange errors (for me: WPA not working at all, WEP only working for 8 seconds followed by 30 seconds of "network unreachable" and no key shown in iwconfig ath0) you can try the following workaround:

As root use this command:

killall wpa_supplicant && sleep 5 && wpa_supplicant -i ath0 -c /etc/wpa_supplicant/wpa_supplicant.conf

(Perhaps you can deamonize wpa_supplicant, never tried...)

and on another console you have then to start dhclient (sudo dhclient) to get a DHCP lease (if you don't have static settings)