Linux on the Acer Aspire 1692wlmi

This docment describes the Installation of Gentoo Linux on the Acer Aspire 1692wlmi Notebook.

Created by Manuel Feier, april 2006

Preparations / General installation strategy

Before installing anything we check out what hardware we have inside the machine. "lspci" gives detailed information (see files section below). Luckily, most hardware is recognised and supported by the recent linux kernels itself, some things need an additional driver, too.

I recommend a fresh gentoo installation as described in the fantastic gentoo online handbook; use the kernel boot parameters "acpi=off" to avoid a boot freeze caused by acpi-problems (more below). I kept the pre-installed "windows xp home edition" and set up a dual boot system (you never know..), so my partition layout is a little more complicated than a clean, linux only install described in the gentoo manual.

What I got running...

Based on a 2.6.15 Gentoo Kernel, I found the following parts of the machine running:

IDE Controller and drives Working with ICH6 driver, drives recognized and working
LAN Working with kernel driver "tg3"
Wireless LAN Working with the ipw2200 driver, either the driver shipped with the kernel, or a seperate driver module, probably more current)
Update: I recently noticed some not too beatiful irq problems that could be created by the ipw2200 Module. Working on this.
Soundcard Working with intel8x0 Kernel driver
Video Card Working at the optimal resolution 1280x800 (x.org, with ATI proprietary driver), and 1024x768 (Console Vesa FB). If someone knows how to get the console running @ 1280x800, please tell me how.
USB Working optimally with kernel drivers
Firewire Could't test this, probably working (ohci1394)
Infrared Could't test this, probably working
Battery status Working after having acpi fixed in the kernel
Touchpad Working with "SynPS/2 Synaptics TouchPad" driver
Bluetooth Working with kernel driver and "blueZ", Even activation and stoppig by the button on the frontside of the computer work, including the LED going on!
Built-in Modem Not testet yet, should work with slmodem driver from http://freshmeat.net/projects/slmodem/

ACPI Troubles

This machine has some serious problems with proper acpi support. This causes most Linux kernels to hang at boottime. The kernel parameters "pci=noacpi" and "acpi=off" or "noacpi" can be used to disable acpi and apic-support so a normal installation is possible. But with acpi disabled we are missing features that would be quite handy, especially for notebooks: power management and access to hardware information such as system temperature.

Now it gets a little difficult. A "dsdt" is a table that supplies "the information and configuration information about the base system". Unfortunately many of hardware vendors don't seem to stick to the standards and don't deliver "fully functional tables". They work with Windows (who knows why) but not with free operating systems with properly done acpi interfaces (if I got that right). Thats why some hackers take those faulty tables and try to fix them so they run with linux and other operating systems. acpi.sourceforge.net features a database of patched DSDT's that can be browsed and downloaded. I found a working table by browsing for an entry that featured the same bios version (check computer bios to find out what release you have). Note that the ammount of system memory is important too, e.g. a table for a 512M system wouldn't be necessarly the same as one for a 1000M system, so be careful!.

Now, to make things more complicated, the table downloaded (an .asl file) must be compiled first, with the Intel ASL compiler (see reference box). Out comes a .HEX file that should be used by the kernel instead of the original system table. I provide the custom dsdt-file that worked for my machine (1GB, Bios 3a28) but I don't promise it will work on your aspire 1692 wlmi.

In order to use this custom table, some settings must be done in the standard linux kernel configuration (you could also use the .config file provided below):

power management options (ACPI, APM) ---> 
	ACPI ... support  --->
		<*>   AC Adapter
		<*>   Battery
		<*>   Button
		<*>   Video
		< >   Generic Hotkey (EXPERIMENTAL)
		<*>   Fan
		<*>   Processor
		<*>     Thermal Zone
		< >   ASUS/Medion Laptop Extras
		< >   IBM ThinkPad Laptop Extras
		< >   Toshiba Laptop Extras
		[*]   Include Custom DSDT
		(/lib/firmware/3a28.hex) Custom DSDT Table file to include

Having recompiled your kernel in that way, acpi should work properly. On my system it was still necessary to boot with kernel parameter "pci=noacpi" to avoid a system freeze. But all the nice features work.

CPU Management

The Centrino CPU of this notebook supports CPU frequency scaling, and so does linux (of course). The kernel configuration should look like this:

Power management options (ACPI, APM)  --->
	CPU Frequency scaling  --->
		[*] CPU Frequency scaling
		[ ]   Enable CPUfreq debugging
		<*>   CPU frequency translation statistics
		[ ]     CPU frequency translation statistics details
		Default CPUFreq governor (performance)  --->
		---   'performance' governor
		<*>   'powersave' governor
		<*>   'userspace' governor for userspace frequency scaling
		<*>   'ondemand' cpufreq policy governor
		<*>   'conservative' cpufreq governor 
		---   CPUFreq processor drivers
		< >   ACPI Processor P-States driver
		< >   AMD Mobile K6-2/K6-3 PowerNow!
		< >   AMD Mobile Athlon/Duron PowerNow!
		< >   AMD Opteron/Athlon64 PowerNow!
		< >   Cyrix MediaGX/NatSemi Geode Suspend Modulation
		<*>   Intel Enhanced SpeedStep
		[*]     Use ACPI tables to decode valid frequency/voltage pairs
		[*]     Built-in tables for Banias CPUs
		< >   Intel Speedstep on ICH-M chipsets (ioport interface)
		< >   Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
		< >  Intel Pentium 4 clock modulation
		< >   nVidia nForce2 FSB changing
		< >   Transmeta LongRun
		< >   VIA Cyrix III Longhaul
		---   shared options 

The cpufrequtils are needed to get and set the performance settings of the CPU. With gentoo, they can easily be emerged by entering: "emerge cpufrequtils". Then, the program "cpufreq-info" shows detailed information about the current settings, which in the case of this machine look like this:

cpufrequtils 0.4: cpufreq-info (C) Dominik Brodowski 2004
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
  driver: centrino
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 800 MHz - 1.73 GHz
  available frequency steps: 1.73 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
  available cpufreq governors: conservative, ondemand, powersave, userspace, performance
  current policy: frequency should be within 800 MHz and 1.73 GHz.
                  The governor "conservative" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).

You can manually set a different governor or frequency by entering "cpufreq-set -g governor-name" (e.g. "powersave", "ondemand",..). The new cpu speed can be seen in the cpufreq-info output above, and should also be reflected in /proc/cpuinfo (use "cat /proc/cpuinfo" to access).

Now there are daemons like cpufreqd that try to automagically set the best cpu speed for the current situation. Emerge cpufreqd first, then use the configuration file provided here (german!) or below in the files section (the default one that ships with cpufreqd didn't work for me). I suggest adding cpufreqd to default runlevel using "rc-update" so it starts automatically next boot.

Video card configuration / x.org / XGL

The Radeon Mobility X700 worked without problems here. The only issue I still discover is the resolution in framebuffer console mode limited to 1024x768 instead of the maximum screen capability (1280x800). X runs blazingly fast.

You can use the my xorg-configuration below that appears to be working fine here. I use the ATI Video driver (fglrx) that can also be emerged.

I didn't yet set up XGL myself, but the Gentoo based Live CD "kororaa" works flawlessly on this machine. XGL is really impressive, especially on the wide screen of this machine. Check http://gentoo-wiki.com/HOWTO_XGL if you want to install xgl.

Touchpad also works flawlessly with the configuration below. Note that the xorg.conf Option ("XkbLayout" "de_CH") is adjusted to swiss-german, so you may need to disable this option or set the one for your keyboard layout.

Useful Files and Other stuff

Contact

If you have any questions, suggestion, or found any errors or something thats missing feel free to drop me some lines:

mfeier at netsteps.ch