Linux auf dem Acer TravelMate 291LMi

Übersicht

Front des TM 291LMi

CPU: Intel Pentium M 1.4GHz (Centrino)
Bios: PhoenixBIOS 4.00.0 (System BIOS Version 1.10.00)
Grafikkarte: ATI Radeon 9600 Mobility
Festplatte: Toshiba MK6021GAS mit 55.9GB, (60'011'642'880 Bytes)
RAM: 512 MB SO-DIMM 200pin (2x256MB), DDR, 333MHz, CLK 2.5, PC2700
Netzwerkkarte: RTL-8139/8139C/8139C+ (rev 10)
Wireless LAN: Intel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)
Modem: Intel Corp. 82801DB (ICH4) AC'97 Modem Controller (rev 03)
Soundkarte: Intel Corp. 82801DB (ICH4) AC'97 Audio Controller (rev 03)
CD-Laufwerk: DVD(+-)-RW und CD-RW "HL-DT-ST DVD-RW GWA-4040N 1.02"
IrDA: Ja
Akku: 4Ah Li-Ion
Schnittstellen:
  • An/Aus-Schalter für WLan
  • Kopfhörereausgang
  • Mikrofoneingang
  • IEEE 1394 (Firewire), 4pol.
  • TV Out
  • RJ-45 Netzwerk
  • RJ-11 Modem
  • 3 x USB
  • Ext. Monitor
  • D-Sub 25Pin Female, Parallelport
  • Strom

Bilder der Schnittstellen

Laptop von Hinten:
Schnittstellen des TM 291LMi

Allgemeines

Hier die Ausgabe von lspci:
acer [~]: lspci
0000:00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 21)
0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 21)
0000:00:1d.0 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #1 (rev 03)
0000:00:1d.1 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #2 (rev 03)
0000:00:1d.2 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #3 (rev 03)
0000:00:1d.7 USB Controller: Intel Corp. 82801DB (ICH4) USB2 EHCI Controller (rev 03)
0000:00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 83)
0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 03)
0000:00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller (rev 03)
0000:00:1f.3 SMBus: Intel Corp. 82801DB/DBM (ICH4) SMBus Controller (rev 03)
0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB (ICH4) AC'97 Audio Controller (rev 03)
0000:00:1f.6 Modem: Intel Corp. 82801DB (ICH4) AC'97 Modem Controller (rev 03)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]
0000:02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)
0000:02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:02:02.0 Network controller: Intel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)
0000:02:03.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller (rev 01)
acer [~]:

CPU

Dank der Centrino-CPU habe ich mit meinem Laptop gute 3,5 bis 4 Stunden Akkulaufzeit! Und das ohne Throttling zu aktivieren (was aber möglich wäre). Um den Centrino so gut wie möglich auszunutzen habe ich in meiner Kernel die "Speedstep" Funktion aktiviert. Diese ist zu finden unter
Power management options (ACPI, APM)  --->
	CPU Frequency scaling  --->
		<*> Intel Enhanced SpeedStep
Danke an Stefan Rampp, der mich darauf hingewiesen hat, dass als CPU-Typ natürlich "Pentium M" angewählt werden muss (nicht Pentium-4, welches für den Pentium4-M zu verwenden wäre. Schönen Gruß an Intel für die aussagekräftigen Produktbezeichnungen.)

BIOS

Mein Phoenix BIOS zeigt folgende Daten an (die Sternchen habe ich zum unkenntlich machen von eventuell persönlichen Daten verwendet):
Product Name       = TravelMate 290
Manufacturer Name  = Acer
System BIOS Version= TM290_V1.10.00

Serial Number = LXT4405093************
Asset Tag     =

UUID = *******************************
Hierbei entsprechen die angezeigten ersten Stellen der "Serial Number" (LXT 4405 093) der exakten Identifikation des Notebooks (LX.T4405.093). Diese sind auf der Acer-Webseite einzusehen. Da die URL etwas komisch wirkt und möglicherweise bald schon nicht mehr funktionieren könnte, hier das relevante Zitat:
TravelMate 291LMi Intel® Centrino™ Mobiltechnologie mit Intel® Pentium® M 1.4GHz Prozessor, Microsoft® Windows® XP Home Edition, Intel® 855GM Chipsatz - Intel® PRO/Wireless 2100, 15.0" XGA TFT Display, 60GB HDD, 512MB (2*256) DDR, ATI® Mobility Radeon® 9700 mit 64MB VRAM, 56Kbps Modem, 10/100 LAN Adapter, DVD-Dual, Li-Ion Batterie LX.T4405.093

Grafikkarte

Um die proprietären Treiber zu benutzen, müssen diese zunächst von ATI heruntergeladen werden. Drivers & Software, Linux, Graphic Driver, Radeon 9600 Series, Go. Achtung: Hier nicht die "Mobility" Serie anwählen, da man dann gleich auf eine Seite geschickt wird, die einem mitteilt, der Notebookhersteller wäre verantwortlich. Die "normalen" Treiber gehen allerdings auch einwandfrei! Nun denjenigen Treiber herunterladen, der der XFree-Version entspricht (bei mir war das XFree 4.3 und dementsprechend der Treiber vom 19.8.2004 in der Version 3.11.1). Da ich das RPM nicht benutzen kann (setze ja Gentoo ein) und ich RPMs im allgemeinen auch nicht mag, habe ich zunächst mit rpm2targz (herunterzuladen hier) ein .tar.gz-Archiv daraus gemacht. Dann habe ich alles in ein Verzeichnis entpackt. Von Interesse waren für mich allerdings nur zwei Verzeichnisse: lib/modules/fglrx, welches ich als root auch nach /lib/modules/fglrx kopiert habe und usr/X11R6, welches ich nach /usr/X11R6 kopiert habe. Das ganze kann man folgendermaßen bewerkstelligen:
Hier sieht man die heruntergeladene Datei (das alles bezieht sich noch auf die ältere Treiberversion 3.9.0, allerdings ist der Vorgang mit 3.11.1 identisch - nur die Namen sind halt etwas anders):
acer [~/ATI]: ls
insgesamt 4,2M
-rw-r--r--  1 root root 4,1M   25.07.2004 17:28:45 fglrx-4.3.0-3.9.0.i386.rpm
RPM zu .tar.gz umwandeln:
acer [~/ATI]: rpm2targz fglrx-4.3.0-3.9.0.i386.rpm
found gzip magic bytes
  trying to decompress with gzip...  OK
Entkomprimieren:
acer [~/ATI]: tar xfvz fglrx-4.3.0-3.9.0.i386.tar.gz
./
./lib/
./lib/modules/
./lib/modules/fglrx/
./lib/modules/fglrx/build_mod/
./lib/modules/fglrx/build_mod/2.6.x/
./lib/modules/fglrx/build_mod/2.6.x/Makefile
./lib/modules/fglrx/build_mod/agp.h
./lib/modules/fglrx/build_mod/agp3.c
./lib/modules/fglrx/build_mod/agp_backend.h
./lib/modules/fglrx/build_mod/agpgart.h
./lib/modules/fglrx/build_mod/agpgart_be.c
./lib/modules/fglrx/build_mod/firegl_public.c
./lib/modules/fglrx/build_mod/firegl_public.h
./lib/modules/fglrx/build_mod/i7505-agp.c
./lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC2
./lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC3
./lib/modules/fglrx/build_mod/make.sh
./lib/modules/fglrx/build_mod/nvidia-agp.c
./lib/modules/fglrx/fglrx.2.4.18-17.7.x.o
./lib/modules/fglrx/fglrx.2.4.18-17.8.0.o
./lib/modules/fglrx/fglrx.2.4.20-28.8.o
./lib/modules/fglrx/fglrx.2.4.20-28.8bigmem.o
./lib/modules/fglrx/fglrx.2.4.20-28.8smp.o
./lib/modules/fglrx/fglrx.2.4.20-28.9.o
./lib/modules/fglrx/fglrx.2.4.20-28.9bigmem.o
./lib/modules/fglrx/fglrx.2.4.20-28.9smp.o
./lib/modules/fglrx/fglrx.2.4.20-8.o
./lib/modules/fglrx/fglrx.2.4.20-8bigmem.o
./lib/modules/fglrx/fglrx.2.4.20-8smp.o
./lib/modules/fglrx/make_install.sh
./opt/
./opt/kde3/
./opt/kde3/share/
./opt/kde3/share/applnk/
./opt/kde3/share/applnk/fireglcontrol_kde3.desktop
./usr/
./usr/X11R6/
./usr/X11R6/bin/
./usr/X11R6/bin/fgl_glxgears
./usr/X11R6/bin/fglrx_xgamma
./usr/X11R6/bin/fglrxconfig
./usr/X11R6/bin/fglrxinfo
./usr/X11R6/bin/fireglcontrol.qt2.gcc2.96.bz2
./usr/X11R6/bin/fireglcontrol.qt3.gcc3.2.bz2
./usr/X11R6/bin/fireglcontrol.qtstatic.gcc2.96.bz2
./usr/X11R6/include/
./usr/X11R6/include/X11/
./usr/X11R6/include/X11/extensions/
./usr/X11R6/include/X11/extensions/fglrx_gamma.h
./usr/X11R6/lib/
./usr/X11R6/lib/libGL.so.1.2
./usr/X11R6/lib/libfglrx_gamma.a
./usr/X11R6/lib/libfglrx_gamma.so.1.0
./usr/X11R6/lib/modules/
./usr/X11R6/lib/modules/dri/
./usr/X11R6/lib/modules/dri/fglrx_dri.so
./usr/X11R6/lib/modules/drivers/
./usr/X11R6/lib/modules/drivers/fglrx_drv.o
./usr/X11R6/lib/modules/linux/
./usr/X11R6/lib/modules/linux/libfglrxdrm.a
./usr/include/
./usr/include/GL/
./usr/include/GL/glxATI.h
./usr/share/
./usr/share/applnk/
./usr/share/applnk/fireglcontrol.kdelnk
./usr/share/doc/
./usr/share/doc/fglrx/
./usr/share/doc/fglrx/LICENSE.GPL
./usr/share/doc/fglrx/LICENSE.QPL
./usr/share/doc/fglrx/driverfaq.html
./usr/share/doc/fglrx/index.html
./usr/share/doc/fglrx/linux-agpgart.html
./usr/share/doc/fglrx/linux-glconflict.html
./usr/share/doc/fglrx/linux-modulebuild.html
./usr/share/doc/fglrx/linux-monitormodes.html
./usr/share/doc/fglrx/linux-nocontrolpanel.html
./usr/share/doc/fglrx/linux-nokernelsource.html
./usr/share/doc/fglrx/linux-taintedwarning.html
./usr/share/doc/fglrx/linux-uninstall.html
./usr/share/doc/fglrx/linux-unres-symbols.html
./usr/share/doc/fglrx/linuxfaq.html
./usr/share/doc/fglrx/tips-linux.html
./usr/share/gnome/
./usr/share/gnome/apps/
./usr/share/gnome/apps/fireglcontrol.desktop
./usr/share/icons/
./usr/share/icons/ati.xpm
./usr/share/pixmaps/
./usr/share/pixmaps/ati.xpm
./usr/src/
./usr/src/ATI/
./usr/src/ATI/fglrx_panel_sources.tgz
./usr/src/ATI/fglrx_sample_source.tgz
Nun die wichtigen Dateien in die entsprechenden Verzeichnisse kopieren:
acer [~/ATI]: cp -R usr/X11R6/ /usr/
acer [~/ATI]: cp -R lib/modules/fglrx/ /lib/modules/
Dannach muss das Kernelmodul kompiliert werden. Zunächst die Rechte richtig setzen:
acer [~/ATI]: cd /lib/modules/fglrx
acer [/lib/modules/fglrx]: chmod +x make_install.sh
acer [/lib/modules/fglrx]: cd build_mod/
acer [/lib/modules/fglrx/build_mod]: chmod +x make.sh
Dann kompilieren:
acer [/lib/modules/fglrx/build_mod]: ./make.sh
ATI module generator V 2.0
==========================
initializing...
cleaning...
patching 'highmem.h'...
skipping patch for 'drmP.h', not needed
skipping patch for 'drm_os_linux.h', not needed
assuming new VMA API since we do have kernel 2.6.x...
doing Makefile based build for kernel 2.6.x and higher
make -C /lib/modules/2.6.6/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.6'
  Building modules, stage 2.
  MODPOST
make[1]: Leaving directory `/usr/src/linux-2.6.6'
build succeeded with return value 0
duplicating results into driver repository...
done.
==============================
You must change your working directory to /lib/modules/fglrx
and then call ./make_install.sh in order to install the built module.
==============================
Dann installieren:
acer [/lib/modules/fglrx/build_mod]: cd ..
acer [/lib/modules/fglrx]: ./make_install.sh
- creating symlink
- recreating module dependency list
- trying a sample load of the kernel module
done.
acer [/lib/modules/fglrx]:
Nun muss man nurn noch das Modul laden (modprobe fglrx) und die XF86Config entsprechend anpassen, die notwendigen Änderungen sind in meiner XF86Config ersichtlich, die es weiter unten zum Download gibt.
Zur Performance unter glxgears (ich benutze den Gnome 2.6):
X-Server Treiberversion Kernelversion Frames pro Sekunde
XFree 4.3.0-r6 3.9.0 2.6.6 1913,600
XFree 4.3.0-r6 3.11.1 2.6.6 1291,000
XFree 4.3.0-r6 3.11.1 2.6.8.1 1358,800
X.Org 6.7.0-r1 3.11.1 2.6.8.1 1358,800
X.Org 6.7.0-r1 3.14.1 2.6.9 1330,000
X.Org 6.7.0-r2 3.14.1 2.6.9 1318,600
mit glxgears bekomme ich also mit den neueren 3.11.1er Treiber im Schnitt 550 Frames pro Sekunde weniger als mit dem älteren 3.9.0er. Allerdings habe ich von einem Freund mitgeteilt bekommen, dass glxgears zwar langsamer sein soll, Spiele dafür allerdings schneller laufen. Ich werde das demnächst mal mit UT2004 testen.

Ich habe weiterhin auf X.Org umgestellt, da XFree seit der neusten Version unter einer proprietären Lizenz vertrieben wird. Obwohl ich schon etwas Bammel hatte - und vorallem bedenken, ob die ATI-Treiber auch mit X.Org funktionieren würden - hat sich herausgestellt, dass alles einwandfrei und reibungslos funktioniert. Ich finde sogar die Schriften, die in Programmen verwendet werden, nun um einiges hübscher, wenngleich der Unterschied nur bei wirklich genauer Betrachtung auffällt. Außerdem habe ich das gute Gefühl, den Geldmachern, die XFree jetzt komerziell ausschlachten wollen, ein Schnippchen geschlagen zu haben.

TV-Out

Ich habe (endlich!) den TV-Out zum Laufen gebracht! Im Folgenden wird vorausgesetzt, dass man schon die oben angegebenen Treiber installiert hat. Dann beötigt man noch das Programm "atitvout" von Lennart Poettering, dass man sich hier herunterladen kann. Wichtig: der Fernseher muss schon vor dem einschalten des Laptops fertig verkabelt und angeschaltet sein, sonst erkennt der Treiber den Fernseher nicht, und man hat ein "laufendes" (nicht synchronisiertes Bild)! Bitte, glaubt es mir, hat mich auch viele Stunden gekostet, das herauszufinden. Wenn man den Fernseher einmal angeschlossen hat, das Programm schon installiert ist und auch die XF86Config-4 wie unten angegeben eingestellt ist, kann es losgehen!
Erster Test (als root):
acer [~]: atitvout detect
CRT is attached.
TV is attached via S-Video.
Auf TV-Modus wechseln:
acer [~]: atitvout -f t
Forcing Rage Mobility/Rage 3D Pro LT mode
Auf LCD-Mous zurückwechseln:
acer [~]: atitvout -f l
Forcing Rage Mobility/Rage 3D Pro LT mode
Wichtig noch zu wissen, dass ich im "Clone"-Modus (LCD und Fernseher aktiv) nie ein gescheites Bild zusammengebracht habe (auch immer unsynchronisiert). So allerdings geht es einwandfrei!

Festplatte

Der übliche Schwindel, 55.9 GB (=Gigabyte) werden als 60.0 verkauft, indem der Hersteller in einer Fussnote einfach 1GB als 10^9 Bytes, statt 2^30 Bytes definiert. Sie ist aber wirklich sehr schön schnell, leise und über die Größe kann ich mich auch nicht beklagen. DMA bekommt man mit Hilfe des "Intel PIIXn chipsets support" und "VIA82CXXX chipset support" (beides notwendig). Datenblatt von Toshiba.
acer [~]: hdparm -i /dev/hda
 
/dev/hda:
 
 Model=TOSHIBA MK6021GAS, FwRev=GA024A, SerialNo=14661140A
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=46
 BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=117210240
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=yes: unknown setting WriteCache=enabled
 Drive conforms to: device does not report version:
 
 * signifies the current active mode
 
acer [~]:

RAM

Es sind 2x256 MB RAM installiert, der Laptop ist also "voll". Deswegen habe ich hier (vorläufig) keine Anleitung, wie neuer RAM installiert werden kann.

Netzwerkkarte

Eine ganz normale Realtek 8139, die mit dem 8139too-Treiber einwandfrei funktioniert.

CD/DVD-Laufwerk

Das Brennen von CDs und DVDs funktioniert einwandfrei mit cdrecord bzw. dvdrecord. Auch das Abspielen von DVDs bereitet mit dem mplayer absolut keine Probleme.

IrDA

Um IrDA zu verwenden, müssen lediglich die notwendigen irda-Module geladen werden. Dann funktioniert auch schon irattach.

PCMCIA/USB

PCMCIA geht mit dem Yenta-Kompatiblen Cardbridge Support wunderbar, für USB werden die UHCI/EHCI Treiber benötigt.

WLan

Ich habe das integrierte Wireless LAN einwandfrei zum Laufen bekommen, allerdings ist das nicht ganz einfach. Zunächst einmal braucht man den "Acer Hotkey Driver" (acerhk), den Olaf Tauber entwickelt hat. Man bekommt ihn hier. Herunterladen, entpacken, untarren. Dann einfach ein "make" und ein "make install" als root, schon sollte der Treiber installiert sein. Nun kann man ihn laden, mit dem Kommando
modprobe acerhk force_series=290 usedritek=1 verbose=1
Um nun das WLan zu aktivieren, tippt man ein
echo 1 > /proc/driver/acerhk/wirelessled
Jetzt sollte auch der Software Killswitch, der dafür da ist, das WLan an- und auszuschalten (an der linken Gehäuseseite angebracht) funktionieren. Die dritte LED von links leuchtet orange, wenn das WLan aktiviert ist (das ist dieselbe LED, die beim Booten kurz blau aufflackert, eine zweifarben-LED).
Wenn das WLan aktiviert ist, muss man noch den Treiber für den Centrino installieren. Dazu geht man zunächst auf ipw2100.sourceforge.net und lädt sich den IPW2100 (Intel Pro Wireless 2100) Treiber herunter. Weiterhin benötigt man auf der Seite die Intel Firmware, hier zu finden. Dann muss noch ein weiterer Treiber heruntergeladen werden, der unter anderem für das WEP zuständig ist, und von dem der IPW2100 abhängt. Das ist der HostAP Treiber, hier zu finden (die Datei heißt "hostap-driver-VERSION.tar.gz", momentan aktuell ist 0.1.3).
Nun kann man das ganze Paket in der Reihenfolge installieren: Jetzt kann man den IPW2100 mit dem Kommando
modprobe ipw2100
laden. Wenn alles geklappt hat, hat man ein neues Interface, eth1. Dies kann jetzt ganz normal über iwconfig konfiguriert werden. Wenn es nicht geklappt hat, sich mit dmesg die Fehler anzeigen lassen und die Dokumentation noch einmal genau studieren.

Sonstiges

Hier kann man sich noch meine aktuelle Kernel-Konfiguration (Version 2.6.8.1) herunterladen. Außerdem gibt es hier die Konfigurationsdateien für die verschiedenen X-Server. Ich lege jedem X.Org ans Herz, zur Erklärung habe ich einige Worte bei dem Abschnitt über die Grafikkarte geschrieben. Zum herunterladen also: X.Org-Konfigurationsdatei xorg.conf oder alternativ die XFree-Konfigurationsdatei XF86Config-4.