Installing Gentoo Linux on ACER Aspire 5024WLMi

In summer 2005 I decided, that I need a successor for my more then five years old notebook. The new one should have a modern mobile processor with 64-bit architecture, a big harddisk, a lot of RAM, wireless lan, and good expandabilities. The new Acer Aspire 5020 and Acer Travelmate 4000 series did fullfill my needs for a moderate price.

I found an austrian vendor offering an Acer Aspire 5024 WMLi with 100 GB harddisk and 1 GB RAM. He was also delivering to Germany, so I bought this "Designed for Microsoft Windows XP" notebook and installed Gentoo Linux. Some things didn't work out of the box, but after some research most of the problems are gone. The notebook is doing well now.

The hardware

CPU AMD Turion 64 ML-34 (1800 MHz)
Display 15,4" WXGA CrystalBryte TFT LCD (1200x800)
Graphic card ATI Mobility Radeon X700 PCI Express with 128 MB RAM
Harddisk Seagate Momentus 4200.2 - ST9100822A (100 GB, 4200-RPM, 8 MB cache buffer)
CD/DVD Matshita UJ-845D (Panasonic OEM), Dual Layer DVD+RW
RAM 1 GB DDR RAM (2 x 512 MB), up to 2 GB possible
Wireless LAN 802.11 b/g, Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
Ethernet 10/100/1000 MB, Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)
Modem 56Kbps, ATI Technologies Inc ATI SB400 - AC'97 Modem Controller (rev 02)
Sound ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)
Card reader MMC/SD/SM/MS/MS PRO/xD, Texas Instruments PCIxx21/x515 Cardbus Controller
FireWire (IEEE 1394) Texas Instruments OHCI Compliant IEEE 1394 Host Controller
Chipsets ATI Technologies Inc RS480 Host Bridge (rev 01)
ATI Technologies Inc IXP SB400 (USB/USB2 Host Controller, SMBus Controller, PCI-ISA/PCI-PCI Bridge)
Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]

Preparation

The notebook was delivered with Microsoft Windows XP preinstalled. So the first thing to do was getting rid of it. Besides Windows I also found a small recovery partition of 2 GB size and "compaq diagnostics" type (type 12). Actually this is a FAT-formated partition containing some images necessary to reset the installation to delivery status.
I decided to keep this recovery partition in case I would like to resell the notebook in future. But I didn't want the partition sitting in the first place on my hard disk. This does not harm. It's just a personal spleen to push such unused stuff to end

So I took a Gentoo Linux minial CD for amd64 architectures (at this time 2005.0 had been the latest release) to delete Windows, move the recovery partition, partition the rest of my hard disk and start the installation... and got a shock. After bootig from the CD, the keyboard did not work. Not a single button.
It took me some time and a lot of googling to find the simple solution. I had to press a button, e.g. the Shift-button, during the boot process. At a later date I learned that the clock was running twice it should, which caused the keyboard ignorance. After solving the clock problem, the keyboard problem was gone, too.

Partitioning

A lot of people inexperienced with Linux are asking "How did you partition your hard disk?" Well, the partitioning is really up to someones personal needs. And parted does a good job, if you want to change your partitioning later. However, rembering my first encounter with Linux, I really understand this question. So here is my decision for those, who are uncertain.

/boot32 MB
swap2 GB
/20 GB
extended partition:
/var10 GB
/stuffthe rest

You may notice, that I do not have a separate home partition. This is, because I do not use my homedir execept for some really personal data like application configurations. Every other stuff is located in project folders beneath /stuff.

USE-Flags

It is also a good idea to collect your favored USE flags and CFLAGS before you start the installation, especially if you are new to Gentoo Linux. You will need them later.

Which USE flags to choose, is really up to your personal needs. Selecting them for the first time could be somewhat confusing. That's no problem. They can be changed later very easily. Since activating or deactivating a special USE flag won't make your notebook unusable, there's no need to make a particular recommendation; just some hints:

Due to the processor architecture of AMD 64-bit systems there is no need for special optimizations like mmx, sse, and so on. So the following USE flags will be ignored:

3dnow, mmx, sse and sse2

CFLAGS

Which CFLAGS to use, is also up to your personal needs. And it is a questions of high experience or time to test different settings or faith. Ask three people, which CFLAGS are the best, and you will get four answers. When unsure, use the recommendations. They are fine for most systems. Myself I did use

CFLAGS="-march=k8 -O3 -pipe"

After some month of using -O3 I am not sure, it has been wise, to use this higher code optimization. The slowest part of the notebook is definitely the harddisk. So smaller binaries and therefore shorter loading time might speed up the daily work much more then faster running binaries. I think, I should give -O2 a try, change the CFLAGS setting and recompile everything.

Basic installation

By the time I installed Gentoo Linux on my Aspire notebook, a stage1 tarball was publically available. I decided to use it because I wanted to build my system as much vom scratch as possibile without doing everything by myself.

At current there is no stage1 tarball anymore. The recommended installation method is using a stage3 tarball, because this way is much more robust. However, this does not mean, the following description is useless for people installing a current release. Stage1 and stage3 installation methods do differ only in bootstrapping the system which is still possible with a stage3 tarball.

The best way to setup Gentoo Linux is following the Handbook. The whole process is very well documented and does not need any additions.

The kernel

By the time, I setup the notebook, gentoo-source has been to only kernel package offered by Getoo Linux with support for AMD64. It is working fine, so I am still using this kernel, using the newest stable version.

Hardware specific installations

Graphics card

The Mobility Radeon X700 cards are supported by the media-video/ati-drivers package. I first tried the avaible stable version, but it did not compile. So I unmasked the newest available version, to get the driver working with the current stable kernel.

This is still a problem. New kernel versions often break ati-drivers. In that case, you should try a newer version of ati-drivers, too, even if it is still masked.

After emerging ati-drivers I simply added the corresponding module fglrx to /etc/modules.autoload.d/kernel-2.6. That's all.

Clock

As noted earlier, the clock was running twice as fast it should. By the time I tried diffent patches and kernel options, but none of them was working really well. Eventually, I decided to use the boot parameters noapic lapic. They had the fewest side effects. I was not able to reboot or power-down the laptop using a command. I had to shutdown the system first and then use the power button. That's a litte price for a well running clock.

With Kernel 2.6.16, this problem is gone. Using this (or a newer) kernel version will run the clock at normal speed without any boot parameter.

Battery

With early versions of 2.6 kernels I had a hard time to get the battery detection working. I tried different patches, additional kernel modules and kernel options, but nothing changed. /proc/acpi/battery/BAT0 was always empty. I also tried to fix the broken DSDT (see below), which removed some annoying error messages during boot, but did not fix the smart battery support.

Only with a newer kernel (don't remember, which one) it worked. And it worked like charme out of the box. The only thing I had to do, was adding the boot parameter ec_burst=1. At a later kernel version I found, this boot parameter isn't neccessary any longer. So I removed it.

ACPI/DSDT

To enable ACPI acting properly with the hardware, it needs a DSDT. This is a description table containing the information and configuration information about the base system. So it is obvious that a broken DSDT will lead to broken hardware support. You won't think, a manufacurer would deliver its laptops with a broken DSDT. But Acer (and others) do. They do not only deliver broken DSDTs, they also do not offer fixes, even if you ask for it. This is really embarrassing.

Since I could not find a fixed DSDT, I had to take the hard tour and tried to fix it myself. I am not really firm with these thing, so the Only thing, I could do was adding smart battery support using sbs-linux and fixing some blatant errors. There are still other issues. I hope someone with better ACPI knowledge will fix them some day.

To use my DSDT I had to enable the custom DSDT options in the kernel, and provide a path to the hex dsdt table that I compiled. If you want to try my compiled version, you could download it here. You have to use it on your own risk, you know.

BIOS update

Updating the BIOS is usually simple. All you need (besides a backup) is a DOS boot disk and the new BIOS of course.

For no special reason in March 2008 I wanted to update the BIOS to the newest version available at Acer's FTP site. A lot of people will say, "if you have no special reason, stay away from doing that." This is a really good advice for those who are doing it the first time — especially because I faced unexpected problems.

Due to the missing floppy you have to use a CD here instead of the boot disk. I decided to use a FreeDOS boot disk image to create the CD and was stopped by the new BIOS. The files are too big to be added to the disk image.

OK, not a real problem. Put the BIOS files on the harddisk and boot from CD. In order to do this, I first had to create a FAT partition by resizing an existing ext3 partion to get some space. But after that I realized that none of the FreeDOS images are working with my notebook. Neither did the full installation CD (version 1.0).

Next try was an old Windows 98 Second Edition boot disk copied to the FAT patition and started via grub's chainloader option. This time I stumbled over the Gentoo bug 211584 (grub fails on hide). I had no luck with the previous ebuild either. Even tried the next version, which was hard-masked by the gentoo maintainers and after re-emerging the buggy version I couldn't even boot anymore (grub failed). Fortunately I realized, that something (probably one of the grub versions) messed up my partition types.

At this point I've been tired of booting from Linux live CDs and installing different grub versions. I searched the web for a Windows live CD and found something similar: The ultimate boot CD. This one actually worked out. I got a running FreeDOS (huh?) from the CD and could finally setup the new BIOS (currently 1.20). Yay. It's pretty much like the old one and without any recognizable change. But it's certainly much better.

Conclusion: Stay away from updating your BIOS if you do not need it and are not able to solve unexpected problems by yourself. ;o)

Wireless networking

USB

Touchpad

Soundcard

CD/DVD Burner

PCMCIA and Card reader

Bluetooth and IrDA

Firewire

S-Video/TV-Out

Various buttons

Miscellaneous

Frambuffer support

Framebuffer support is doing fine. I just activated the corresponding kernel options, recomplied the the kernel and added the boot parameter vga=791 for a comfortable resolution.

X Windows and KDE

to be continued...