Archive for December, 2002

Linux on Asus L8400 laptops

Friday, December 27th, 2002

Photo of Asus laptop
There are no major problems in running Linux on Asus L8400 laptops.

The Asus L8400B and L8400C laptops are sold both under the Asus brand and under other names.

I have personally installed Debian potato (2.2r3) and woody (3.0) on a L8400C with very few problems. I have no reason to believe other distributions shouldn’t fare as well.

Both installation and daily usage pose no major problems.

Hardware-wise the build-in modem is non-functional (winmodem) and the touchpad is only capable of two-button mode.

Installation of Linux went without a hitch though you have to be careful if you want to use the Suspend to Disk feature.

Daily use of the laptop is faily perilless and my grievances are few. There is a rather noisy cpu-fan that sets in at times, the harddisk can be a bit noisy too.

About the Asus L8400 laptops

The Asus L8400 supports:

  • Pentium III and Celeron processors (exchangeable),
  • up to 384Mb of memory (64/128Mb PC-100 SDRAM onboard, one SODIMM extension slot with up to 256Mb),
  • 14.1″ TFT display capable of 1024×768@75Hz,
  • Savage/MX-MV AGP video chipset with 8Mb memory,
  • one 2.5″ 9.5mm IDE drive up to 20Gb,
  • PCMCIA slots (2 type II or one type III),
  • RTL8139 10/100BaseT NIC,
  • ESS Allegro ES1988 sound chip,
  • CD-ROM 32x or DVD 8x or CD-RW 4x/4x/20x (CD-RW only available on L8400C),
  • PS/2 mouse (glidepad, two-button),
  • floppy drive,
  • serial port (9 pin),
  • parallel port (25 pin),
  • IrDA port,
  • two USB ports.

Please refer to Asus’ site for the specifications for L8400B and the specifications for L8400C.


The output from lspci(1) on my laptop:

00:00.0 Host bridge: Intel Corp. 440BX/ZX - 82443BX/ZX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX - 82443BX/ZX AGP bridge (rev 03)
00:06.0 Multimedia audio controller: ESS Technology ES1988 Allegro-1 (rev 12)
00:06.1 Communication controller: ESS Technology ESS Modem (rev 12)
00:07.0 ISA bridge: Intel Corp. 82371AB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corp. 82371AB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corp. 82371AB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corp. 82371AB PIIX4 ACPI (rev 03)
00:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 10)
00:0a.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
00:0a.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
01:00.0 VGA compatible controller: S3 Inc. 86C270-294 Savage/MX-MV (rev 11)

Linux Installation

Any modern distribution of Linux should install fine on the Asus L8400 laptops. I have personally installed Debian potato (2.2r3) and woody (3.0) with no serious problems.

The computer is capable of booting from the CD-ROM so there is no need for boot-floppies.

I received my L8400C with a blank disk, but I am quite sure I have paid the infamous MS-tax, so there should have been a copy of Windows 98 preinstalled at arrival.


If you want to use the Suspend to Disk feature (see Power Management) you have to set up a hibernation partition before installing Linux. If you computer comes with an inferior OS already installed, you might not have to do this.

You create a hibernation partition with a program called PHDISK.EXE, a Windows/DOS program found on otherwise useless CD that comes with the computer. You will have to make a Windows/DOS bootdisk and run the PHDISK program from there. It will clear the partition table and create a hibernation partition as partition 4 at the start of the disk. The size of the hibernation partition will be the size of physical memory plus the size of video memory plus a bit extra. Mine is 207Mb with 192Mb physical memory and 8Mb video memory.

The partitions on your disk will not be numerical order after PHDISK, but it is not a problem. Linux’ fdisk(8) might give you a warning about this: “Partition table entries are not in disk order”, but it is purely an aesthetic issue.

I have noticed an lphdisk program for linux, but I have never tried it. It might work for you and spare you a short, but traumatic period with a needlessly inferior OS 🙂

Kernel Modules

You will need the following kernel modules to use all the bits and pieces of your laptop (the 2.2 column is reconstructed by memory – some time has passed since I used Linux 2.2).

Hardware Kernel 2.2
Kernel 2.4
IDE probe N/A ide-disk, ide-probe-mod, ide-mod [initrd]
Root FS N/A ext2 [initrd]
Real Time Clock N/A rtc
Mouse psaux
IrDA don’t know don’t know
APM Kernel augument: apm=on (Debian) apm
CD-ROM N/A ide-cd, cdrom
NIC rtl8139 8139too
Sound maestro3, ac97_codec
Parallel port parport, parport_pc, lp
PCMCIA controller
(set in pcmcia-cs config
i82365 yenta_socket
USB controller uhci
USB printer printer
USB disks and cameras usb-storage
USB mouse mousedev

If you use a kernel with initrd support you must list these modules in /etc/mkinitrd/modules and rebuild your initrd image. These modules must be loaded from the ramdisk so IDE controller module, disk driver module and the root file system module are all loaded before the real root file system is mounted. The system will probably not boot properly without these modules.

X Windows

The Asus L8400 laptops uses an S3 Savage MX video chipset. Mine has a Savage/MX-MV, other models might have slightly different chipsets.

Xfree86 4.0 and 4.1 has support for the S3 Savage MX through the savage(4) driver. DRI is not supported.

There are two sets of drivers: the original one is developed by Tim Roberts, the second is developed by S3 Graphics, based on Tims driver.

There is is limited support for the S3 Savage MX in Xfree86 3.3. I am not aware of the current status of this support. If at all possible it will probably be easier to upgrade to 4.1


I have the following sections in my XF86Config-4 file.

The internal mouse is a perfectly normal two-button PS/2 mouse:

Section "InputDevice"
	Identifier	"Internal Mouse"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"		"/dev/psaux"
	Option		"Protocol"		"PS/2"
	Option		"Emulate3Buttons"	"true"

The Savage chipset uses the “savage” driver.

Section "Device"
	Identifier	"savage"
	Driver		"savage"
	VideoRam	8192

The monitor configuration is straightforward. These settings give 1024×768@85Hz. I enable DPMS but I am having some problems with it. Please see later. The frequency ranges are as recommended by Tim Roberts.

Section "Monitor"
	Identifier	"lcd"
	HorizSync	30-70
	VertRefresh	50-90
	Option		"DPMS"

This is just to glue it all together. I haven’t tried all combinations, in fact I have only used a depth of 16. That works brilliantly.

Section "Screen"
	Identifier	"Default Screen"
	Device		"savage"
	Monitor		"lcd"
	DefaultDepth	16
	SubSection "Display"
		Depth		1
		Modes		"1024x768" "800x600" "640x480"
	SubSection "Display"
		Depth		4
		Modes		"1024x768" "800x600" "640x480"
	SubSection "Display"
		Depth		8
		Modes		"1024x768" "800x600" "640x480"
	SubSection "Display"
		Depth		15
		Modes		"1024x768" "800x600" "640x480"
	SubSection "Display"
		Depth		16
		Modes		"1024x768" "800x600" "640x480"
	SubSection "Display"
		Depth		24
		Modes		"1024x768" "800x600" "640x480"


I am having some minor problems with X-windows. Nothing serious, though.

I can’t get DPMS to work properly. I have it enabled in the XFree configuration, and it shows up in the output of “xset q” as enabled. Now, if I enable screen blanking in the BIOS, the BIOS will blank the screen when its time limit is up, regardless of the limits set in X. If I disable screen blanking in the BIOS, there is no way I can get DPMS in action in X. A “xset dpms force off” is a no-op. It seems to me that the DPMS settings in X has no effect at all. If might be an issue with the savage driver, but I am not sure.

If you use StarOffice, some versions of the savage driver can cause X to freeze when you start StarOffice. This has been fixed later in Tim Roberts driver, but if you use the older driver you can avoid the problem by setting the environment variable SAL_DO_NOT_USE_INVERT50=true before launching StarOffice.


The Asus L8400 laptops come with an ESS Technology ES1988 Allegro-1 audio controller. It is also called an Maestro-3

The maestro3 OSS driver is included in Linux 2.2 and Linux 2.4.

It works to the extent I have used it. I can play sounds from various programs, play audio CDs, listen to the radio, …

There is a page dedicated to the Maestro3/Allegro linux sound driver.

The volume control on CD-ROM drive on the right side of the laptop works as a master volume dial. It is not just for playing audio CDs. I use it a lot, as it allows you to control the volume of any sound playing program, such as realplayer and xmms.

Power Management

The Asus L8400 laptops support APM and ACPI.

You must enable apm in you kernel, at compile time, with an apm=on kernel argument, or my loading the apm module (in Linux 2.4).

The hardware sends APM events and you must install and run the apmd(8) daemon to use the APM features of the laptop. This daemon will receive the events and run a shell script in reaction to the events. On Debian this script will in turn run all the scripts found in /etc/apm/event.d so it is quite easy to add private scripts to the event actions.

Suspend to Disk

The Phoenix BIOS has the ability to suspend the system, save the state of the entire laptop to disk before shutting down the computer. When power is switched on later the saved state will be restored and the computer will resume where it was suspended.

Suspend to Disk is activated by pressing Fn-F1.

To use the Suspend to Disk feature a special disk partition must be present.

Suspend to Disk works with Linux, but does cause problems with the network adapter. It has no power when the computer is in suspend mode, and loses some internal state. After the system is resumed any net activity will cause a large number of error messages.

The solution is to disable networking before suspend and re-enable it after the system is resumed. This is done thrugh the event handler script of apmd(8).

On Debian the following script can be placed in /etc/apm/event.d/networking. It will stop the network on suspend and standby events and restart it on resume events.

#! /bin/sh

case "$1" in
    /etc/init.d/networking restart 1>/dev/null 2>&1
    /etc/init.d/networking stop 1>/dev/null 2>&1

The script must be executable to work.

I know of no way to have the system go into suspend mode when the lid is closed. It should be possible, though.

Automatic power down

Normally the laptop will reboot then Ctrl-Alt-Del is pressed. The turn off power the power switch on the front must be pressed to the right for a few seconds.

What happens when Ctrl-Alt-Del is pressed is determined by /etc/inittab. There will most likely be a few linies similar to these (look for “ctrlaltdel” in the third field):

# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

Just change -r to -h to halt the system instead of rebooting. Activate the changes immediately with the command “telinit q“.

I know of no way to have the system shut down when the lid is closed.


Spinning down the harddisk is enabled in the BIOS. If this is not enough, add the command hdparm -S 72 to your startup scripts (-S 72 makes the disk spin down in 6 minutes, read hdparm(8) for detail on the number).

To actually get the disk to spin down you have to avoid regular disk access when the laptop is not in active use. Some daemons will regularly read or write files and these programs must then be avoided. Also watch out for cron jobs run with very short intervals. Some distributions have several crontabs. Debian has /etc/crontab and all the files in the directory /etc/cron.d

One potential offender is the postfix mail transfer agent. Allegedly there are ways of keeping postfix from touching the harddisk every so often, but as laptops often don’t need advanced mail handling it is much easier to switch to a less complicated MTA. Exim is a good choice, as it can use inetd for incoming mail (i.e., no separate daemon process) and queue runs are done from cron making it easy to adjust the frequency (thats /etc/cron.d/exim on Debian). As most mail is delivered immediately anyway, I just have a queue run every three hours, nighttime excluded.

Another potential problem can be the --MARK-- messages syslogd(8) writes to the system log, usually with 20 minutes intervals. Since they are rarely needed on a laptop they can just as well be disabled. It is done with the -m 0 option to syslogd (in /etc/init.d/sysklogd on Debian).

LPRNG can also prevent the harddisk from spinning down. If there are jobs in a print queue but the printer is not connected lpd will try to send the jobs every ten minutes. To avoid the problem either shut down lpd when not used, switch to something else (like PDQ without a spooler) or adjust the polling intervals in /etc/printcap (for LPRNG it should be the settings lpd_force_poll and lpd_poll_time).


Screen blanking can be enabled in the BIOS.

I have not been able to use the DPMS features of XFree86. See the section on X-windows for more information.


The battery is an 8-cell Lithium Ion (Li-Ion) battery.

Asus states the battery will last 2½-3 hours.

I usually run my laptop on AC power most of the time, so I use the battery sparingly. I have no independent measurements of battery life.


This section covers the remaining peripherals in the laptop.


The modem is unsupported under Linux. It is a winmodem integrated on the soundchip. I don’t think there is much hope here.

Please help if you have any information worth sharing. Add a comment at the end of this page.

The site is probably a good starting point for a desperate but doomed attempt at finding a working driver. It will most likely be a lot easier buying a PCMCIA modem if a modem is needed.

Network Interface Adapter

The NIC is a Realtek RTL-8139. Under Linux 2.2 it uses the rtl8139 driver, and under Linux 2.4 the 8139too driver. I have no idea as to why they changed the name.

The only problem is with power management and suspend mode. Please see the section on Power Management.


I have very little information.

It is a Ricoh RL5c476 II cardbus controller. It uses either the i82365 og the yenta_socket driver. I have used the yenta_socket driver with Linux 2.2.16 and 2.4.16 and it detects the two pcmcia slots. It should work with any supported PCMCIA cards.

I have used a “Netgear MA401 Wireless PC Card” with success. If the card is not recognised automatically, it might be necessary to add the following entry to the pcmcia-cs configuration file (/etc/pcmcia/config or /etc/pcmcia/config-2.4 under Debian):

    card "NETGEAR MA401RA Wireless PC"
      manfid 0x000b, 0x7300
      bind "orinoco_cs"

I have also recieved information that it works with an Elsa wireless LAN card.

IDE Controller and Harddisk

The IDE controller is an Intel 82371AB PIIX4 IDE. My laptop comes with a 10Gb IBM harddisk but it can be replaced with any 2.5″ 9.5mm IDE disk.

Disk I/O can be improved somewhat by enabling DMA and 32-bit I/O. The hdparm program is needed for this (in Debian it is in the hwtools package). The command to use is:

hdparm -c 1 -d 1 /dev/hda

I have experimented with other settings, but certain combinations can cause the system to hang. Most notably, the -m NN option causes problems.

Mouse / glidepad

It is a two-button PS/2 mouse. It works with the psaux kernel driver.

Unfortunately the mouse is not capable of three-button mode as are some glidepads (where a tap on the glidepad is the left mouse button while the two buttons in front are the middle and the right mouse buttons).

Install the Debian package “tpconfig” or similar if you want finer control over the glidepad.

Universal Serial Bus

The USB controller has not given me any problems.

It is a Intel PIIX4 controller that has two different drivers, uhci and usb-uhci. I use the former. I haven’t tried the latter.

I use a USB mouse (using the mousedev driver), an Olympus C-700UZ digital camera (with the usb-storage driver) and a cheap Lexmark Z13 printer (with, lo and behold, the printer driver).

I have tried with Linux 2.2.19 and Linux 2.4.16, both installed from Debian packages.


There are two special keys S1 and S2 (found on Fn-F5 and Fn-F6) but they are not usable. Under X-windows they don’t send any keycodes. I don’t miss them, though.

Parallel Port

The parallel port works as expected.

I have only tried it with an old HP LaserJet III, not with other more demanding devices such as ZIP drives and parport scanners.

Serial Port

I have no information here, but neither any reason to believe it
shouldn’t work.


I have no information.

Other Network Resources

I have found these pages very useful in my work with the Asus L8400 laptop:

L8400B specifications STALE LINK!
Asus techinical specifications of the Asus L8400B
L8400C specifications STALE LINK!
Asus techinical specifications of the Asus L8400C
Tom’s Hardware Guide
Everthing you ever wanted to know about the inside of an ASUS 8400 laptop.
Linux on Asus L8400C
Installed operating system: SuSE Linux 7.0 -> 7.1 -> 7.2 -> 7.3
The Linux Laptop Home Page
The main Linux on laptops portal.
The Linux USB Home Page
The main USB under Linux portal.
XFree86(TM): Home Page
Anything XFree is found here, including driver information.
Tim Roberts Savage driver
Tim Roberts Savage driver for XFree86 4.1
S3 Graphics’ Savage driver
S3 Graphics’ Savage driver for XFree86 4.1, derived from Tim Roberts’ driver.
A Linux version of PHDISK for creating hibernations partitions.
Maestro3 driver
The driver for the Maestro3/Allegro-1 chipset.

Open ends or unsolved problems

There are some things that still don’t work as it should.

The modem is unusable.

I don’t know how to suspend og shut down the system when the lid is closed.

The special keys S1 and S2 has no effect.

I cannot get DPMS to work properly.

Please add a comment below if you have some useful information that should be added to these pages.