Mandrivalinux 2007 x86_64 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

* 19/11/2006 - Initial version

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: http://ati.amd.com/support/drivers/linux64/linux64-firegl.html

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

Acer ACPI source:
http://www.archernar.co.uk/acer_acpi/acer_acpi_main.html

Optional:

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

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 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 in the HOWTO I wrote for Mandriva 2006 I was using the 32-bit version of that distro. In Mandriva 2007 I'm using the 64-bit version.

The Video Drivers

Install kernel-source and libstdc++5 packages using the software installer. Download the ATI drivers and install them. Then run the following command as root to setup X:

aticonfig --initial --input=/etc/X11/xorg.conf

Add the following to the end of /etc/X11/xorg.conf (having the composite extension enabled seems to stop direct rendering working):

Section "DRI"
Group 0
Mode 0666
EndSection

Section "Extensions"
"Composite" "false"
EndSection

Reboot - note that by default it will have loaded the X11 modules which will stop fglrx from loading. Rebooting should fix this problem, if it doesn't remove the drm and radeon modules.

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 Wireless Card

I haven't been able to get the bcm43xx native Linux driver (http://bcm43xx.berlios.de/) working. You have 2 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.

ndiswrapper - opensource, works well but can hardlock the machine occasionally if you bring the interface up and down too many times. Go through the Mandriva drakroam wizard (Mandriva Control Centre->Network and Internet->Wireless Connection. When it asks for the driver extract the x86_64 drivers from the 80211g.zip file (from the Windows Broadcom drivers from the Acer website) and point it at the .inf file. The signal strength meter seems hardcoded to 100% but ifdown/iufp works normally.

Linuxant DriverLoader - payware - you have to pay about $20 US after a 30-day trial period. However it is very solid and stable and is the only one that can actually report the real signal strength. Install driverloader and configure it at http://127.0.0.1:18020. You'll need to extract the x86_64 drivers for the WLAN card from the Windows Broadcom drivers from the Acer website, see above. Note that a simple ifdown/ifup doesn't work - you have to restart the driverloader services.

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

Acer ACPI Module
You need to install the Acer ACPI module so that you can actually enable the Wireless card. 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)cd acer_acpi
make
mkdir /lib/modules/linux/kernel/3rdparty/acer_acpi
cp acer_acpi.ko /lib/modules/linux/kernel/3rdparty/acer_acpi
depmod

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:

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

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.

Fix K3B "unable unable to anonymously mmap" Error

This error occurs every time you try to burn a CD or DVD in k3b. To fix it start K3b and goto Settings->Configure K3b then click Programs->User Parameters, enter the value below for growisofs:

-use-the-force-luke=bufsize:16m

Fix Java Browser Plugins not working

The Java browser plugin is still unavailable for x86_64 (although the JRE itself is) so you have to install the 32-bit JRE from the Sun website and use it with a 32-bit browser. The easiest way is to install the 32-bit version of Opera, install the 32-bit JRE and then follow these steps in Opera: Tools->Preferences then in Advanced->Content select Enable Java and click Java Options. Enter the following path as the Java path: /usr/java/jre1.5.0_06/lib/i386/ Note: Remember to change the version portion of this if you are installing a different version.

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.

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

These are the instructions that worked for Mandriva 2006, however I can't seem to get them working on 2007 x86_64.

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. Download the module from that site and follow these steps to build it (make sure you download it to a directory that doesn't have paths in it, eg. /tmp):

mkdir tifm
cd tifm
tar -xjf tifm-0.6.tar.bz2
make
make install # (as root)

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 is included in kernel-2.6.17 and above. 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 add the following the /etc/modules.preload and reboot (or load it with modprobe):

nsc_ircc

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."

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) 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 out of the box
CPU Frequency Scaling Works with some very minor configuration
Suspend to RAM or Disk Unknown
4-in-1 Card Reader Doesn't Work
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.org www.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