OpenSUSE on the EeePC

From openSUSE

This article is in need of attention!
You are welcome to improve this article. Refer to this article's discussion page for more information.


Contents

Preface

In the following article you will find all the information about how to get openSUSE 10.3, 11.0, and 11.1 running on Asus Eee PC's of various models. Alternatively, one can follow SuSE install from USB drive. Much helpful information and a forum to ask and answer questions about the Asus Eee PC line is available in addition to this openSUSE section.

We are aware that there are several methods to do this and it would be quite a big howto if we describe all possible methods so we chose the fast way with a bootable USB drive and yast2-liveinstall, and the method with two USB drives, one to boot from and one as installation source.

If you want to attempt something different then have a look at the Installation Guides and keep in mind that the network installation does not work, as the stock 10.3 and 11.0 kernels do not include the needed wired networking drivers. Wired networking for some Eee PC models will be included in the stock installation of openSUSE 11.1, which will make installation using FTP or other network resource possible.

Also keep in mind that nothing on this page is officially supported, so users are encouraged to make use of all available resources.

Preparation

Hardware

  • EeePC 701 4G
  • USB flash drives depending on the method
  • a second machine to prepare the needed devices

Please note: the Eee PC does not have a conventional hard drive, but a solid-state drive which has a finite number of write cycles. So far nobody seems to know how long the built-in SSD will last, but to be on the safe side you should take care to reduce unnecessary writes to the internal disk. This means:

  • no swap partition
  • mounting the partition(s) on the SSD with the option "noatime" set. Usually, whenever you read a file on disk, the time of last access (atime) is updated in the inode. With "noatime", this doesn't happen.
  • no journaling filesystem

Media

You will have to download the following:

For the installation from a single USB drive with YaST Live Installer
ftp://ftp.suse.com/pub/people/matz/eeeSUSE/eeeSUSE-liveusb.gz
For the installation from two USB drives
the openSUSE-10.3-GM-i386-mini.iso
either the openSUSE KDE or the openSUSE GNOME CD.
the "default" packages from (or at least the atl2 ones)
http://download.opensuse.org/repositories/home:/appleonkel:/EEE/openSUSE_10.3/i586/
http://download.opensuse.org/repositories/home:/appleonkel:/EEE/openSUSE_10.3_Update/i586/

Installation

Installation from bootable USB drive with YaST Live Installer

All your data on the EeePC will be gone after this procedure, do a backup.

The image for the usb stick can be found here. Unzip, append .img to the end, and dd to a 2GB stick. Or, alternatively, if you are using Windows, use this tool.

1. Press ESC on boot, and select your USB drive.

If you see a "undefined mode number" warning during boot: this does not hurt, just hit SPACE. My hardware survived, scan doesn't help. I'll try and fix that in the next version.

Also, you may not be able to boot if there is an SD card in the slot. If during boot, a KIWI error message complains about "Couldn't determine file system type..." or similar, remove the card and try again.

4. The stick has user linux without password and with autologin configured, and user root also without a password (you might not want to leave your Eee PC alone with it...).

5. The window manager you are logged in now is fvwm2. My idea was that this is the smallest graphical system I could create within a reasonable time, and that everyone can build their desired system from that and install all the packages they want.

6. In the fvwm2 button list, click the openSUSE icon and choose "Control Center". This will start yast2. (If you've never seen fvwm2 before: when a grid appears under the mouse pointer, you have to click somewhere for the new window to appear.)

7. In yast2, under "Miscellaneous", find the module "Live Installer". This will start a standard yast installation with the notable difference that you don't get to select any packages for installation. Instead, the installed system on the stick is copied over to your hard disk. We also use this for our LiveDVDs and it works (at least for me) like a charm, cheers to the YaST team!

8. I assume you are familiar with partitioning a hard disk. If not, please find someone who is to assist you, because you probably want to use Expert Mode ("Create Custom Partition Setup") in the yast partitioner. The partitions I have created are:

/boot 100MB
/     2.5GB
/home 1.2GB

But you can also use a single partition, that will prevent you from running out of free space too early. The /boot partition can be lowered to 50MB, usually only 10-15 MB are used.

In the partitioner you also see your USB stick, don't confuse it with your internal disk. (I am sorry, but I have to mention that.)

How many and which partitions you create is a matter of personal preference, a single partition will work just as well.

9. No, no swap. The default Xandros install also came without swap, and I am a bit paranoid about the limited (if large) number of write cycles to the SSD. Do as you wish. For the same reason, I use ext2 (and not a journaling file system) on all partitions and mount them with the option "noatime" set. (You can set this in the partitioner, or later modify /etc/fstab by hand.)

10. Grub. You have to make sure, and probably change the default setting, that grub is installed on your hard disk and not on the USB stick.

During install, my USB stick was /dev/sdb, and the internal hard disk was /dev/sdc. After rebooting without the USB stick, the internal numbering of disks will change: in my case, the internal disk is /dev/sda when I boot from it.

In Boot Loader Settings -> Boot Loader Installation, I chose "Boot from Boot partition", and yast2 used /boot as created above.

In the drop-down menu "Other" in the lower right corner, you can edit the configuration files directly if you really know what you're doing.

As grub uses /dev/disk/by-id/... links in the menu.lst, the reordering of disks should not matter. In my installation, however, it messed up the root (hd0,0) entry because it uses absolute numbering there. If this happens to you (you will notice on first boot that the EeePC doesn't. Boot, that is):

10a. Boot from the stick again, but do not start the installation. Find and mount the partition of your internal disk where you installed grub, find the file /boot/grub/menu.lst, and change the line

root (hd1,n)

to

root (hd0,n)

(where "n" is, of course, whatever number is there already, not a literal "n"). Change the first number, which denotes the disk from which to boot, and leave the second number as it is, it denotes the partition from which to boot. Here we count from zero -- sda1 would be 0,0, sda2 0,1 and so on. If your EeePC behaves the same as mine, your internal disk is sda when you boot from it.

11. On first boot (assuming that you have repaired grub, if necessary), remove the USB stick and finish the installation just as in a standard openSUSE installation. Congratulations, that's it!

12. Log in, start yast2, and install all the packages you want. If you want to use KDE or GNOME and know a little bit about them, you don't need to install them through the patterns. Select only the packages you want and let dependencies handle the rest. This takes more time and a bit of trial and error, but you have a fighting chance to keep your system a bit smaller that way.

Installation from two USB drives

  1. First you create the boot stick by following the steps from http://en.opensuse.org/SuSE_install_from_USB_drive
  2. Then you create the "fake" USB-CDROM by formatting the second drive similar to what is described in the article above, except that we don't try to make it bootable and only copy the contents of the CD to the stick.
  3. Create a new directory and name it e.g.: EeePC
  4. Within this directory create two directories e.g: GM and Update
  5. Copy the default packages from http://download.opensuse.org/repositories/home:/appleonkel:/EEE/openSUSE_10.3/i586/ to the GM directory
  6. Copy the default packages from http://download.opensuse.org/repositories/home:/appleonkel:/EEE/openSUSE_10.3_Update/i586/ to the Update directory
  7. Insert both sticks into the EeePC
  8. During the BIOS screen press ESC to get to the boot device menu and pick the boot stick.
  9. Now you see the normal installation menu and the only thing that you have to change is the source. Set it to "Hard Disk" by pressing F4 and using the cursor keys. It will scan all disks when you leave it empty - so leave it empty. You will want to select the USB drive with the DVD image on it, and enter "/" for the path.
  10. The graphical installation program should start, on one of the question screens, deselect "Add Online Repositories Before Installation" (remember - we do not have network now)
  11. As it is no good idea to have a swap partition we have to change the partitioning - if you are not familiar with this topic try to get some help before you proceed.
  12. Pick "Create Custom Partition Setup" and then "Custom Partitioning (for experts)".
  13. Leave the first three partitions untouched and create one large partition (about 3.7 GB) for /.
  14. The rest of the installation is similar to a normal installation except that you will have to boot from the boot stick again and start the installation again (ie, not 'Boot from Hard Disk' at the first menu) but instead of choosing "New Installation" when the graphical installer starts up you pick "Other Options" and then "Boot Installed System". Now you can proceed with the second stage of the installation.
  15. After you are done with the installation become root and change to the GM directory on the second USB stick. Simply install all the packages with "rpm -Uvh *"
  16. Now you have to fix the grub issue by doing the same as described in step 10a from "Installation from bootable USB drive with YaST Live Installer".
  17. You can add all the "needed" online repositories now and do a update. If the network is not working anymore after the update then install the packages from the Update directory that you have created earlier.

This method also works for putting OpenSUSE onto a SD card to have a dual-boot OpenSUSE/Xandros system. To fix grub, instead of 'step 10a' you can simply umount (if required) and remove the USB sticks (so they definitely won't be probed), run yast and choose System - Boot Loader. Then use the 'Other' 'Propose New Configuration' option and it will produce a grub setup that will let the OpenSUSE install boot (by default it also finds the original Xandros grub configuration on the first partition of the SSD, and tries to incorporate that, but the result won't boot the Xandros properly, possibly because the Xandros setup assumes a different disk arrangement than you'll have if you booted from the SD card in the slot). You can then either manually add a correct Xandros entry, or simply delete the Xandros entry in the YaST proposal (to boot Xandros you just eject the SD card before booting or press ESC when booting and choose the internal SSD). If YaST reports it is going to write grub to floppy just say OK - it seems to end up on the SD card as it should - and on subsequent runs it doesn't seem to make the same announcement. Having done this, you can incorporate the Xandros partitions into /etc/fstab to have them available in OpenSUSE (/dev/sdb1 type ext2, probably prudent to mount it read-only; /dev/sdb2 type ext3 and if read-write you can use the files that have been saved from within Xandros - they will all be owned by the first user specified during the OpenSUSE install).

Installation from DVD

Requirements

  • openSUSE installation DVD
  • external USB DVD drive


It is also possible to install from DVD (at least on 11.1, and probably previous versions) as per a normal installation. The only trick to this type of installation is that the graphical YaST installer wants a screen resolution of at least 800x600. You can satisfy this requirement by using an external monitor and using fn+F5 to switch the display to it.

If you don't have an external monitor, the installation will fall back to the curses based screens.

Improvements

The X Server will only work with a 640x480 resolution on the Asus Eee PC 701. Edit your /etc/X11/xorg.conf and replace the sections "Monitor", "Screen" and "Device" with the following code:

 Section "Monitor"
   Identifier   "Monitor[0]"
   VendorName   "ASUS"
   ModelName    "eeePC 701"
   ModeLine     "800x480" 29.58 800 816 896 992  480 481 484 497 # 60Hz
   Option       "DPMS"
 EndSection
 Section "Screen"
   DefaultDepth 24
   SubSection "Display"
     Depth      24
     Modes      "800x600"
   EndSubSection
   Device       "Device[0]"
   Identifier   "Screen[0]"
   Monitor      "Monitor[0]"
 EndSection
 Section "Device"
   BoardName    "Mobile 915 GM"
   BusID        "0:2:0"
   Driver       "intel"
   Identifier   "Device[0]"
   VendorName   "Intel"
 EndSection

Hotkeys

Method 1

The hotkeys are not working, too. You can download the RPM from the following repository:

 rusjako's eeePC repository 

and install it to make the hotkeys Fn+F2 to Fn+F9 working. It will also add the asusosd binary and the below mentioned file 60eeepc. You have to start the binary by yourself to make the OSD working. Edit the following option to the shown value in /etc/powersave/events if the suspend (hibernation) mode is not working when you press Fn+F1:

 EVENT_BUTTON_SLEEP="suspend_to_ram"

Method 2

You can install the eeeEvents package from the appleonkel-repository. This package adds some files to /etc/acpi/events and /etc/acpi/scripts. It also installs the asusosd binary, which is automatically started within /etc/X11/xinit/xinitrc.d/asusosd.

Method 3

Another method to activate the most hotkey symbols is to add the following lines to the end of /usr/share/X11/xkb/symbols/de (example for German keyboard):

partial alphanumeric_keys
xkb_symbols "eeepc" {

    include "de(basic)"

    name[Group1]="Germany - eeePC";

    key <AD12>  { [      plus,   asterisk,   asciitilde,  dead_macron ] };
};

The proper InputDevice section must be configured in xorg.conf like:

Section "InputDevice"
        Identifier  "keyboard"
        Driver      "kbd"
        Option      "CoreKeyboard"
        Option      "XkbRules" "xorg"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "de"
        Option      "XkbVariant" "eeepc"
EndSection

The asus_acpi module must be loaded, see description below.

Then you need to define the hotkeys in /etc/acpi/hotkey.sh. The following example is derived from original Xandros and works (but not the WLAN key, LCD/CRT not tested):

#!/bin/sh

export DISPLAY=:0

case $3 in
        #Fn+F1
        00000080)
                # echo "Suspend2RAM" > /dev/console
                ;;
        #Fn+F2
        00000010)
                # echo "Wlan On" > /dev/console &
                /etc/acpi/wlan.sh poweron
                /etc/acpi/wlan.sh restore
                ;;
        00000011)
                # echo "Wlan Off" > /dev/console &
                /etc/acpi/wlan.sh poweroff
                ;;
        #Fn+F5
        00000030)
                # echo "LCD" > /dev/console &
                /usr/bin/xrandr --output LVDS --preferred --output VGA --off
                ;;
        00000031)
                # echo "CRT" > /dev/console &
                /usr/bin/xrandr --output VGA --mode 1280x1024 --output LVDS --off
                ;;
        00000032)
                # echo "LCD-CRT" > /dev/console &
                /usr/bin/xrandr --output VGA --mode 800x480 --output LVDS --mode 800x480
                ;;
        #Fn+F6
        00000012)
                # echo "Task Manage On" > /dev/console
                #DISPLAY=:0 /bin/su -c "/usr/bin/ksysguard --showprocesses" user &
                /opt/kde3/bin/ksysguard --showprocesses &
                ;;
        #Fn+F7
        00000013)
                # echo "Volume Mute" > /dev/pts/0 &
                amixer set Master toggle
                ;;
        #Fn+F8
        00000014)
                # echo "Volume Down" > /dev/console &
                amixer set Master 3.20dB-
                ;;
        #Fn+F9
        00000015)
                # echo "Volume Up" > /dev/console &
                amixer set Master 3.20dB+
                ;;
        #Fn+F3
        0000002x)
                #echo "Brightness Down" > /dev/pts/0
                ;;
        #Fn+F4
        0000002x)
                #echo "Brightness Up" > /dev/pts/0
                ;;
esac

Decrease Disk I/O to Improve SSD Longevity

Append "elevator=noop" in grub's boot parameters, after "vga=0x314", this should further reduce SSD access/wear. This may also improve performance.

Mount using the "noatime" option, for some details see here

A description of some other (writeback) options is in the ZDNet article here

A more technical and data driven description and discussion is here

Add the following line to /etc/sysctl.conf:

 vm.dirty_writeback_centisecs = 15000

That will prolong the life of the SSD by writing only every 150 seconds (2.5 minutes) to it, unless low memory or something else forces a write sooner. Beware that this risks losing any data written to disk within the last 150 seconds should the system crash - choose a bigger or smaller number to suit your relative SSD life v. system crash paranoia.

If you are running kpowersaved, however, that will over-ride the setting. In that case, edit /etc/powersave/events and find the lines with "EVENT_ACADAPTER_ONLINE" and "EVENT_ACADAPTER_OFFLINE". If they are set to "ignore", change the "ignore" to "set_dirty_writeback". If they are set to anything else, add set_dirty_writeback to the end of the list. Then create the file /usr/lib/powersave/scripts/set_dirty_writeback with the same permissions as the other files in that directory and containing something like this:

 #!/bin/bash
 #
 # load helper functions
 . ${0%/*}/helper_functions
 
 # set vm parameter to required value
 sleep 3
 $LOGGER "set dirty_writeback_centisecs to 15000"
 echo 15000 > /proc/sys/vm/dirty_writeback_centisecs
 
 # exit in the required manner
 $SCRIPT_RETURN $EV_ID 0 "set_dirty_writeback complete"
 EXIT 0


By mounting the tmp directories in a tmpfs the accesses to the SSD will be decreased. But you will lose all the data in the tmp directories if the PC shuts down. Add the following lines to /etc/fstab

 tmpfs      /tmp                    tmpfs        defaults      0 0
 tmpfs      /var/tmp                tmpfs        defaults      0 0
 tmpfs      /var/lock               tmpfs        defaults      0 0

If you do not use postfix as a real MTA then you can also add this line:

 tmpfs      /var/spool/postfix      tmpfs        defaults      0 0

You can also mount /var/log and /var/run as tmpfs, in this example with a maximum size of 128MB:

 tmpfs      /var/log                tmpfs        defaults,size=128m    0 0
 tmpfs      /var/run                tmpfs        defaults,size=128m    0 0

Notes:

  • To mount /var/run with tmpfs causes some problems with needed subdirectories, maybe you need to find a workaround.
  • Mouting /var/log with tmpfs can also cause problems. For instance, apache2 does not start, because /var/log/apache2 does not exist. Workaround: Change the apache2 init script to create that directory each time apache2 is started.
  • You should also create the /var/log/YaST2 directory, add test -d /var/log/YaST2 || mkdir -m 700 /var/log/YaST2 to your /etc/init.d/boot.local script.
  • Cups demands the directory /var/lock/subsys. Change the cups init script to create that directory each time cups is started.

ext2/ext3 file system tuning

For increasing the free space in your ext2 or ext3 file systems, you can reduce the reserved blocks to e.g. 2%:

tune2fs -m2 /dev/sda1

Configuration and additional repositories

Suspend

To get suspend to disk and RAM to work you just need to add

Image:susemini.png
Version:
11.0
http://download.opensuse.org/repositories/home:/seife/openSUSE_11.0/
Image:susemini.png
Version:
10.3
http://download.opensuse.org/repositories/home:/seife/openSUSE_10.3/

to your repositories and install the "suspend" package.
A big thanks to seife!

Suspend to RAM works quite well (by using the hotkey and/or closing the cover), but you need to add some code to the power management in e.g. /etc/pm/sleep.d/60eeepc (script adapted from original Xandros):

#!/bin/bash
case $1 in
    hibernate)
        /etc/init.d/network stop
        /sbin/modprobe -r ath_pci
        #/sbin/modprobe -r ndiswrapper
        ;;
    suspend)
        /etc/init.d/network stop
        /sbin/modprobe -r ath_pci
        #/sbin/modprobe -r ndiswrapper
        ;;
    thaw)
        /sbin/modprobe ath_pci
        #/sbin/modprobe ndiswrapper
        /etc/init.d/network start
        /etc/init.d/acpid restart # hotkeys do not work after resume, /etc/acpi
        ;;
    resume)
        /sbin/modprobe ath_pci
        #/sbin/modprobe ndiswrapper
        /etc/init.d/network start
        /etc/init.d/acpid restart # hotkeys do not work after resume, /etc/acpi
        ;;
    *)  echo "EeePC power management script called incorrectly."
        ;;
esac

Problems:

  • Resume fails if the camera is in use (e.g. by Skype)
  • Device names from mounted SD card filesystems are changed after a resume, e.g. from sdb to sdc. This causes problems with mounted filesystems. Even though udev creates new symlinks in /dev/disks/by-id/, existing mounts do not work anymore. So, you have to umount the filesystem before suspend and mount it again after resume, or just add the umount and mount commands to the powermanagement script above. However, this doesn't help when umount is not possible due to open files. There seems to be a solution by using a USB_PERSIST kernel setting (see eeeuser.com forum sdb becomes sdc after hibernation and Building a kernel where USB_PERSIST actually works), but that parameter is not configured in the standard openSUSE kernel. Any other solutions are welcome.
  • Suspend to RAM does not work if openSUSE is installed on the SDHC card, because internally the SDHC adapter is connected via USB and cannot be unmounted.

Wireless Networking (WLAN), Sound (Alsa), Ethernet, ACPI

WLAN needs the madwifi package from this repository:

http://download.opensuse.org/repositories/home:/appleonkel:/EEE/openSUSE_10.3/

and to keep updates:

http://download.opensuse.org/repositories/home:/appleonkel:/EEE/openSUSE_10.3_Update/

However, the madwifi driver does not work very reliable (for me). Establishing connections is a pure luck. You can also use the ndiswrapper module, see schmolle1980 repositories below and Howto: Configure ndis wrapper. The ndiswrapper method is more reliable, but there is a problem with high system load causing from a process named ntos_wq.

The appleonkel repositories contain also packages for Alsa, Ethernet and ACPI drivers.

For starting the asus_acpi module at system startup, you should add it to the file /etc/sysconfig/kernel:

MODULES_LOADED_ON_BOOT="asus_acpi"

To get WLAN working again after disconnecting it with Fn+F2, you must have started the EeePC with the wireless card deactivated in the bios. If not, you can get an error like 'Hardware didn't respond as expected' (HAL status 3)

openSUSE 11.1

ath5k

The ath5k driver in openSUSE 11.1 still does not work correctly with the wifi card in the 701. When the module is installed it creates the wlan0 device (as well as the controlling device), but it will not successfully connect to an access point.

madwifi

Madwifi (now deprecated in favour of ath5k) also does not work under 11.1. The current stable version (0.9.4) from : http://www.madwifi-project.org/suse/11.1 does not compile (apparently an issue with 2.6.27 kernel, not 11.1 specifically). The latest snapshot version as of 3 January 2009 does compile but does not create the appropriate devices when the ath_pci module is loaded.

ndiswrapper

Ndiswrapper does work on 11.1

CPUFreq

The CPU in the eeePC supports CPUFreq via the p4-clockmod driver. For some reason, this is not probed for by default by haldaemon, so you'll need to edit part of /etc/rc.d/haldaemon to read:

function load_cpufreq_driver() {

   CPUFREQ_MODULES="p4_clockmod speedstep_centrino powernow_k8 powernow_k7 powernow_k6 longrun speedstep_ich acpi_cpufreq"
   CPUFREQ_MODULES_GREP="^p4_clockmod\|^speedstep_centrino\|^speedstep_ich\|^powernow_k8\|^powernow_k7\|^powernow_k6\|^longrun\|^longhaul\|^acpi_cpufreq"
   
   ###### load CPUFREQ modules############

Please note that some users on other distributions have reported instability using this driver. I, however, am using it right now on OpenSUSE 10.3 and have no issues. YMMV.

Camera

To activate the camera you first have to turn it on in the BIOS. Then add

http://download.opensuse.org/repositories/home:/schmolle1980/openSUSE_10.3/

and to keep updates

http://download.opensuse.org/repositories/home:/schmolle1980/openSUSE_10.3_update/

to you repositories and install the "uvcvideo-kmp-default" package. After a reboot the camera should work out of the box (tested with kopete). The camera works in Skype but not in ucview.

Fan Control

After a couple of minutes the fan of the eee PC turns on and never out again. To control it the following repository provides the package eeeFancontrol. This needs the eee kernel module. Until now it's not provided by these repository. I will try to add it soon.

http://download.opensuse.org/repositories/home:/rusjako:/eeePC/openSUSE_10.3

Add this to your repository and install the "eeeFancontrol" package. After a reboot or by running /etc/init.d/eeefanctrl start the script will control the fan.

Alternatively add this repository and install fan control package from there

Image:susemini.png
Version:
11.1
http://download.opensuse.org/repositories/home:/SuSEee:/EeePC-Ext-Projects/openSUSE_11.1/

openSUSE 11.0 Problems and Solutions

An update from openSUSE 10.3 to openSUSE 11.0 can be made e.g. by using an external USB DVD drive. The repositories mentioned above do provide already all packages for openSUSE 11.0. If you want to use online repositories during the update, you have to copy and load the atl2 Ethernet driver manually. openSUSE 11.0 seems still not to provide a full set of hardware modules for the EeePC.

In case you don't have an external DVD drive, there is another way to update from openSUSE 10.3 to openSUSE 11.0. One can use zypper to do an online update which worked fine for me.

How to use zypper to upgrade is described in this blog entry.

Improvements

The problem with device names of SD cards, changing after suspend and resume (e.g. sdb -> sdc), is fixed in openSUSE 11.0.

Problems

SDHC

An issue with SDHC cards was reported in the eeeuser.com forum. Some SDHC cards worked previously under openSUSE 10.3 without problems, but in the EeePC they fail under openSUSE 11.0. Sample error message with a 4GB Transcend SDHC Class 6 (7812096 sectors):

[sdb] Sense Key: Hardware Error
I/O error, dev sdb, sector 7812088

Some issues with the SDHC reader may be solved with a BIOS update.

Wireless Networking (WLAN)

The new WLAN driver ath5k, included in the openSUSE 11.0 kernel package, seems not to work on the EeePC. So we need to blacklist this module to use the madwifi driver from appleonkel-repository. Edit /etc/modprobe.d/blacklist and add:

 blacklist ath5k

After that you have to reboot your Eee PC, because the wlan-chip must be initialized again.

Asus Eee PC 900a

The Asus Eee PC 900a is somewhere between the 701 and the 901.

Graphics

On openSUSE 11.0 and 11.1 the display hardware can be configured using sax2. But to make it really work the entry DISPLAYMANAGER_RANDR_MODE_auto in /etc/sysconfig/displaymanager must be set to the name of the proper display mode "1024x600".

In 11.1 with kde4, set the fonts to 96dpi or the text will be too small to read. (configure desktop -- Appearance -- Fonts -- Force font DPI)

Wired Networking (LAN)

The 900a uses the Aethros 1e chip.

In 11.1 the module is in the distribution and works.

Wireless Networking (WLAN)

Like the 701 the 900a needs the madwifi-ng driver.

In 11.1 blacklist the eeepc_laptop module in /etc/modprobe.d/blacklist. Install the asus_acpi-0.30 from appleonkel repository. Use the eeeEvents-1_1 module from 11.0 to get the hotkeys working. Add asus_acpi and pciehp to /etc/sysconfig/kernel modules_loaded_on_boot. The ath5k module works in 11.1 and with the above changes will be loaded and unloaded when you turn wireless on and off.

Boot Booster

All EeePCs have a feature named Boot Booster. Boot Booster requires the boot partition type of the first partition on the first disk to be 0xEF, and a stock install of openSUSE will not set up this type of partitioning scheme.

An EeePC uses the Boot Booster feature to skip BIOS loading and BIOS configuration on boot, going directly into the boot process. To use this feature, a partition of the type 0xEF with a size of at least 8MB must be available on the boot drive and Boot Boster must be enabled in the BIOS.

Asus Eee PC 901 Problems and Solutions

Screen Resolution

After installing openSUSE 11.0, you will find your Eee PC 901 does not display a significant portion (28%) of the bottom of the screen. The reason this happens is because by default the screen resolution is set to 1024 x 768, and the screen's native resolution is 1024 x 600, so you will not be able to see or use the bottom 168 pixels. This can be particularly difficult, because by default the panel containing the application launcher, Lock/Logout button, pager, system tray, and Task Manager is placed at the bottom of the screen. The panel can not bee seen, and it can not be used. Thankfully, there is a solution.

Fix the Screen Resolution

It is assumed you will be using KDE 4.0 for the instructions in this section.

  1. Log in as root user (the system administrator's account is named "root").
  2. Run YaST by right-clicking anywhere on the desktop there is no icon or other widget.
  3. A menu list will appear. Left-click on "Run Command" from this menu list. A dialog box will appear where you can enter the name of the program you want to run. In the top text field of this dialog box, enter "yast" (without typing the quote marks). Using the mouse pointer, scroll down to the bottom of the programs listed in the dialog box and click on "YaST (Application)". Left-click the button in the lower right hand corner of the dialog box labeled "Launch".
  4. The main YaST screen will appear. From YaST, choose "System" from the left hand column, then choose "/etc/sysconfig Editor" from the right-hand column.
  5. Next you will see a list of options on the left hand column.
  6. Left-click on the plus sign next to "Desktop" in the left hand column, then left-click on the plus sign next to "Display manager", also in the left hand column.
  7. Next, left-click on the line in the Display manager section labeled "DISPLAYMANAGER_RANDR_MODE_auto", also in the left hand column. You will see towards the top of the screen a text box that shows you the current default value of:
     1024x768_60 64.11 1024 1080 1184 1344 768 769 772 795 -HSync +Vsync

Left-click in the text box. Change the default value above to

     1024X600_60 48.96 1024 1064 1168 1312 600 601 604 622 -hsync -vsync
  1. Left click on the button in the lower right hand corner of the screen labeled "Finish".
  2. Either log out to the login screen and restart the X server by pressing Ctrl+Alt+Delete twice in a row; or reboot. When you log in again, you will be able to see the entire screen including the panel on the bottom.

Suspend to Disk

Set up as mentioned above for the eee701, but replace ath_pci with rt2860sta. Sometimes network may be in offline mode, but just reconnect. Have not seen any issues with my SDHC-card (16GB Kingston)

Suspend to RAM

Suspend to ram with 's2ram -f' works out of the box.

Wired Networking (LAN)

The Asus Eee PC 901 uses the Attansic L1E gigabit Ethernet adapter (Linux kernel module name: atl1e) chip for wired networking, and is fully supported automatically in openSUSE 11.1. Network installation is now possible.


Wireless Networking (WLAN)

Wireless networking on the Asus Eee PC 901 uses the Ralink RT2860STA driver (kernel module name: rt2860sta), and is automatically installed in the second phase of openSUSE 11.1 installation.

Wireless networking only works after installation of the system is complete. As of 2009-Oct-28 with openSUSE 11.1, wireless networking can only connect to Wi-Fi wireless access points that transmit a SSID (Service Set identifier). If a Wi-Fi wireless access point is not transmitting a SSID, then the Asus Eee PC 901 will not be able to connect to only that access point.

Asus Eee PC 1000H

Wireless Networking (WLAN)

In a very similar fashion as the Asus Eee PC 901, wireless networking on the Asus Eee PC 1000H uses the Ralink RT2860STA driver (kernel module name: rt2860sta).

The RT2860STA driver is known to work on a stock installation of openSUSE 11.0. Thanks again go to Dmitry Serpokryl for his valuable contribution of this package. Add the following repository and install the rt2860 and the rt2860sta-* package appropriate for your kernel:

Image:susemini.png
Version:
11.0
http://download.opensuse.org/repositories/home:/dmitry_serpokryl:/Enlightenment-cvs-core-metapackage/11.0_update/


Deprecated fix for wireless networking using ndiswrapper on the Asus Eee PC 1000

Asus Eee PC 1000HE

Wireless Networking (WLAN)

The chip used to provide wireless networking on the Eee PC 1000HE is the Atheros AR9280, which is capable of connecting using:

The Eee PC 1000HE uses the kernel driver named "ath9k" to support the AR928X chip. The ath9k driver is part of the openSUSE 11.1 stock install, does not work correctly, and limits wireless network connection speeds to 1 Mbits/second (which is 122.1 KiB/second, and is so slow as to be barely usable).

To enable the full 300 Mbits/second wireless capability of the Eee PC 1000HE, it is necessary to install a newer ath9k driver from the compat-wireless package. There are different versions of this driver to suit different kernel version types:

If you did not manually select any particular kernel during your installation of openSUSE, then the kernal type installed was kernel-kmp-pae, and you should install compat-wireless-kmp-pae-2.6.30_2.6.27.25_0.1-3.1.i586.rpm, or a newer version of this driver. The YaST Software Manager will only install the version of compat-wireless that is correct for the installed kernel.

Users should subscribe to the "driver:wireless" repository:

  • to automatically update the ath9k wireless driver as it changes
  • to install drivers for other wireless network chips
Image:susemini.png
Version:
11.1
http://download.opensuse.org/repositories/driver:/wireless/11.1-update/

Sound - Volume too low

On openSUSE 11.1 the sound works but volume is very low. The following should give you good volume control and and the functionality of turning the laptop speakers off when headphones are plugged in.

Add the following line to your /etc/modprobe.conf.local file:

options snd-hda-intel model=quanta

Restart your EeePC and you should have better sound results!