Read the full article. Note this is not step-by-step. If you're unsure how to do things like editing config files or installing/loading kernel modules, look that up elsewhere (hint: Google).
Working so far: Graphics, Sound, Webcam, Audio, Wireless/Wired LAN, Suspend to RAM/Disk, Hotkeys, Cardreader, Enabling/disabling devices
Not working yet: Gnome desktop effects (only when disabling KMS), touchpad button's LED
Graphics
I disabled Kernel Mode Setting. Although it had no immediately apparent effect on stability, KMS had a severe impact on graphics performance. Not worth it really. Appending
nomodeset=0 to your kernel parameters (in /boot/grub/menu.lst) does the trick. That kills off compositing window managers though, but who uses those on an ultra-portable anyways?
Sound
Although it was working fine out of the box, pulseaudio swallowed quite a few CPU cycles. So I merely disabled that (yum erase alsa-plugins-pulseaudio). SDL apps will continue to use pulse unless you set the SDL_AUDIODRIVER environment variable to "alsa". Some apps such as VLC will need to be told to use ALSA indivually.
Webcam
Working perfectly fine out of the box.
WLAN
Working out the box too, but when you disable it and then suspend the Eee, WLAN won't work again until you reload the ath9k module. My hotkey script automates that.
Wired LAN
Quite the problem child. Fedora 11 loads the atl1c module by default, which doesn't work at all. Instead, when plugging the cable in, loads of Errors stack up in ifconfig.
So, I first tried the AR81-family driver from the
Atheros website. I could get the atl1e module to compile by changing the
IRQ_HANDLED and
IRQ_NONE to
IRQ_HANDLED 0 and
IRQ_NONE 1 in the kcompat.h file. Although with this module I was able to establish a connection successfully and transfer some data, after some time something like "Disabling IRQ #28" showed up in the kernel log and network throughput slowed down to a crawl (~900 KB/s).
So I queried the Fedora bugzilla a bit and found this
bug report. The attached driver in Comment 4 compiles and WORKS perfectly fine (so far) on my 2.6.30.5 kernel. Yay!
Suspend to RAM/Disk
Working out of the box.
Cardreader
Working out of the box.
Hotkeys
Some hotkeys (audio, suspend) work out of the box. For the others, the eeepc-laptop module is required. I got it from the
EeeControl source tarball. But even with that, the touchpad, resolution, backlight toggle and SHE hotkeys won't quite work yet. For that you'll need to apply
this patch I wrote to the driver's source (this patch was made against the eeepc-laptop module packaged with EeeControl 0.9.4).
Enabling/disabling devices
Disabling WLAN works right away thanks to rfkill by echoing a 1 or 0 respectively to
/sys/class/rfkill/rfkill0/state
Note that once you suspend your laptop and want to re-enable WLAN after disabling it using the aforementioned method, it won't work until you reload the ath9k driver module.
Look for some useful scripts below.
Useful scripts

EeeControl (link in the Hotkeys section of this entry) worked fine until I updated my BIOS. Now the daemon crashes when I try to launch it. So I wrote these scripts to automate the enabling/disabling of the devices. They use Gnome's notify-send command to show onscreen notifications but you should be able to easily change those to suit your DE of choice. They require some sudo adjustments (see the included README). Tarball:
eee-scripts-gnome.tar.bz2
I recommend you to assign the WLAN hotkey to the eee-wlan.sh script for convenience. The eee-status.sh script merely displays a notification listing the current status for all devices. I assigned the Task manager hotkey to launch it.
For the other scripts, I created shortcuts in the Gnome menu and also added them to the Gnome panel.
Performance modes
Works once the eeepc-laptop module is loaded. Echo 0 for super performance, 1 for normal and 2 for power-save to /sys/devices/platform/eeepc/she
For a script see above.