From Fedora Project Wiki

EeePC

The EeePC has really taken the sub-compact pc market by storm. Although the bundled linux installation is interesting, Fedora is more our style. This page should contain all the needed quirks and notes needed to run Fedora perfectly on the eeePc.

News

ACPI State of play

  • Out of the Box F8: The asus_acpi module that Asus provided provides ACPI events that can be handled by the acpid daemon. Asus provides scripts that the acpid can trigger to do various functions, Volume Up, Volume Down, Wifi On/Off etc. Asus also provides their OSD code to notify the user that they have pressed a button.
  • Out of the Box F9: Fedora 9 ships with a module called eeepc.ko - if you load it at system boot (add modprobe eeepc to /etc/rc.local) pressing one of the extra buttons will generate an acpi event that you can (and have to) handle yourself.
  • This is how I got the Fn+F2 (wireless) hotkey working on Fedora 9 with networknanager: Link .
  • Goal: I plan to provide an asus_acpi module that gives proper Fedora system integration through HAL.
  • Status: Thanks to code Ikke started, I got things in order quite quickly.

Buttons

  • Zz/Fn+F1 - Works as expected computer suspends
  • Wifi/Fn+F2 - Currently produces the wlan ButtonPressed event on dbus. I am working on hal killswitch functionality for it.
  • BrtUp/Fn+F3 - Works. No OSD
  • BrtDown/Fn+F4 - Works. No OSD
  • SwitchDisplay/Fn+F5 - Produces ButtonPressed events on dbus. My plan is to patch grandr to listen on the dbus and do proper xrandr switching.
  • AP/Fn+F6 - AccessPoint Mode? I don't think we need this. I was thinking about making this button use xrandr to switch on and off a scrolling Virtual Display. This should help if a large dialog box pops up off screen. (Originally this Fn Key was meant to open the task manager)
  • Mute/Fn+F7 - Works. OSD. Needs tweaks to gconf
  • VolDown/Fn+F8 - Works. OSD. Needs tweaks to gconf
  • VolUp/Fn+F9 - Works. OSD. Needs tweaks to gconf

ACPI support in Fedora 9

Let's load ACPI daemon into Fedora 9

su -
yum install -y acpid

Now we must start the ACPI daemon and modprobe the eeepc module.

chkconfig acpid on
service acpid start
modprobe eeepc
echo "modprobe eeepc" >> /etc/rc.local

Now let's handle some FN keys and events create these files

gedit /etc/acpi/events/hotkeys.conf

paste this code:

event=hotkey ATKD .*
action=/etc/acpi/actions/hotkeys.sh %e
gedit /etc/acpi/actions/hotkeys.sh

Paste this code (please note,volume keys DON'T WORK)

#!/bin/bash

export DISPLAY=:0

case $3 in

    #Fn+F2
    00000010)
        # Wlan On
        /etc/acpi/actions/wlan.sh poweron
        ;;
    00000011)
        # Wlan Off
        /etc/acpi/actions/wlan.sh poweroff
        ;;
    #Fn+F5
    00000013)
       amixer -q setMaster toggle
        ;;

    00000014)
    amixer -q set Master 1- unmute
        ;;

    00000015)
    amixer -q set Master 1+ unmute
        ;;

    00000030)
        /usr/bin/xrandr --output LVDS \
            --preferred --output VGA --off
        ;;
    00000031)
        /usr/bin/xrandr --output VGA \
            --mode 1024x768 --output LVDS --off
        ;;
    00000032)
        /usr/bin/xrandr --output VGA \
            --mode 800x600 --output LVDS --mode 800x480
        ;;

    *)
        logger "ACPI hotkey $3 action is not defined"
        ;;

esac

Other file:

gedit /etc/acpi/actions/wlan.sh

paste this code:

#!/bin/bash

PWR=$(cat /sys/devices/platform/eeepc/wlan)

UnloadModules() {
    rmmod ath_pci
    rmmod ath_rate_sample
    rmmod wlan_scan_sta
    rmmod wlan_tkip
    rmmod wlan_wep
    rmmod wlan
}

LoadModules() {
    modprobe ath_pci
}

case $1 in
    poweron)
        if [[ "$PWR" = "0" ]]; then
            modprobe pciehp pciehp_force=1

	    echo 1 > /sys/devices/platform/eeepc/wlan

	    rmmod pciehp

        fi
        ;;
           
    poweroff)
        if [[ "$PWR" = "1" ]]; then

            modprobe pciehp pciehp_force=1

            ifconfig ath0 down

            wlanconfig ath0 destroy

            UnloadModules

            echo 0 > /sys/devices/platform/eeepc/wlan

            rmmod pciehp

        fi
        ;;
esac

Make scripts executable:

chmod -v +x /etc/acpi/actions/*

Wireless Drivers

Livna-testing has working madwifi drivers

su
rpm -ivh http://rpm.livna.org/livna-release-9.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna

This will compile a kernel module everytime is necessary... So feel free to update your kernel when fedora team releases updates.

yum --enablerepo livna-testing install akmod-madwifi

On first new kernel boot, it will compile the new kernel module..when finished, reboot and wifi will work! That's all!


If you want to compile manually the madwifi driver, use the experimental one:

First install all necessary packages:

su
yum install make binutils gcc glibc-devel glibc-headers libgomp patch kernel-headers kernel-devel wget

Blacklist the ath5k module:

echo "blacklist ath5k" >> /etc/modprobe.d/blacklist

Look at your modprobe.conf:

gedit /etc/modprobe.conf

Your /etc/modprobe.conf should look like this:

<!-- Start Atheros Stuff
-->
alias wifi0 ath_pci
alias ath0 ath_pci
options ath_pci autocreate=sta
<!-- End Atheros Stuff
-->

Download madwifi-nr-r3366+ar5007 driver:

wget http://snapshots.madwifi.org/special/madwifi-nr-r3366+ar5007.tar.gz

Extract madwifi source code and compile it:

tar xvf madwifi-ng-r2756-20071018.tar.gz
cd madwifi-nr-r3366+ar5007
make && echo ok
su -c "make install && echo ok"

NetworkManager

Not necessary in Fedora 9

  • Works well with the Madwifi-NG drivers. To solve problems with frequents drop outs and communication problems try issuing this command.
iwpriv ath0 bgscan 0
  • Just a quick update on a better way to issue this command on every boot. Edit your /etc/modprobe.conf and change change your lines for ath0 to look like this.
alias ath0 ath_pci
install ath_pci /sbin/modprobe --first-time --ignore-install ath_pci && { /sbin/iwpriv  ath0 bgscan 0 > /dev/null 2>&1 || :; }

Window Manager

Do yourself a favor and install Openbox .

yum install openbox obconf

After installation you will need to choose openbox as your new window manager. If you are running gdm click on the session button and choose Gnome/Openbox. If you have an .xinitrc that is run at log in you can add, openbox, openbox-session or openbox-gnome-session to it.

Why?

  • This Window Manager is FAST!!!
  • The decorations are very small and simple.
  • By default Openbox trys to shrink windows to fit the viewable screen
  • Did I say this how fast this WM is?

Resolutions

Suspend

  • Works great. Using the Madwifi driver for the wireless card you need to add the following code to a script in /etc/pm/sleep.d/ . I call my script S99wireless.
#!/bin/sh

case "$1" in
thaw|resume)
{ ip link set wifi0 up ; } 2>/dev/null
;;
*)
;;
esac
exit $?

( Please Note that the machine won't suspend if the radio is turned off and the Madwifi driver is still loaded. )

Make the script executable:

chmod +x /etc/pm/sleep.d/S99wireless

Quirks

Shut down

If your EeePC does not entirely shutdown, like mine, add the following line to /etc/init.d/halt (I put right after the "Saving mixer setting" stuff):


modprobe -r snd-hda-intel && echo "snd-hda-intel module removed!"

I've filed a bug report on this: https://bugzilla.redhat.com/show_bug.cgi?id=444115


TouchPad

To enable the touchpad tapping, make your /etc/X11/xorg.conf look like this .


Source Code

If you want to take a look at the default source code which comes in the EeePC, you could check Asus ftp:

http://update.eeepc.asus.com/p701/pool/

Comments

It might be good to coordinate efforts and reach out to http://code.google.com/p/eeedora/. Some comments at http://www.bytebot.net/blog/archives/2008/01/31/eeedora-impressions and at http://wiki.eeeuser.com/howto:eeedora