Translations: French, German, ?Portuguese

Repository

The new installer adds our ../../Repository to your /etc/apt/sources.list automatically. This includes some packages required to take full advantage of hardware in the Eee PC which not yet suitable for inclusion in the official Debian archives.

(The repository doesn't support squeeze, so I guess squeeze users don't need to add it?)

Model specific issues

Please go to ../../Models to find out about model-specific configurations.

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.

Note: m-a is an abbreviation for module-assistant which can be used as a command too. You can even use “m-a a-i …” for “module-assistant auto-install …” on the command line.

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.

Bluetooth

This uses the eeepc_laptop module, which is included with the latest debian kernels (squeeze for example includes it). You can toggle it manually by setting the value of /sys/class/rfkill/rfkill1/state , or you can use eee-control. See [http://hughperkins.com/techblog/?p=167] for details of installing and using eee-control, or merge with this article.

Wireless (madwifi)

This is installed automatically by the new installer. See ../../HowTo/Wifi to set up wifi with or without encryption.

If you have problems when trying to reactivate your Wireless connection with the hotkey, you may have to ensure the module pciehp is loaded with the right options. See Power management & hotkeys

Webcam (uvcvideo)

Ever since kernel version 2.6.26 there is no need to build uvc module which is now included in.

Become root and type the following commands to enable camera in the BIOS:

echo "1" > /sys/devices/platform/eeepc/camera

The "uvcvideo" module should be loaded automatically.

You should see messages about the camera being detected:

dmesg | tail

Next, install some software to test it works. Become root and invoke the following command:

aptitude install luvcview mplayer

As normal user you can now make use of your web cam tool:

luvcview -f yuv

or, using mplayer:

mplayer -vf screenshot -fps 30 tv://

You can use 's' to take a single screenshot and 'S' to toggle on/off a series of screenshots (as fast as the system can keep up). Use this to play back that sequence:

mplayer -fps 30 mf://shot*.png

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

Board, BIOS, ACPI (eeepc_laptop)

This kernel module is present in 2.6.26 and later.

Power management & hotkeys

Scripts (eeepc-acpi-scripts)

This package requires the eeepc_laptop kernel module and is installed automatically by the installer.

Debian 6.0 "Squeeze" users: the eeepc-acpi-scripts 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.

Since eeepc-acpi-scripts 1.1.11 (Debian 7 "Wheezy" and later releases), this no longer conflicts with acpi-support and now depends on it.

Enabling & disabling the wifi works like plugging & unplugging the PCI Express wifi card. If you have a fresh install, this should just work. However, if you have an older install, ensure eeepc-acpi-scripts 1.1.0 or newer is installed and 'pciehp' is not in /etc/modules (it'll be loaded automatically if needed).

If you're sticking with an older eeepc-acpi-scripts, then make sure that pciehp is mentioned in /etc/modules. If it isn't, run echo pciehp >>/etc/modules as root.

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

Hotkeys

Special keys

Key

Function

Work, comment

< 10"

10"

Fn + F1

sleep

Yes

Fn + F2

wifi

Yes (read details below)

Fn + F3

Touchpad on/off

WIP (git only)

Fn + F4

Change resolution

Fn + F3

Fn + F5

Panel brightness

Yes

Fn + F4

Fn + F6

Fn + F7

Backlight off

Yes (git only)

Fn + F5

Fn + F8

Change screen

Yes

Fn + F6

Fn + F9

Task manager

No (unused)

Fn + F7

Fn + F10

Sound on/off

Yes

Fn + F8

Fn + F11

Volume

Yes

Fn + F9

Fn + F12

Notes

[Lutz] "Volume Up/Down/Mute" Solved - With kernel 2.6.25 and default ALSA installation I had problem with audio hotkeys (alt + f7,8,9). Sleep and wireless button work fine but volume does not change. That's why the Hotkey event is correctly handled, but the acpid action works on the ?LineOut Channel that, on my eee701, is not present or has a different name. You can fix it by editing /etc/default/eeepc-acpi-scripts and modifying this line as follows:

VOLUME_LABEL='Master'

You can also run amixer to have a look at channel names, so you can assign a different mixer channel to volume hotkeys. The Mute key, simply set the selected channel as mute. [Jetxee] "Volume Up/Down/Mute" did not work on my eeepc 901, kernel 2.6.26-1-686 and default alsa 1.0.16-2. Also the mic did not work properly. After installing hda-intel drivers from alsa 1.0.18a both problems were solved. I didn't have to edit eeepc-acpi-scripts, because with a new alsa the channel is named properly. I am using eeepc-acpi-scripts 1.0.9.

[_ds_] If you use slim as your login manager and xtrlock to lock the X session, you should edit /etc/slim.conf as shown following this paragraph. When going to sleep, eeepc-acpi-scripts 1.0.12 will use xtrlock if possible (and other locking mechanisms fail); without this change, xtrlock will want the root password unless you have a terminal window open. (Or at least I find that it does; it's to do with the X session not having been registered in utmp.)

sessionstart_cmd        exec sessreg -a -l :0 %user
sessionstop_cmd         exec sessreg -d -l :0 %user

Power management

On some models, the battery info is not very precise (jumps from 10% to 100%, no rate information, etc.). Apparently, this is normal. It appears that the userspace battery utilities expect the battery to report mAh, but in fact it reports percentage. This is either a bug in the battery firmware or a bug in the BIOS; it is known to be fixed with newer BIOS versions and kernels ≥ 2.6.25.

Super Hybrid Engine

As of kernel 2.6.30, the "Super Hybrid Engine" is supported: /sys/devices/platform/eeepc/cpufv contains a value which is 256× the number of available settings plus the current setting; you write a number n (0 ≤ n < number of available settings) to it to alter the setting.

On Celeron-based models, there are two settings.

On Atom-based models, there are three settings:

  1. high speed (1.8GHz)
  2. normal speed (1.6GHz)
  3. low speed (1.2GHz)

This is fully compatible with cpufreq. For example, in low speed mode, Atom-based models are able to switch between 600MHz, 800MHz, 1GHz and 1.2GHz as needed. However, cpufreq is unaware of the S.H.E. and will report speeds as being between 800MHz and 1.6GHz.

As of version 1.1.2, eeepc-acpi-scripts supports these plus "auto" mode (which will, by default, try to underclock when on battery), but no key is assigned by default

Notes

[?DamyanIvanov] Hibernation mostly works for me on current Sid with 2.6.24 kernel once I've set up swap (and following the hints from ../../TipsAndTricks). There is some problem with the madwifi driver that does not recover completely, but I think it is not hibernate-related as I see the same behaviour after suspend/resume.

[SamMorris] suspend worked for me with 2.6.24 with the s3_bios and dpms_on quirks. I have sent a patch upstream to hal@lists.freedesktop.org and also filed 469648.

Xorg

Fonts

Sub-pixel ordering (with some uncertainty) is red, green, blue from left to right. Observed by magnifying lens.

DRI

Install the package libgl1-mesa-dri so that DRI can be enabled, providing 3D hardware acceleration.

For the 901, at least, you'll also need to install "libglu1-mesa" to enable DRI.

Touchpad Scrolling

See SynapticsTouchpad, unless you're using lenny on a model with an Elantech touchpad.

Display resolution and desktop size

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, e.g.

Section "Monitor"
        Identifier      "Generic Monitor"
EndSection
Section "Screen"
        Identifier      "Default Screen"
        Device          "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Virtual         2048 2048
        EndSubSection
EndSection

After a fresh Lenny installation on a 1000HA, I found the GNOME text to be unreasonably large. Apparently this is because X determines the DPI according to the screen resolution, 1024x768, and reported physical size of the screen. The result on my 1000HA is 118 DPI:

$ xdpyinfo | grep resolution
  resolution:    118x118 dots per inch
$ 

I used the temporary workaround from this bug report (510123) and added to the end of my gdm.conf:

[server-Standard]
name=Standard server
command=/usr/bin/X -audit 0 -dpi 96
flexible=true

Display panning

There is a good utility here to permit display panning on 701.

Multiple displays

If you plug in an external display and press Fn+F5, the desktop is shared between the LCD and external display by default.

If you want, instead, to have one big desktop with the external display positioned above the Eee's own display, ensure that you have set the Virtual size large enough to accommodate both displays as shown above and then edit /etc/default/eeepc-acpi-scripts to set:

COMBINED_DISPLAY_SWITCHES="--above LVDS --auto"

See xrandr(1) and /etc/acpi/actions/vga-toggle.sh for other possible parameters.

If one setting is not working when you press Fn+F5, you might want to check for error messages: run /etc/acpi/actions/vga-toggle.sh from command line.

Note that icewm (in lenny) currently has some problems moving a window between the two displays, see bug 512109 for details.

AIGLX support for compiz

The following were needed to get 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          "intel"
        BusID           "PCI:0:2:0"
        Option          "EnablePageFlip"    "on"
        Option          "AccelMethod"        "XAA"
        Option          "MigrationHeuristic"   "greedy"
        Option          "AccelDFS"      "true"
        Option          "DynamicClocks"    "on"
        Option          "ColorTiling"       "on"
        Option          "FBTexPercent"       "95"
        Option          "XAANoOffscreenPixmaps" "true"
        Option          "AddARGBGLXVisuals"     "true"
EndSection
Section "DRI"
    Mode 0666
Endsection
Section "Extensions"
    Option              "Composite"     "Enable"
Endsection

Notes:

Hibernate (suspend-to-disk)

[?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).

[?OzeLot] Hibernation (suspend-to-disk) is easy on Debian/lenny with 2.6.26-kernel, when a swap-partition is active (eeepc 901). This is an example:

Create a swap partition of 512 MB:

cfdisk /dev/sdb --> New --> Type 82 Linux Swap --> write --> reboot

Make an entry in /etc/fstab, if sdb2 should be your new swap-partition:

/dev/sdb2       none            swap    sw              0       0 

Format the swap space:

mkswap /dev/sdb2 

Make active with:

swapon -a

(or just reboot the system).

Install acpid, eee-acpi-scripts (the latest version from sid), uswsusp and pm-utils. splashy is not nescessary at this moment.

If you want to use the swap-partition primarily for hibernation, make this entry in /etc/rc.local (somewhere before exit 0):

sysctl -w vm.swappiness=1 

You should now be able to hibernate with the root-command s2disk. A compressed image of your system-state is written to the swap and then the eeepc 901 shuts down. The image is loaded again by Power ON.

Suspend and resume with s2disk last 15-20 seconds on my system.

[?ArturCzechowski] I'd like to confirm that suspend/resume on both: ram and disk work without problem on 901. Only path I haven't tested (yet) is: suspend to ram → battery low → automatically suspend to disk → resume. I'll test it this night (CET).

[Lancelot] Suspend-to-disk does not work for me, using the instructions provided by Ozelot above. s2ram complains that "machine is unknown". s2disk and s2both both yield the following behavior: they do seem to write to my swap partition and suspend normally, but upon pressing the power button, it does not resume but instead goes through a normal boot sequence... EDIT: Yeah! I tried:

dpkg-reconfigure uswsusp 

# /etc/uswsusp.conf(8) -- Configuration file for s2disk/s2both
resume device = /dev/sdb1
compress = y
early writeout = y
image size = 239158312
RSA key file = /etc/uswsusp.key
shutdown method = poweroff
suspend loglevel = 1
max loglevel = 1 

In the above, you'll probably have to change the name of the resume device to the name of your swap partition.

This could have been this bug: 495319. Indeed, the config file I got after a clean install had 'platform' as the shutdown method. Note that the "Shutdown method" option does not seem to be explained in the man page of uswsusp.conf

s2ram still does not work, though I don't really care since I can just Fn+F1.

I still have a minor annoyance: upon resume, it complains that it can't stat my resume device and prompts me for a device path. I have to type it by hand for it to resume.

[lancelot] It worked... yesterday. Since then, I tried a couple of configuration changes, which I don't think are the cause for my current problems, and I also did a normal reboot. The latter has been the start of my new issues. Now, everytime I try to make a suspend-to-disk/resume, it does not resume but I get a message that recovery is required on readonly filesystem (this ought to be my root filesystem /dev/sda1), then it proceeds with a "successful" recovery instead of resuming, then does a normal boot. But on the next resume attempt exactly the same thing happens, recovery is again required on the readonly filesystem. it looks like I did something faulty which severely messed with my internal flash drive. I can only hope the drive is not physically damaged. I think I will just attempt to reformat /dev/sda1 and reinstall debian completely... maybe tomorrow, more probably in a couple of weeks, months, I don't know, when I have the time. This leaves me discouraged about running Linux on those flash drives.

See also Hibernation and perhaps more importantly Hibernate without swap partition

Graphical boot

This splashy package will enable a graphical status boot screen for your EEE, which is far pretier than that bunch of characters scrolling up the screen (OK, for a server, not for a mobile workstation). It may not work with KMS.

To install splashy:

aptitude install splashy

Now it is time to configure your boot loader.

Grub

With grub, edit /boot/grub/menu.lst file and add

hiddenmenu

to avoid showing that blue screen. Also remove the timeout, changing the timeout line to:

timeout 0

You will find a commented-out line similar to this:

# defoptions=quiet

With Intel graphics, the panel's native mode will be selected as soon as the i915 module is loaded if KMS is active. With xserver-xorg-video-intel 2.10, KMS is required since support for XAA and EXA has been removed.

Add these (read below):

# defoptions=quiet splash vga=788

the vga=788 stands for 800x600, suitable for 900 model. Previous models should try vga=785, which stands for 640x480. There is a black magic way to make it work at native resolutions, which if you know, please write it here. Some ugly hack, at least for kernel 2.6.25, is described here: Splashy and native resolution of Display.

With Intel graphics, the panel's native mode will be selected as soon as the i915 module is loaded if KMS is active. With xserver-xorg-video-intel/unstable 2.10, KMS will be required since support for XAA and EXA has been removed.

update-grub

That’s it. You should have your graphical boot working. Also try the splashy-themes package for some other themes. (There are Debian themes in the package. splashy_config --info will show the available themes and splashy_config -s themename will set a theme. Remember to run update-initramfs -u every time you change the theme.)

If at install time you have chosen grub-pc instead of grub, you should edit default config file, /etc/default/grub, adding this variable:

GRUB_CMDLINE_LINUX_DEFAULT="splash vga=788"

[?JohanLaenen] GRUB_CMDLINE_LINUX_DEFAULT="splash vga=788" works like a charm but is deprecated. I had no success changing GRUB_GFXMODE. See 536453 for more info.

and setting

GRUB_TIMEOUT=0

as well. Then update config changes executing 'update-grub2'. NOTE: For my 4G, vga=788 doesn't work, vga=786 seems to work fine.

[?LuizGuaraldo]: I was successfull with usplash, no vga option needed. Just need to put insmod intelfb right over insmod png on /boot/grub/grub.cfg (grub2 - grub-pc).

Lilo

With Lilo edit /etc/lilo.conf:

Find the line with "vga" and write:

vga=788

the vga=788 stands for 800x600, suitable for 900 model. Previous models should try vga=785, which stands for 640x480. There is a black magic way to make it work at native resolutions, which if you know, please write it here. Some ugly hack, at least for kernel 2.6.25, is described here: Splashy and native resolution of Display

Find the line with "append" and write:

append="quiet splash vga=788"

To update the changes launch lilo.

Troubleshooting

If you have problems with any of the steps above, see our Troubleshooting HowTo.