Mandrivalinux 2006 on an Acer Aspire 5022WLMi Howto

Introduction

The Acer Aspire 5022WLMi is a pretty good laptop, it has the AMD Turion 64 bit processor a large hard drive (~100GB) and a 3D card which is actually good enough to play games with. Not to mention its priced well when compared to similar computers from Dell etc. But, of course, what's the point of having a computer if it doesn't run Linux? Luckily with a little bit of setup Linux runs pretty well on this laptop.

Changes

* 9/9/2006 Uploaded Kernel 2.6.17.11 RPMs and SRPMs
* 5/9//2006 Added Function Keys, Flash Card Reader and IRDA information.
* 23/8/2006 Added WPA information
* 9/8/2006 Added section about TV-Out
* 1/7/2006 Added fix for MTRR problems that affect 3D Acceleration
* 1/7/2006 bcm43xx-fwcutter RPMs and instructions for using bcm43xx module
* 28/6/2006 Uploaded Kernel 2.6.17 RPMs and SRPMs
* 15/6/2006 Added link to Mandriva 2006 release notes about suspend to disk/memory
* 12/6/2006 Added info about Linuxant Driverloader
* 12/6/2006 Uploaded kernel 2.6.16.17 RPMs and SRPMS
* 12/6/2006 Fixed problem with kernel-2.6.13.5 RPMs to do with /lib/modules/<version>/build

What doesn't work?

To start with I'll be upfront about what doesn't work or what I haven't tried to get working yet:

The Flash card reader works only for SD and possibly MMC cards.

I've had limited success getting the Function Keys (the ones near the power button) working.

I have no idea if firewire actually works as I have no firewire devices to test it with.

I haven't tried the modem.

Things to Download

Since the wireless card doesn't work out of the box (but I'll show you how to get it to work so don't worry!) you might want to boot into Windows or use another computer to download these things before you start:

The Windows Broadcom Drivers for the Wireless Card: http://support.acer-euro.com/drivers/notebook/as_3020_5020.html

The ATI Propietary Driver Installer for the graphics card: ati-driver-installer-8.26.18-x86 (needed as the latest version as of 18 Aug 2006 doesn't work properly)
https://support.ati.com/ics/support/default.asp?deptID=894&task=knowledge&folderID=27

The Linuxant Driverloader trial version if you want to use that instead of ndiswrapper (see Wireless Section section below): www.linuxant.com

My custom kernel and kernel-source RPMs if you want the battery monitor to work and/or don't want to have to build the acer_acpi kernel module manually:

Kernel 2.6.17 (generally better but WLAN card may not work with ndiswrapper, only with the included bcm43xx opensource driver or DriverLoader, see Wireless Section for details):
kernel-2.6.17.11-1-1.i586.rpm
kernel-source-2.6.17.11-1.i586.rpm
bcm43xx Firmware Cutter (if using the bcm43xx WLAN driver)
-Or-
Kernel 2.6.13.5 (ndiswrapper works properly for me in this one):
kernel-2.6.13.5-10-1.i586.rpm
kernel-source-2.6.13.5-10.i586.rpm

Optional:

Kernel SRPM if you want to modify and rebuild my customised kernels:
kernel-2.6.16.17.11-1-1.src.rpm
kernel-2.6.13.5-10-1.src.rpm bcm43xx Firmware Cutter SRPM

Other Kernel Version RPMs and SRPMs linuxonacer5020.sf.net - Files

Acer ACPI source if you want to build it manually or don't want to use my kernel RPMs:
http://www.archernar.co.uk/acer_acpi/acer_acpi_main.html

If You're New to Linux

During this HOWTO you'll be asked to do various things as root or that you might not now how to do:

To edit a file as root simply go menu->Run Command.. and enter kdesu kwrite and the root password when prompted. You now have a kwrite instance running as root so you can edit any configuration file on the system by going File->Open and browsing to it.

To open the file manager (konqueror) as root do menu->Run Command.. and enter kdesu konqueror and the root password when prompted. Be careful with this as moving/deleting the wrong files or directories can damage your system, follow the instructions here carefully.

To run a command as root open a terminal window and type su - and the root password when prompted. You can use tab completion to make your life easier, eg. If I'd downloaded the ATI installer into my home directory I could run it by typing /home/tim/ati-driver and then pressing tab to complete the file name.

To install software from the repositories first goto http://easyurpmi.zarb.org and setup all the software sources available for your version. Then either use the graphical software installer (menu->Configuration->Packaging->Install Software) or the urpmi command as root to install the package. eg. urpmi powernowd

To install software from individual RPMs (such as my kernel RPM) simply double click on them on the desktop and enter the root password when prompted. You can also do it from the command line as root with rpm -Uvh /home/username/somepackage.rpm (Note: Use -ivh instead of -Uvh for kernel RPMs to make sure they don't replace older kernels, so you can always go back if the new kernel doesn't boot).

Installation

First setup Windows and make the system recovery or backup DVD or whatever that the Acer software prompts you to do. I'm not sure if this is essential when you have some kind of system rescue CD in the box but its better to be safe than sorry. Also, if you haven't just unwrapped the computer and have actually been using it for a while before this make sure you backup your important files to a DVD or external hard drive/flash drive or harddrive MP3 player. You are going to have to do some repartitioning.

I have the Powerpack edition of Mandrivalinux 2006 and the installer program went smoothly. My computer came with two ~45GB partitions, the first containing Windows and the second was a virtually empty FAT32 partition. I just reformatted the second for Linux but you can choose whatever combination you want. The Mandriva installer can safely resize FAT32 and NTFS partitions as well as the Linux types, but as always make sure you've backed up anything irreplacable before doing any repartitioning.

Note that I'm using the 32-bit version of Mandriva, I thought it'd be easier to get stuff working (browser plugins, WLAN card etc.).

The Video Drivers

I managed to get the video card working during the installation by selecting the ATI proprietary drivers (I have the Powerpack edition) and it booted up perfectly in GUI mode the first time. Unfortunately after I'd updated the computer with all the Mandriva updates, including the kernel updates, the thing failed to start X. I downloaded and installed the ATI drivers from their website (get the installer program, not just the driver by itself because it doesn't seem to work) and I was soon back in business, with 3D acceleration working as well as it does with ATI on Linux (after applying the MTRR fix - see below) ;(. Remember to install the kernel-source package before trying to install the ATI drivers otherwise it'll appear to work but won't have built the kernel module, you can check this by looking in /usr/share/fglrx/fglrx-install.log after its installed.

Keep the installer program on hand as you may need to run through it again if you update or change the kernel.

Broken MTRR Problem (3D Acceleration doesn't work)

It seems Acer's BIOS doesn't properly report the amount of memory in the machine to the OS. This causes the Kernel to have the wrong MTRR information and 3D Acceleration to not work, even if the ATI drivers are installed properly. To fix this add the following to /etc/rc.local:

# Broken /proc/mtrr fix so that graphics card works
echo "disable=0" >| /proc/mtrr
echo "disable=0" >| /proc/mtrr
echo "base=0x00000000 size=0x40000000 type=write-back" >| /proc/mtrr

Note that this is for machines with 1GB of RAM. If you have a different amount replace the number after size= with the relevant one from this list:

Now reboot the machine and you should have 3D Acceleration working, test it by running glxgears - the number should be about 4,000 FPS. Be careful if you run these commands manually - you should be in runlevel 3 and even then it can cause strange behaviour until a reboot is done. Carlos Corbacho: "For the brave of heart, the Mobility X700 is supported by the open source r300 drivers using the latest X.Org 7.1 + Mesa 6.5 + latest version of xorg-driver-xf86-video-ati"

The Double-Time Clock Problem

So you're booted up into your nice shiny new Linux desktop, but you might notice some strange effects (dialogs dissapear without you clicking them for eg.) and annoyingly the clock is out of control and won't keep the time. It turns out there's some problem with the clock and Linux but its easily fixed luckily. Just add the kernel boot option 'noapictimer' (no quotes) to the append= line of each of the entries in your /etc/lilo.conf, or do the equivalent in grub.conf if you use that (lilo is the default on Mandriva). Once you reboot the computer will be back to normal.

The Wireless Card

You now have 3 options for getting this card to work:

Whatever you choose you'll need the Windows drivers for this card from the Acer website (http://support.acer-euro.com/drivers/notebook/as_3020_5020.html), if that link is broken just go in through the main page of the Acer website, click the link for drivers or support and search for the 5020 series laptops.

Linuxant DriverLoader Although ndiswrapper worked fine on Kernel 2.6.13.5 and before I couldn't get it working on later kernels. I eventually gave up and tried DriverLoader which is a proprietary payware program that basically does the same thing as ndiswrapper - ie. allow you to use the Windows drivers for your WLAN card under Linux. I'm not trying to advertise a product but I think it works a lot better than ndiswrapper, and it lets me use kernels beyond 2.6.13. Its up to you what you decide to use. To install it see the Things to Download section. Once its installed and working you can use the web interface at http://127.0.0.1:18020/ to configure it by loading the bcmwl5.inf and bcmwl5.sys files you'll find in the Acer Windows drivers zip file. To get WPA working you should go to the Linuxant website and install their wpa_supplicant version. Then run:

dldr_wpa_passphrase yournetwork password > /etc/driverloader/dldr_wpa_supplicant.conf

Add the following to /etc/rc.local to get it to connect on bootup. You can also manually run these commands as root to get it to start:

echo "enabled: 1" > /proc/acpi/acer/wireless
ifdown wlan0 daemon
service driverloader reload
dldr_wpa_supplicant -B -c /etc/driverloader/dldr_wpa_supplicant.conf -i wlan0 daemon
ifup wlan0 daemon

Now follow the rest of the instructions below about enabling the Acer-ACPI module.

ndiswrapper First goto http://easyurpmi.zarb.org and setup your software sources. Now use the Mandriva software installer (menu->System->Configuration->Packing->Install Software or use the urpmi command as root) to install ndiswrapper.

Download and extract the Acer Windows drivers zip file somewhere convient (eg. Your home directory) and then run (as root):

# ndiswrapper -i /home/yourusername/80211g/bcmwl5.inf
# modprobe ndiswrapper

And add the following to /etc/modprobe.preload.

ndiswrapper

bcm43xx Kernel Driver Thanks to the hard work of the people at http://bcm43xx.berlios.de a native Linux driver was included in Kernel 2.6.17 and later for the type of WLAN chipset in this laptop. To get it working download and install my Kernel RPMs for a 2.6.17 (or later) Kernel and the bcm43xx-fwcutter RPM (see Things to Download above). Extract out the Windows Acer drivers and import the firmware with the following command as root:

bcm43xx-fwcutter -w /lib/hotplug/firmware/ /home/yourusername/80211g/bcmwl5.sys

Now add the following to /etc/rc.local and reboot:

echo "enabled: 1" > /proc/acpi/acer/wireless
rmmod bcm43xx
modprobe bcm43xx

Acer ACPI Module
Now here's where you can choose to take an easy option or a slightly harder one. You need to install the Acer ACPI module so that you can actually enable the Wireless card. The easy option is to install one of the custom Kernel RPMs I've made to fix the battery monitoring problem (make sure to read the instructions below) which already includes the Acer ACPI module. If you do this you can skip the next section about installing it manually and go on to the bit about making it work automatically on startup.

To enable the WLAN card automatically on startup add the following to /etc/modprobe.prelod:

acer_acpi

Then add the following line to /etc/rc.local (if its not already there) to enable the WLAN card on startup:

echo "enabled: 1" > /proc/acpi/acer/wireless

Now reboot (into the new Kernel if that's what you installed) and the Wireless card should work using the Wireless config applet in the Mandriva Control Centre->Networking.

Manual Install of Acer ACPI module (Optional)

If you want to install it manually download Acer ACPI (see Things to Download above) and extract the files somewhere convenient (but make sure it has no spaces, eg. /home/username/acer_acpi is fine.

1) Install the kernel-source-2.6 RPM using the Mandriva software installer.

2) Edit the Makefile in the acer_acpi directory to change KERNELSRC=/usr/src/linux/

3)

cd acer_acpi
mkdir /lib/modules/linux/kernel/3rdparty/acer_acpi
cp acer_acpi.ko /lib/modules/linux/kernel/3rdparty/acer_acpi
depmod

Now follow the instructions above about enabling the module to be loaded on start

The Battery Monitor

Now here's where things get interesting. It turns out that due to Acer's buggy, non-standards compliant, proprietary ACPI implementation the battery monitor will not work without some major pain, or an upgrade to kernel 2.6.13 or above, which is more tolerant of the shoddy work of laptop manufacturers. It really shows how laptops are made for Windows only, industry hardware standards be damned, and even then they don't work at all on Windows except with a shitload of proprietary drivers (see Acer's website's driver section for the 5020 series). </rant>

Luckily for you I've made the process easy by building custom Kernel RPMs which also include the Acer ACPI driver (for the WLAN card, see above) and most of the extra modules that Mandriva includes in their kernel RPMs, such as ndiswrapper. Download it (see Things to Download above), install it and then add the following lines to /etc/lilo.conf (replace '2.6.13.5' with '2.6.16.17' or whatever RPM you downloaded):

image=/boot/vmlinuz-2.6.13.5
label="2.6.13"
root=/dev/hda5
initrd=/boot/initrd-2.6.13.5.img
append="resume=/dev/hda6 splash=silent ec_burst=1 noapictimer pci=assign-busses noapic acpi_irq_balance"
vga=791

Note that if you are running a Kernel above 2.6.16 you don't need the "noapictimer" option and for 2.6.17 and above you don't need "ec_burst=1". Now run the command 'lilo' (no quotes) as root and reboot the machine into the new kernel. You should now see the battery monitor in the taskbar and you can access the battery info through /proc/acpi/battery/.

The alternative, painful way is described here sourceforge.net/projects/sbs-linux, see the readme file in particular for the full description of the problem. More info and HOWTOs of doing it this way can be found by googling for phrases like 'smart battery + Linux'.

No xv (X Video) output (kaffeine (xine) and mplayer crash when trying to play a file)

If you can't get 3D Acceleration to work (see above about fixing the MTRR file) but you've installed the ATI drivers you won't have the OpenGL overlay for X Video working properly, this will cause video players to crash or give strange errors. To stop this happening enable the normal X Video (xv) extension by adding the following lines to /etc/X11/xorg.conf in the device section with identifier "ATI Graphics Adapter 0":

# === Video Overlay for the Xv extension ===
Option "VideoOverlay" "on"
# === OpenGL Overlay ===
# Note: When OpenGL Overlay is enabled, Video Overlay
# will be disabled automatically
Option "OpenGLOverlay" "off"

Now simply restart X by logging out and back in again and you should be able to play videos.

Remember you only have to do the above if you can't get 3D Acceleration working.
Note: Remember when using Mandriva to install the xine-win32, libdvdcss2, win32-codecs and real-codecs packages using the Mandriva software installer (if it can't find them go to http://easyurpmi.zarb.org and setup your sources) so you can play any type of video file as well as movie DVDs.

CPU Frequency Scaling

There are two programs available in the Mandriva repositories to do this, powernowd and cpudyn, I happened to choose powernowd. To get it working simply install the powernowd package with the Mandriva installer (or urpmi command). It will start automatically the next time you reboot your computer or you can start it now with the service command or the System->Service control panel in the Mandriva Control Centre. If you want to change the options from the defaults (which are fine AFAICT) edit the file /etc/sysconfig/powernowd. Note that the Frequency Scaling in Kernel 2.6.13 is quite buggy, but seems to work properly in 2.6.16 and above.

TV-Out

Assuming you have the ATI Drivers installed and working getting TV-Out working should be a simple matter of adding the following lines to the device section in your /etc/X11/xorg.conf:

Option "TVFormat" "PAL-I"
Option "TVStandard" "SCART"
Option "ForceMonitors" "tv"

You then need to logout and log back in to restart the X Server. I also found that if you are already logged in when you plug the laptop into the TV you need to logout and log back in again to get it to start outputting to the TV. Also I need to change my resolution down to 1024x768 to get the screen to fit on my TV properly, YMMV.

PCMCIA Cards

Carlos Corbacho reports that until Kernel 2.6.19 comes out you need to add the following to the append line in your lilo.conf, run 'lilo' as root and reboot:

pci=assign-busses

Flash Card Reader

Using TIFM
Thanks to Carlos Corbacho for letting me know about the tifm kernel module project, although I believe it only works for SD cards currently - see http://openfacts.berlios.de/index-en.phtml?title=TI_FlashMedia_xx12/xx21_driver. You will need to be using my 2.6.17.11 Kernel or above and you will need to add the following to /etc/modules.preload (afterwards either reboot or load the modules manually with modprobe):

tifm_core
tifm_7xx1
tifm_sd

Once you put a card in it should appear as something like /dev/mmcblk0p1 but I don't think it will auto mount for you so the following should do the trick when run as root:

mkdir /mnt/mmc
mount /dev/mmcblk0p1 /mnt/mmc

Using sdhci
Chi-Thanh Christopher Nguyen emailed me with these instructions for the sdhci module that i've included in my kernel RPMs starting from 2.6.17.11. To get it working do:

setpci -s 04:06.3 4c.b=02
# Optionally enable DMA with
setpci -s 04:06.4 04.b=06 # SDHCI Mem+ BusMaster+
setpci -s 04:06.4 88.b=01 # SDHCI DMA enable

Once you put a card in it should appear as something like /dev/mmcblk0p1 but I don't think it will auto mount for you so the following should do the trick when run as root:

mkdir /mnt/mmc
mount /dev/mmcblk0p1 /mnt/mmc

Function Keys

Chi-Thanh Christopher Nguyen emails "the function keys can be made to work if you specify the keyboard model as acer_tm_800 (or select the Acer TravelMate from the KDE control center's regional/keyboard layout options)". For me this got the Mail key to work.

Carlos Corbacho emails "These are a pain... you basically have to assign keycodes to them, then change the configuration files for X and keyboards so that the new keycodes do something meaningful. Suffice to say, it can be made to work :) (If I play around with KMail, I can also use acer_acpi to get the Mail LED to flash when I get new mail)."

IrDA (Infra-Red)

To get this working install the irda-utils package and my custom Kernel RPM, at least 2.6.17.11 which has the NSC_FIR module build in. Chi-Thanh Christopher Nguyen emailed me these instructions for the Infra-Red card:
"To get nsc-ircc to work, you must first prevent the serial driver from hogging the irda port. So either disable 8250/16550 support in the kernel config or add "/dev/ttyS1 uart none" to /etc/serial.conf.

To verify whether it worked, start the discovery of irda devices with "irattach irda0 -s" and watch the output of "irdadump" while placing irda devices in front of the sensor."

Suspend/Resume

Carlos Corbacho emailed me these instructions:
"It does actually work... I spent far too long banging my head against walls to fix this, but it's reasonably simple. Add the following to the append line (in your /etc/lilo.conf and run 'lilo' as root):

noapic acpi_irq_balance

("acpi_irq_balance" is recommended as it stops too many devices from all trying to share IRQ 11). Obviously, this also assumes that the devices you have plugged up all have power management enabled drivers." Note that the Mandriva 2006 Release Notes state that suspend has been disabled by default since it is still inherently unstable.

Sound Problems with some Applications

The sound card on this laptop only has an ALSA driver. This shouldn't be a problem as ALSA is the new sound system, supports multiple applications accessing the sound card at the same time and replaces the semi-deprecated OSS. Unfortunately many apps (Skype, Xlite softphone, possibly Firefox with the FlashPlayer) still seem stuck on the bad old days of OSS. If you install aoss with the Mandriva install program you might have some luck running these programs as:
aoss program_name
(This issue is not specific to this laptop but probably to any Linux computer running newer sound hardware for which there's no OSS driver).

lspci Output

00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 01)
00:02.0 PCI bridge: ATI Technologies Inc RS480 PCI-X Root Port
00:06.0 PCI bridge: ATI Technologies Inc: Unknown device 5a38
00:07.0 PCI bridge: ATI Technologies Inc: Unknown device 5a39
00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller
00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 11)
00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI
00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge
00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge
00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)
00:14.6 Modem: ATI Technologies Inc ATI SB400 - AC'97 Modem Controller (rev 02)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE)
04:05.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
04:06.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
04:06.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller
04:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
04:06.4 Class 0805: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller
04:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)

Summary

USB Works out of the box
Firewire Unknown
CD/DVD Burner Works out of the box
CPU/RAM Works out of the box
Hard Drive Works out of the box
Touchpad and Keyboard Works out of the box
Sound Card and Microphone Works out of the box
Function Keys Works with some configuration
Video Card Works during install but requires installation of ATI drivers post install, some 3D games are not stable with the current drivers.
WLAN Card Works with some configuration
Ethernet Card Works out of the box
Battery Monitor Works with some configuration
CPU Frequency Scaling Works with some very minor configuration
Suspend to RAM or Disk Unknown
4-in-1 Card Reader Works with some configuration (but only for SD cards)
Modem Unknown
TV Out Works with some configuration
IrDA ReaderWorks with some configuration

Credits

Thanks to all the people who have posted HOWTO guides like this one to sites like tuxmobil.org and linux-laptops.net in the past. Without them I probably wouldn't even have bought this laptop.
Particular thanks to Grzegorz Oledzki who's HOWTO guide (www.aspirelinux.prv.pl) was very helpful, parts of this guide are directly based on the info from there.
Thanks to Chi-Thanh Christopher Nguyen for his tips on IRDA, shdci for the Flash Card Reader and the Function keys.
Thanks to Carlos Corbacho for his tips on the Card Reader with tifm, Function Keys, Wireless, Boot Options, PCMCIA and other things, see also http://slackwiki.org/Acer_Aspire_502x_WLMi

Contact and Further Help

Any info on things that I haven't gotten working or mistakes or suggested improvements are very welcome, my email is tkedwards at fastmail dot com dot au.
If you've gone through the HOWTO and something didn't work for you I generally don't do tech support (its my day job ;)). So don't be insulted if I don't reply to “help I can't get my wifi card to connect” questions. You'd be better off posting tech support questions to sites like www.linuxquestions.orgwww.linuxforums.org or some of the many USENET newsgroups dealing with Linux (if you don't know how to use USENET just goto Google Groups – its probably the most user-friendly way to access USENET).

For other laptop HOWTOs see Tuxmobil

SourceForge.net