ASUS Eee PC 701

From ArchWiki
Revision as of 08:31, 7 May 2008 by Thelucster (Talk | contribs) (Add new section about changing font sizes)

Jump to: navigation, search

WARNING: THIS ARTICLE IS INCOMPLETE! Visit the Arch forum thread link below to get information on installing Arch Linux on the Asus EEE PC.

Most of this information is from the Arch Forum. You can also find a lot of helpful information from the EEEUser Forum. There is also a nice Arch Linux installation guide on the EeeUser Wiki.

Before You Begin

Avoiding Pitfalls

The install is pretty normal, except that you'll need to avoid the pitfalls of our alternative Linux install:

  1. Never choose to use a journaling file system on the SSD partitions
  2. Never use a swap partition on the SSD
  3. Edit your new installation fstab to mount the SSD partitions "noatime"
  4. Never log messages or error log to the SSD

The rules ensure that we won't reach the maximum limit of writes on our SSD faster than we should.

Choosing Your Installation Media

The EEE PC does not have an optical drive installed on the machine. This means you will need to install Arch Linux through one of the alternative methods:

  1. External USB CD-ROM drive
  2. USB pen drive (Recommended)

Unfortunately, the kernel does not include drivers for a LAN or Wireless install.

Installing Arch Linux

Note: if you're using the USB pen drive as your media, then follow these instructions to create the installation USB stick.

Download the necessary drivers/modules/patches

Since the stock kernel doesn't supports either the Eee ethernet or wireless network cards, you might want to download the ethernet or wireless drivers/modules that you need and copy them to the installation USB stick.

  • You can download ethernet driver source from here.
  • Wireless driver can be downloaded from here.
    • The wireless driver requires a patch to make it work with the Eee PC. The patch can be download from here
  • If you want to use dkite's eeemodules package, you should download the package from his website and put it on USB for ease of installing. Especially important is the eeemodules-, because we will need to install this package after installation for wireless and ethernet to work.
  • for anyone who read this wiki previously and wondered where the patched kernel download went; the latest arch kernel contains the patch that fixes the intel graphics vsync hardlock error, so no additional configuration need be done

Booting Arch the installation CD/USB

Please refer to The Beginners_Guide for detailed instructions, if needed. Ideally, your CD/USB should boot up just fine on Eee PC without any need for additional options.

Start the Installation

If you are installing from the USB, then issue

mount /dev/sd[x] /src

To mount the usb.

Then just run


To start the installation just like normal.

Prepare Hard Drive

The default Eee PC drive is split up into four partitions (here is some information about the partitioning):

  • It is easiest to wipe the existing partitions and use one or two partitions for your install. One partition would be just '/', and two partitions would be '/boot' and '/'.
  • Choose "NONE" for swap (see #2 in Avoiding Pitfalls).
  • Select "ext2" as your filesystem (see #1 in Avoiding Pitfalls).

Select Packages

If you are installing from USB, then choose SRC as your source.

In addition to the BASE category, we also need all the packages in the DEVEL category for compiling our ethernet/wireless drivers.

If you intended to use wireless, then you'll also need the wireless_tools package from SUPPORT category.

Configure System

Edit /etc/rc.conf and add asus_acpi to the MODULES array:

MODULES = (... asus_acpi ...) 

Arch will complain about this, pay no attention to the error message because once we install the patched version of asus_acpi module using dkite's package, the error message will disappear.

Make these edits to "/etc/fstab":

  • Add "noatime" to the options of your mounts (see #3 in Avoiding Pitfalls)
  • (OPTIONAL) Add a new line: "tmpfs /var/log tmpfs size=1M 0 0" (WARNING: this will delete all your logs! See #4 in Avoiding Pitfalls)
    • To save your startup/shutdown logs, look at the pitfalls link above.

Install Network Adapter Drivers

Build from sources

Update: the atl2 ethernet is support by Arch Linux's stock kernel as of 2008.03

After the installation, The first thing you will noticed after booting into your newly installed Arch Linux is that the network adapters (both ethernet and wireless) are not working. To install the drivers, mount the USB stick that contains the drivers by issues the following commands:

 mkdir /mnt/usb
 mount /dev/sd[x] /mnt/usb

Then follow the following instructions to install your network driver.

Atl2 ethernet driver

You can download ethernet driver source from here.

Extract the sources. You may need to modify the kernel version listed in the Makefile.

make clean
cp atl2.ko /lib/modules/2.6.24-ARCH/kernel/drivers/net # Change 2.6.24 as needed
Atheros wireless ethernet driver

Instructions from to patch madwifi. This replaces the Arch madwifi packages.

wget ''
tar zxvf madwifi-ng-r2756-20071018.tar.gz
cd madwifi-ng-r2756-20071018
patch -p0 < ../madwifi-ng-0933.ar2425.20071130.i386.patch
make clean
sudo make install

If you have already downloaded both the driver source & the patch and have moved them into the USB, then both move the driver source & the patch into the same directory and issues the following command:

tar zxvf madwifi-ng-r2756-20071018.tar.gz
cd madwifi-ng-r2756-20071018
patch -p0 < ../madwifi-ng-0933.ar2425.20071130.i386.patch
make clean
sudo make install

Working against stock kernel.

Install wireless and ethernet drivers using dkite's eeemodules Package

Another way to install both wireless and ethernet drivers/modules, instate of having to build and install the drivers/modules yourself, is to use dkite's eeemodules Package, which included both wireless and ethernet drivers/modules, among other things.

Since Don't Panic installation CD comes with kernel version, we will need to use eeemodules- package, which you can get from his website, if you haven't got it already.

Mount the USB that contains the package and install it with this command:

pacman -Uf eeemodules-

Then load the modules with


Restart and now you should have a working wireless/ethernet connection.

Install All the Necessary Modules

After you have installed and configured the driver, proceed to upgrade the system with pacman -Syu command. After the upgrade is complete, it is the time to decide which methods you would like to use to install the modules:

ATTENTION: Do NOT restart after upgrade the system and before you install the modules using one of the following methods, or your hardware (wifi, ethernet, etc.) WILL stop functioning.

dkite have created a package that contains all the necessary modules for wifi, ethernet connection, acpi and video camera hardware that comes with the Eee PC. His package is to be use with the stock kernel.

The following is the list of hardware/functions that are known to work with dkite's eeemodules Package:

  • Wireless
  • Ethernet
  • Webcam
  • Suspend/Resume

You can get the package from his website.

Currently there are three pre-complied package:

  1. eeemodules- for use with Don't Panic kernel.
  2. eeemodules-0.0.3- for the kernel.

If you have newer or other version of kernel26, then you will need to download eeemodules.tar.gz, which contains PKGBUILD and all the necessary files, and build the package yourself.

  • ATTENTION: You will also need to rebuild the package, using eeemodules.tar.gz, every time you upgrade your kernel, or else your hardware (wifi, ethernet, etc.) will stop functioning.
Installation Instructions

Install the package with the following command:

pacman -Uf eeemodules-<pkgver>.tar.gz

Then run a depmod command:


Attention: Do not forget to run the depmod command after installing the package, otherwise your hardware won't function!

If you want to use the webcam then you might also need to load the asus_acpi module. Edit the /etc/rc.conf file and insert asus_acpi into MODULES array:

MODULES = (... asus_acpi ...)

Eee repository from toofishes

toofishes created a repository for the eee. You can find some basic packages like Pentium-M-optimized kernel and needed modules. Add

Server =

to your /etc/pacman.conf to use the repository.

Package List

Currently, toofishes' repository contains the following packages:

  • kernel-eee

customized kernel for Eee

  • linux-uvc-eee-svn

webcam driver for Eee

  • luvcview

webcam program for testing webcam driver

  • madwifi-eee-svn

wifi driver for Eee

  • eeepc-linux

kernel module to change Eee's FSB speed and fan control

Installation Instruction

Simply use pacman to install the package that you need. For a working system, you'll need at least 3 packages: kernel-eee (the kernel), linux-uvc-eee-svn (webcam driver) and madwifi-eee-svn (the wifi driver).

Install the packages with this command:

pacman -Sy kernel-eee linux-uvc-eee-svn madwifi-eee-svn

ATTENTION: dkite's eeemodules package conflicts with the madwifi-eee-svn package. You need to remove dkite's eeemodules package before you can install toofishes madfwifi-eee-svn package.

Then, add the following to /boot/grub/menu.lst; note that no initrd is needed:

# (2) Arch Linux
title  Arch Linux EEE kernel
root   (hd0,0)
kernel /boot/vmlinuzeee root=/dev/sda1 ro

Restart and select Arch Linux EEE kernel from the grub boot menu.

Getting Everything Working

By now, you should have Arch installed. The following is the guide on how to get the rest of your system working.


You have two choices for video on the Eee- the newer xf86-video-intel driver, or the older xf86-video-i810 driver paired with 915resolution. Unless there is a compelling reason to use the i810 driver, the intel driver is the focus upstream and is being actively developed so it is your best choice.

You need these packages in addition to the Xorg's packages:

 pacman -Sy synaptics xf86-video-intel

If you choose to use the older i180 video, you will have to install xf86-video-i810 and 915resolution as well. Note that the i180 driver and the intel driver cannot both be installed at the same time.

Then, just drop in the following xorg.conf into your /etc/X11/ directory:

Section "ServerLayout"
    Identifier     "ArchLinux"
    Screen      0  "Screen0"
    InputDevice    "keyboard"
    InputDevice    "mouse"
    InputDevice    "synaptics"

Section "Files"
    RgbPath      "/usr/share/X11/rgb"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "/usr/share/fonts/misc"
    FontPath     "/usr/share/fonts/100dpi:unscaled"
    FontPath     "/usr/share/fonts/75dpi:unscaled"
    FontPath     "/usr/share/fonts/TTF"
    FontPath     "/usr/share/fonts/Type1"

Section "Module"
    Load  "glx"
    Load  "dri"
    Load  "extmod"
    Load  "synaptics"

Section "ServerFlags"
    Option        "AllowMouseOpenFail"
    Option        "BlankTime" "5"
    Option        "AIGLX"   "false"

Section "InputDevice"
    Identifier  "keyboard"
    Driver      "kbd"
    Option        "CoreKeyboard"
    Option        "XkbRules" "xorg"
    Option      "XkbLayout" "us"
    Option      "XkbVariant" ""

Section "InputDevice"
    Identifier  "mouse"
    Driver      "mouse"
    Option        "Device" "/dev/input/mice"
    Option        "Protocol" "IMPS/2"
    Option        "Emulate3Buttons" "yes"
    Option        "ZAxisMapping" "4 5"
    Option        "CorePointer"

Section "InputDevice"
    Identifier  "synaptics"
    Driver      "synaptics"
    Option      "Device"           "/dev/psaux"
    Option      "Protocol"         "auto-dev"
    Option      "LeftEdge"         "1000"
    Option      "RightEdge"        "5400"
    Option      "TopEdge"          "1000"
    Option      "BottomEdge"       "4900"
    Option      "PalmDetect"       "0"
    Option      "SHMConfig"        "true"
    Option      "SendCoreEvents"   "yes"    
    Option      "HorizScrollDelta" "0"    
    Option      "RBCornerButton"   "0"
    Option      "RTCornerButtom"   "0"
    Option      "MaxSpeed"         "0.1"

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "ASUS"
    ModelName    "eeePC P701"
    Modeline     "800x480"  29.58  800 816 896 992  480 481 484 497  -HSync +Vsync # 60 Hz

Section "Device"
    Identifier  "Card0"
    Driver      "intel"
    VendorName  "Intel Corporation"
    BoardName   "Mobile 915GM/GMS/910GML Express Graphics Controller"
    BusID       "PCI:0:2:0"
    Option      "AccelMethod" "EXA"
    Option      "MigrationHeuristic" "greedy"

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     8
    SubSection "Display"
        Viewport   0 0
        Depth     15
    SubSection "Display"
        Viewport   0 0
        Depth     16
    SubSection "Display"
        Viewport   0 0
        Depth     24

Section "DRI"
    Mode         0666

If you want to set up the i810 driver instead, you will also have to configure 915resolution and add it to your daemons line. This is not needed for the intel driver. Edit the /etc/conf.d/915resolution to look like this:

# Enter the VBIOS mode to patch
# Enter the desired resolution
RESOLUTION="800 480"

Now put the 915resolution daemon into your /etc/rc.conf file:

DAEMONS=(... 915resolution ...)

Sound, Webcam & Microphone


Some people have reported sound working right out of the box with no troubles. However, others might need to add the following line to /etc/modprobe.conf.

options snd-hda-intel model=3stack-dig

If your internal microphone doesn't work, you probably have to turn the capture feature on. Simply fire up alsamixer, find your Capture control, and press spacebar to enable it.


If you installed dkite eeemodules package or toofishes's linux-uvc-eee-svn package, then you should already have webcam driver installed and don't need to install Linux UVC device driver. Just add:

echo 1 > /proc/acpi/asus/camera

to your /etc/rc.local file should be suffice to get your webcam working.

If somehow you don't want to use either dkite eeemodules package or toofishes's linux-uvc-eee-svn package, or prefers to install the driver yourself, then follows the following instructions.

First, install the Linux UVC device driver. Make sure you have the community repository enabled, and run:

pacman -S linux-uvc-svn

Then just turn on the webcam (This requires the asus_acpi module):

echo 1 > /proc/acpi/asus/camera

If you want a simple application application to test it out with, install luvcview from the AUR, and run it with:

luvcview -f yuv

Alternatively, if you want the webcam application that the default Xandos installation uses, install ucview from the AUR.

The webcam also works fine with the latest version of Skype.

I have yet to get it working with vlc or any other software such as xawtv. If you know how, please update this.

  • NOTE: For anyone who has accidentally disabled Auto Exposure for their webcam in luvcview (making the image dark), and can't enable it again, do the following:

Install libwebcam from the AUR.

Issue the following command:

uvcdynctrl --set "Exposure, Auto" 4
  • NOTE: Be sure the "OS Installation" option is set to "finished" in the BIOS' "Advanced" tab or your camera may not work in some applications (like Skype).


Solution for problems with the internal microphone.

1. First of all set in alsamixer "Input Source" to "i-Mic"

2. Increase "Capture" and "i-Mic Boost" to your needs

3. Edit /etc/asound.state the following, change the 2 "false" to "true" like showing:

control.11 {
                comment.access 'read write'
                comment.type BOOLEAN
                comment.count 2
                iface MIXER
                name 'Capture Switch'
                value.0 true
                value.1 true

4. After editing run following as root

alsactl restore

5. Now your internal microphone should be working.

Getting Hot Keys, Graphic Indicators and Shutdown with the Power Button Working

If you want to have working hot keys for changing brightness and volumes, graphic indicators working as well as shutdown when press the power button (just like in the stock Eee PC), then you should install 'ighea's acpi-eee' or 'dkite's acpid_eee' package.

ighea's acpi-eee

Get the latest package from here.

The package can be easily installed with

pacman -U acpi-eee-8-1-i686.pkg.tar.gz

See messages during installation for more details and don't forget to edit /etc/acpi/eee.conf to suit your tastes.

dkite's acpid_eee

Package can also be download form his website

The package itself can be install with

pacman -Uf acpid_eee-0.0.3-1-i686.pkg.tar.gz.tar

With both packages don't forget to start asusosd if you want to have the Graphic Indicators from Xandros.

Shutdown problem

If your Eee won't shutdown properly (i.e. the power indicator led is on but the LCD screen is off), then by adding the following line

echo -n "0000:00:1b.0" > /sys/bus/pci/drivers/HDA\ Intel/unbind

To your /etc/rc.local.shutdown should fix the problem.

If this does not work, the module may not be able to be unloaded until after all services have finished. Do the above, then in /etc/rc.shutdown move

if [ -x /etc/rc.local.shutdown ]; then

from where it was to directly above the line

# Terminate all processes

this will cause the rc.local.shutdown script to run after services have been exited. This fixed all issues for the person editing this note.

Additional Tips & Tweaks

kernel26eee tweaks

  • Toofishes's kernel, also known as kernel26eee, can be tweaked to include custom features. Simple insert a make menuconfig line into the PKGBUILD before the kernel's compilation.

Power down with the power button

  • If you use dkite's acpid_eee package then you should already be able to shutdown by pressing the power button and should not need to do this.

The two alternatives here are described in Allow_users_to_shutdown.

If you don't already or don't plan to use sudo, it may be simpler to use the setuid /sbin/halt method, otherwise using sudo is preferred.

Below are all the steps required for the sudo method. If you want to use the setuid method, read the article linked above and perform the 'power' file step here, while omitting the 'sudo' in it.

pacman -S sudo

As root, do the following:


Add the following line to the file:

USER HOST = NOPASSWD: /sbin/poweroff

Where USER = the user you want to be able to power down with and HOST = your hostname (from /etc/rc.conf).

Now, create a file called /etc/acpi/events/power, containing:

# /etc/acpi/events/power
# This is called when the user presses the power button

event=button/power (PWR.||PBTN)
action=sudo /sbin/poweroff

Make sure that you execute

/etc/rc.d/acpid start

And/or add acpid to the daemons list in /etc/rc.conf:

DAEMONS=(hal, acpid ...

Compile the 'everything' Kernel

The 'everything' kernel has ath5k, which supports the Atheros chipset found on the EEE PC. Here are the instructions on compiling the 'everthing' kernel (thanks raymano!).

Use cpufreq for power saving

For scaling down the processor you have to load the p4_clockmod. Insert it into your /etc/rc.conf MODULES array for loading it at startup.

MODULES=(... p4_clockmod ...)

Then proceed like here. Add the following into /etc/conf.d/cpufreq


With enabled cpufreq it scales the processor between 113MHz up to max. frequency. That should save a lot on battery power. The stated 900MHz will be never reached by the eeePC, the p4_clockmod reports a wrong frequency here. But scaling works, you can feel it in the performance of eeePC that he slow down the processor.

More responsive system with ondemand governor

The default up_threshold (where it will bump to a faster speed) for the CPU governor is 80, which means it will increase the CPU speed when utilization is above 80%. This can make X applications have a bit of lag. Try changing this value:

sudo bash -c  "echo 40 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"

With 40 it still leaves the majority of CPU cycles at the lowest available clock speed but increases responsiveness. You can add this line to one of your startup scripts if you wish to keep it, for example in /etc/rc.local.

Speeding up udev for faster boot

Update your BIOS without Xandros

Warning : you can broke your system, do not update if you are not sure of what you are doing !

First, you need to download the .rom file.

You also need an USBStick formated in fat32. To format an USBStick, use cfdisk tool :

 cfdisk /dev/sdc     #could be something else than "c"

Choose [delete], [type] : "fat32" (code 0B), [write] and then exit with [quit].

Now just copy the .rom on the USBStick :

 cp /somewhere/blabla/.../thecurrentnameofthefile.rom /dev/sdc1/701.rom

The name of the copy must be 701.rom

Next step, reboot the eeepc with the USBStick pluged-in, and press

 Alt + F2

It will launch the built-in tool. Everything should be Ok, you can make a coffee during the update. When it asks you to push the power-button it has finished.

At the next boot, you'll be invited to configure the BIOS. Check if the everything is enable (my webcam and wireless were disable after the update) and if it displays the good version in the main screen. It's done !

More usuable font sizes

On a default installation with XFCE 4 my font sizes were too big, here is what I did to sort them out.

First, I set the DPI by adding the following to ~/.Xdefaults:

 Xft*dpi: 134

This then caused the fonts to be even bigger, so I set them all to be font-size 6 by adding the following into ~/.gtkrc-2.0 (note this will be overwritten if you use any tools to change GTK settings):

 style "user-font"
     font_name="Bitstream Vera Sans 6"
 widget_class "*" style "user-font"

To do the same with KDE fonts (without KDE installed) you have to add the following to ~/.kde/share/config/kdeglobals:

  StandardFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0
  activeFont=Bitstream Vera Sans,6,-1,5,75,0,0,0,0,0
  fixed=Bitstream Vera Sans Mono,6,-1,5,50,0,0,0,0,0
  font=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0
  menuFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0
  taskbarFont=Bitstream Vera Sans,6,-1,5,50,1,0,0,0,0
  toolBarFont=Bitstream Vera Sans,6,-1,5,50,0,0,0,0,0

To make your fonts even prettier enable the LCD Fonts.

Known problems and their solutions

Booting from card without initrd

Let's say you decided to install Arch Linux on a card and compiled your own kernel (or used the kernel26eee kernel) without initrd. Card reader on EeePC is connected as an USB device. Unfortunately, USB storage devices are detected with a delay, so we must tell the kernel to wait until this device becomes available. You do this with "rootwait" option passed to kernel at boot time.

Sleeping and waking system on a card

If you have Arch Linux on a card, waking up from sleeping state will most likely fail. The only solution is to enable the CONFIG_USB_PERSIST option in kernel. The kernel26eee package should have this option enabled.

Display doesn't wake up properly

If you encounter black display (but apparently working system) after suspend/resume, consider using the "uswsusp" package (available in AUR) and correcting suspend2ram script in /etc/acpi, where you use this line to make the machine go to sleep:

/usr/sbin/s2ram --force --vbe_post --vbe_mode