Kapitel 11 Notebooks ­ PCMCIA, APM, IrDA An Notebooks werden besondere Anforderungen gestellt. Hierzu zählen unter anderem Advanced Power Management" (APM), Infrarot-Schnittstellen (Ir- DA) und PC-Karten (PCMCIA). Gelegentlich sind auch in Desktop-Rechnern solche Komponenten zu finden; sie unterscheiden sich nur unwesentlich von den in Notebooks verwendeten ­ deshalb wird deren Verwendung und Konfi- guration in diesem Kapitel zusammengefasst. Wer an Erfahrungen mit bestimmten Notebooks interessiert ist, soll- te auf alle Fälle die Linux Laptop Homepage" unter http://www. cs.utexas.edu/users/kharker/linux-laptop besuchen. Ei- ne weitere gute Informationsquelle ist die LiLAC"-Homepage unter http://home.snafu.de/wehe/index_li.html. Dort findet man sowohl ein interessantes Laptop-Howto als auch ein IrDA-Howto. 11.1 PCMCIA 11.1.1 Die Hardware PCMCIA steht für Personal Computer Memory Card International Associa- tion" und wird aber landläufig als Sammelbegriff für sämtliche damit zusam- menhängende Hard- und Software verwendet. Die wesentliche Komponente ist die PCMCIA-Karte; hierbei unterscheidet man zwei Typen: PC-Karten: Das sind die derzeit noch am meisten vorkommenden Karten. Sie verwenden einen 16 Bit breiten Bus zur Datenübertragung, sind meist relativ günstig und sehr viele werden problemlos und stabil unterstützt. CardBus-Karten: Dies ist eine neuerer Standard. Sie verwenden einen 32 Bit breiten Bus, sind dadurch schneller, aber auch teurer. Da die Daten- übertragungsrate aber häufig an anderer Stelle eingeschränkt wird, lohnt sich dieser Aufwand häufig nicht. Es gibt mittlerweile auch für diese Kar- ten etliche Treiber, wobei manche immer noch instabil sind ­ abhängig auch vom vorhandenen PCMCIA-Controller. Was für eine Karte eingeschoben ist, sagt bei aktivem PCMCIA-Dienst das Kommando cardctl ident. Eine Liste von unterstützten Karten findet man in SUPPORTED_CARDS in /usr/doc/packages/pcmcia. Dort gibt es auch die jeweils aktuelle Version des PCMCIA-HOWTO. Die zweite notwendige Komponente ist der PCMCIA-Controller, oder auch die PC-Card/CardBus-Bridge. Diese stellt die Verbindung zwischen der Karte 315 11. Notebooks ­ PCMCIA, APM, IrDA und dem PCI-Bus her, in älteren Geräten auch die Verbindung zum ISA-Bus. Diese Controller sind fast immer zu dem Intel-Chip i82365 kompatibel; es werden alle gängigen Modelle unterstützt. Der Typ des Controllers lässt sich mit dem Kommando probe ermitteln. Falls es ein PCI-Gerät ist, liefert auch das Kommando lspci -vt interessante Informationen. 11.1.2 Die Software Alle benötigten Treiber und Programme befinden sich, soweit sie nicht schon in den Kernel integriert sind, im Paket PCMCIA, Serie a1. Die Grundlage bilden die Module pcmcia_core, i82365 (oder tcic, selten) und ds. Diese Module werden normalerweise beim Booten automatisch gestartet. Sie initialisieren die vorhandenen PCMCIA-Controller und stellen Basisfunktio- nen zur Verfügung. Da PCMCIA-Karten zur Laufzeit gewechselt werden können, muss des einen Daemon geben, der die Aktivitäten in den Steckplätzen überwacht. Diese Aufgabe erledigt der Cardmanager (cardmgr). Er wird nach dem Laden der Basismodule automatisch gestartet. Wenn eine Karte eingeschoben wird, er- mittelt der Cardmanager Typ und Funktion und lädt die passenden Module; man kann mit lsmod nachsehen, welches Modul geladen wurde. Wurden al- le Module erfolgreich geladen, startet der Cardmanager je nach Funktion der Karte bestimmte Initialisierungsskripten, die ihrerseits z. B. die Netzwerk- verbindung aufbauen oder Partitionen von externen SCSI-Platten einhängen (mounten). Wenn die Karte wieder entfernt wird, sorgt der Cardmanager mit- tels derselben Skripten für das Beenden der diversen Kartenaktivitäten. An- schließend werden die nun nicht mehr benötigten Module wieder entladen. Theoretisch kann also die Karte einfach entnommen werden. Dies funktio- niert auch hervorragend für Netzwerk-, Modem- oder ISDN-Karten, solange keine aktiven Netzwerkverbindungen mehr bestehen. Es funktioniert nicht im Zusammenhang mit eingehängten Partitionen einer externen Platte oder mit NFS-Verzeichnissen. Hier muss dafür gesorgt werden, dass diese Einheiten synchronisiert und sauber ausgehängt werden (unmounten), da das natürlich nicht mehr möglich ist, wenn die Karte bereits gezogen wurde. Im Zweifels- fall hilft ein erde: # cardctl eject Dieser Befehl deaktiviert die Karten, solange sie sich noch im Notebook befinden. 11.1.3 Die Konfiguration Wenn das PCMCIA-Paket installiert ist, befinden sich in /etc/rc. config vier PCMCIA-Variablen. START_PCMCIA gibt an, ob der Dienst beim Booten gestartet wird. Von Hand kann er mit dem Kommando rcpcmcia start immer gestartet werden, auch wenn START_PCMCIA auf no gesetzt wurde. PCMCIA enthält den Typ des PCMCIA-Controllers. Dieser Wert wird bei der Installation automatisch ermittelt und steht fast immer auf i82365. Die beiden restlichen Variablen PCMCIA_PCIC_OPTS und PCMCIA_CORE_OPTS enthalten Optionen für die Basismodule und können im Normalfall leer bleiben. Die vorgegebene Option do_pnp=0 316 11.1. PCMCIA in PCMCIA_CORE_OPTS ist nur für Compaq-Notebooks wichtig. Da die Auswahl des richtigen Treibermoduls für die verwendete Karte vom Cardma- nager (cardmgr) erledigt wird, sind i. a. keine weiteren hardwarebezogenen Einstellungen notwendig. Ethernet und TokenRing Ethernet- oder TokenRing-Netzwerkverbindungen können problemlos mit YaST eingerichtet werden. Der Dialog `Netzwerk Grundkonfigura- tion' ist unter `Administration des Systems' `Netzwerk konfigurieren' zu finden. Die Einrichtung erfolgt wie bei fest einge- bauten Geräten. Zusätzlich muss das betreffende Gerät mit F9 als PCMCIA- Gerät markiert werden; vgl. Abschnitt 3.6.3 auf Seite 106. Folgendes ist zu beachten: * Wenn mehrere Ethernet- oder TokenRing-Geräte als PCMCIA markiert wurden, wird nur die Einstellungen des ersten Geräts übernommen. * Die Einstellungen werden im Gegensatz zu normalen Netzwerkkarten beim Beenden des Dialogs mit F10 sofort aktiv. * Die angezeigten Gerätenamen (eth0, eth1, tr0 ... ) sollten nur als Information über den Typ des Gerätes verstanden werden; denn die Nu- merierung der Geräte erfolgt bei PCMCIA dynamisch. * War ein Eintrag deaktiviert und wird jetzt mit F4 eine Reaktivierung vorgenommen, so muss auch die Markierung als PCMCIA-Gerät mit F9 wieder gesetzt werden. ISDN Auch bei ISDN-PC-Karten erfolgt die Konfiguration wie gewohnt; vgl. Ab- schnitt 6.2 auf Seite 169. Lediglich die Markierung als PCMCIA-Gerät in der `Netzwerk Grundkonfiguration' (unter `Administrati- on des Systems' `Netzwerk konfigurieren') muss mit F9 gesetzt werden. Im Dialog `Konfiguration der ISDN-Hardware' muss weder IRQ noch IO-Port eingegeben werden. Auch das Übertragungs- protokoll (Euro-ISDN oder 1TR6) kann hier nicht verändert werden. So genannte ISDN-Modems gibt es auch bei PCMCIA-Karten. Dies sind i. a. Modem- oder Multifunktionskarten mit einem zusätzlichen ISDN-Connec- tion-Kit". Diese werden wie ein Modem behandelt. Modem Bei Modem-PC-Karten gibt es im Normalfall keine PCMCIA-spezifischen Einstellungen. Sobald ein Modem eingeschoben wird, steht dieses unter /dev/modem zur Verfügung. Die Einrichtung mit wvdial (wvdial) er- folgt wie bei gewöhnlichen Modems; vgl. Abschnitt 6.6 auf Seite 186. SCSI und IDE Das passende Treibermodul wird vom Cardmanager geladen. Sobald also ei- ne SCSI- oder IDE-Karte eingeschoben wird, stehen die daran angeschlosse- nen Geräte zur Verfügung. Die Devicenamen werden dynamisch ermittelt. 317 11. Notebooks ­ PCMCIA, APM, IrDA Informationen über vorhandene SCSI- bzw. IDE- Geräte sind unter /proc/ scsi bzw. unter /proc/ide zu finden. Externe Festplatten, CD-ROM-Laufwerke und ähnliche Geräte müssen eingeschaltet sein, bevor die PCMCIA-Karte in den Steckplatz eingescho- ben wird. SCSI-Geräte müssen aktiv terminiert werden. Wichtig: Bevor eine SCSI- oder IDE-Karte entnommen wird, müssen sämt- liche Partitionen der daran angeschlossenen Geräte ausgehängt worden sein. Wurde dies vergessen, kann erst nach einem Reboot des Systems er- neut auf diese Geräte zugegriffen werden, obwohl der Rest des Systems durchaus stabil weiterläuft. Man kann Linux auch vollständig auf solchen externen Platten installieren. Allerdings gestaltet sich dann der Bootvorgang etwas komplizierter. Es wird auf alle Fälle eine Bootdisk" benötigt, die den Kernel und eine Init-Ramdisk (initrd) enthält; mehr Informationen dazu in Abschnitt 16.2 auf Seite 417. Die initrd enthält ein virtuelles Dateisystem, das alle benötigten PCM- CIA-Module und -Programme enthält. Die SuSE Linux Bootdisk" bzw. die Bootdisk-Images sind ebenso aufgebaut, d. h. damit könnten Sie Ihre externe Installation immer booten. Es ist aber etwas umständlich, jedes Mal die PCM- CIA-Unterstützung von Hand zu laden. Fortgeschrittene Anwender können sich eine auf das jeweilige System zugeschnittene Bootdiskette selbst erstel- len1. 11.1.4 Konfigurationen zum Umschalten ­ Schemen" Häufig benötigt man bei mobilen Computern verschiedene Konfigurationen für z. B. die Firma und für zu Hause. Mit PCMCIA-Geräten ist dies kein Problem; allerdings müssen dabei Konfigurationsdateien von Hand angepasst werden. YaST kann diese Aufgabe z. Z. noch nicht erledigen. Für ISDN bzw. Modem trifft die folgende Beschreibung nicht zu2. Eine Konfiguration nennt man bei PCMCIA ein Schema" (engl. Sche- me). Die Konfigurationsdateien für PCMCIA-Geräte, die sich unter /etc/ pcmcia/*.opts befinden, können mehrere Schemen enthalten. Die Daten eines Schemas sind dort in Konfigurationsblöcken abgelegt, die mit einer Adresse" angesprochen werden. Diese Adressen sind durch Kommata ge- trennte Worte. Das erste Wort ist der Name eines Schemas. Die weiteren Worte enthalten Informationen wie z. B. den Steckplatz, in dem die Karte steckt, oder die Nummer einer Festplattenpartition. Detaillierte Informatio- nen dazu finden Sie am Anfang der /etc/pcmcia/*.opts-Dateien und im PCMCIA-HOWTO. Das bei SuSE Linux verwendete Standard-Schema heißt SuSE. Dieses Schema SuSE wird mittels SuSEconfig verändert, wenn die Netzverbindung mit YaST konfiguriert wird. Deshalb gehen manuel- 1 Hinweise finden Sie dazu in dem PCMCIA-HOWTO in Abschnitt 5.3 Booting from a PCM- CIA device". 2 Bei ISDN können stattdessen mehrere ISDN-Devices mit denselben Netzwerkadressen und derselben Defaultroute angelegt werden. Diese werden dann nicht automatisch, sondern gezielt manuell gestartet. ­ Bei Modems können mehrere verschiedene Profile mit wvdial verwendet werden. 318 11.1. PCMCIA le Änderungen in diesem Schema beim nächsten Lauf von SuSEconfig wieder verloren. # The address format is "scheme,socket,instance,hwaddr" . case "$ADDRESS" in SuSE,*,*,*) INFO="This scheme is to be configured by YaST/SuSEconfig" # [... gekürzt ...] ;; work,*,*,*) INFO="Netzwerkkonfiguration für die Firma über DHCP" IF_PORT="" BOOTP="n" DHCP="y" IPADDR="" NETMASK="" NETWORK="" BROADCAST="" GATEWAY="" DOMAIN="" SEARCH="" DNS_1="" MOUNTS="" start_fn () { return; } stop_fn () { return; } ;; home,*,*,*) INFO="Netzwerkkonfiguration für zu Hause (Home) mit fes- ter Adresse" IF_PORT="" BOOTP="n" DHCP="n" IPADDR="10.0.1.23" NETMASK="255.255.255.0" NETWORK="10.0.1.0" BROADCAST="10.0.1.255" GATEWAY="10.0.1.1" DOMAIN="home.de" SEARCH="home.de work.de" DNS_1="10.0.1.1" MOUNTS="" start_fn () { return; } stop_fn () { return; } ;; *,*,*,*) INFO="Sample private network setup" # [... gekürzt ...] ;; esac Datei 11.1.1: /etc/pcmcia/network.opts Wir werden die Schemen-Konfiguration am Beispiel einer Ethernetkarte be- sprechen. Es sollen zwei Schemen namens work und home angelegt wer- den. Dazu werden in der Datei /etc/pcmcia/network.opts (siehe Datei 11.1.1 auf der vorherigen Seite) mehrere Konfigurationsblöcke benö- tigt. Diese Blöcke bekommen die folgenden Adressen: 319 11. Notebooks ­ PCMCIA, APM, IrDA * SuSE,*,*,*: Dieser Block sollte bestehen bleiben, falls Sie weiterhin YaST zur einfachen Konfiguration verwenden möchten. * work,*,*,*: In diesem Block wird das Netzwerk zur Verwendung in der Firma konfiguriert. Entsprechend enthält * home,*,*,*: die Daten für zu Hause. * *,*,*,*: Auch dieser Block ist schon vorhanden und dient zur Konfi- guration aller zuvor nicht vorgekommenen Schemen. Am einfachsten wird ein Block konfiguriert, indem die gewünschten Daten per YaST eingegeben werden und dann der von SuSEconfig angepasste Block SuSE kopiert und entsprechend nach work bzw. home umbenannt wird. Wer alles von Hand einstellen möchte, findet die Erklärung einiger Be- griffe wie NETMASK, BROADCAST etc. in Tabelle 5.1 auf Seite 152 und alle spezifischen Werte im PCMCIA-HOWTO (unter /usr/doc/packages/ pcmcia liegt die aktuelle Version). image = /boot/vmlinuz root = /dev/hda7 label = work alias = w append = xzx SCHEME=work xzx #image = /boot/vmlinuz root = /dev/hda7 label = home alias = h append = xzx SCHEME=home xzx #image = /boot/vmlinuz root = /dev/hda7 label = suseconf alias = s append = xzx SCHEME=SuSE xzx Datei 11.1.2: PCMCIA: Ausschnitt aus lilo.conf Das Umschalten zwischen diesen Schemen kann beim Booten oder zur Lauf- zeit geschehen. Welches Schema gerade aktiv ist, liefert das Kommando cardctl scheme. Während der Laufzeit wird auch mit diesem Komman- do umgeschaltet, nämlich durch cardctl scheme . Diese Einstellung geht beim Neustart des Systems nicht verloren. D. h. das zuletzt gewählte Schema ist auch nach dem nächsten Booten noch aktiv, solange nicht beim Booten ausdrücklich ein anderes Schema gewählt wird. Beim Booten kann ein Schema gewählt werden, indem am Bootprompt (LILO:) die Variable SCHEME= gesetzt wird; Informationen zum Bootprompt sind in Abschnitt 14.3.2 auf Seite 364 zu finden. Wer sich ein oder mehrere feste Bootschemen anlegen will, kann LILO ent- sprechend einrichten. Dazu muss in der Datei /etc/lilo.conf der Pa- rameter append verwendet werden. Wir setzen am besten das Beispiel fort und legen drei Bootkonfigurationen an. Es sollte dann so aussehen wie in Da- tei 11.1.2 auf der vorherigen Seite. Nach der Veränderung von /etc/lilo. 320 11.1. PCMCIA conf muss das Kommando lilo aufgerufen werden. Gemäß der Beispiel- konfiguration in Datei 11.1.2 auf der vorherigen Seite kann dann beim Booten durch die Eingabe von w, h oder s sehr einfach eines der Schemen gestartet werden. APM-Unterstützung Das PCMCIA-Paket von SuSE Linux wird ohne APM-Support übersetzt, weil dieser einen Kernel mit APM-Support voraussetzt, der nicht auf allen Systemen zuverlässig funktioniert. Verwenden Sie entweder den apmd (siehe Abschnitt 11.2.3 auf Seite 324), um den APM-Support zu simulieren oder Sie müssen das PCMCIA-Paket neu übersetzen. Das ist gar nicht so schwie- rig. Wichtig ist, dass während der Neuübersetzung bereits der richtige Kernel läuft, da aus diesem einige Informationen extrahiert werden. Das PCMCIA- Paket sollte bereits installiert sein, darf aber nicht gestartet sein; im Zwei- felsfall also noch ein rcpcmcia stop ausführen. Dann installiert man das PCMCIA-Sourcepaket mit YaST und gibt anschließend ein: erde: # rpm -ba /usr/src/packages/SPECS/pcmcia.spec Das war's, jetzt liegt unter /usr/src/packages/RPMS sogar ein neues Binärpaket, das man für weitere Systeme nutzen kann, wenn derselbe Kernel eingesetzt wird. 11.1.5 Wenn's trotzdem nicht geht Bisweilen kommt es bei der Verwendung von PCMCIA auf manchen Note- books oder mit manchen Karten zu Problemen. Die meisten Schwierigkeiten lassen sich mit wenig Aufwand bewältigen, solange man die Sache systema- tisch angeht. Zuallererst ist herauszufinden, ob das Problem mit einer Karte zusammenhängt, oder ob ein Problem des PCMCIA-Basissystems vorliegt. Deshalb sollte man in jedem Fall den Computer zunächst ohne eingescho- bene Karten starten. Erst wenn das Basissystem einwandfrei zu funktionie- ren scheint, wird die Karte eingeschoben. Alle aufschlussreichen Meldungen werden in /var/log/messages protokolliert. Deshalb sollte die Datei mit erde: # tail -f /var/log/messages während der notwendigen Tests beobachtet werden. So lässt sich der Fehler auf einen der beiden folgenden Fälle einschränken. Das PCMCIA-Basissystem funktioniert nicht Wenn das System beim Booten bereits bei der Meldung "PCMCIA: Star- ting services:" stehen bleibt oder andere merkwürdige Dinge ge- schehen, kann das Starten von PCMCIA beim nächsten Booten durch die Eingabe von NOPCMCIA=yes am Bootprompt (LILO:) verhindert werden. Um den Fehler weiter einzugrenzen, werden nun die drei Basis- module von Hand nacheinander geladen. Dazu dienen die Kommandos modprobe pcmcia_core, modprobe i82365 bzw. ­ in sehr seltenen Fällen ­ modprobe tcic und modprobe ds. Die kritischen Module sind die beiden ersten. 321 11. Notebooks ­ PCMCIA, APM, IrDA Tritt der Fehler beim Laden von pcmcia_core auf, hilft die Manual-Page von pcmcia_core (man pcmcia_core) weiter. Die darin beschriebe- nen Optionen können zunächst zusammen mit dem Kommando modprobe getestet werden. Als Beispiel nehmen wir ein Problem, das aufgrund der ak- tivierten PnP-Unterstützung ( Plug-and-Play") der PCMCIA-Module in der Vergangenheit aufgetreten ist: PnP führte beim Laden von pcmcia_core zum sofortigen Systemstillstand. In diesem Fall musste die PnP-Unterstüt- zung mit der Option do_pnp=0 ausgeschaltet werden. Zum Testen hängt man eine solche Modul-Option an den modprobe-Befehl an, also: erde: # modprobe pcmcia_core do_pnp=0 Führt die gewählte Option zum Erfolg, wird sie in der Datei /etc/rc. config in die Variable PCMCIA_CORE_OPTS geschrieben: PCMCIA_CORE_OPTS="do_pnp=0" Diese Variable enhält jetzt standardmäßig schon die Option do_pnp=0, wer also PnP-Unterstützung benötigt, muss die Option auf 1 setzen. Sollen meh- rere Optionen verwendet werden, müssen sie durch Leerzeichen getrennt wer- den: PCMCIA_CORE_OPTS="do_pnp=0 probe_io=0" Wenn es beim Laden von i82365 zu Fehlern kommt, hilft die Manual-Page von i82365 (man i82365). Ein Problem in diesem Zusammenhang ist ein Ressourcenkonflikt, d. h. ein Interrupt, IO-Port oder Speicherbe- reich wird doppelt belegt. Das Modul i82365 prüft zwar diese Ressour- cen, bevor sie für eine Karte zur Verfügung gestellt werden, jedoch führt manchmal genau dieses Prüfen zum Problem. Zum Beispiel führt das Prüfen des Interrupt 12 (PS/2-Geräte) bei manchen Computern zum Blo- ckieren von Maus und/oder Tastatur. In diesem Fall hilft der Parameter irq_list=. Die Liste soll alle IRQs enthalten, die verwendet werden dürfen. Also erde: # modprobe i82365 irq_list=5,7,9,10 oder dauerhaft in /etc/rc.config: PCMCIA_PCIC_OPTS="irq_list=5,7,9,10" Weiterhin gibt es /etc/pcmcia/config und /etc/pcmcia/config. opts. Diese Dateien werden vom Cardmanager ausgewertet. Die darin ge- machten Einstellungen sind erst für das Laden der Treiber-Module für die PCMCIA-Karten relevant. In /etc/pcmcia/config.opts können auch IRQs, IO-Ports und Speicherbereiche ein- oder ausgeschlossen werden. Der Unterschied zur Option irq_list ist, dass die in config.opts ausge- schlossenen Ressourcen zwar nicht für eine PCMCIA-Karte verwendet, aber dennoch vom Basis-Modul i82365 geprüft werden. Die PCMCIA-Karte funktioniert nicht (richtig) Hier gibt es im Wesentlichen drei Varianten: Die Karte wird nicht erkannt, sie belegt unzulässige Ressourcen oder sie ist unzuverlässig. Wenn die Karte nicht erkannt wird, erscheint in /var/log/messages die Meldung "unsupported Card in Slot x". Diese Meldung sagt lediglich aus, dass der Cardmanager der Karte keinen Treiber zuordnen 322 11.1. PCMCIA kann. Zu dieser Zuordnung wird /etc/pcmcia/config benötigt. Diese Datei ist sozusagen die Treiberdatenbank". Die Treiberdatenbank" lässt sich erweitern, wenn man vorhandene Einträge als Vorlage nimmt. Man kann mit dem Kommando cardctl ident herausfinden, wie die Karte sich identifiziert. Weitere Informationen dazu befinden sich im PCMCIA- HOWTO Abschnitt 6 ( Dealing with unsupported cards") und besonders in der Manual-Page von pcmcia (man pcmcia). Nach der Änderung von /etc/pcmcia/config muss diese neu geladen werden; dazu dient rcpcmcia reload. Den meisten PCMCIA-Karten ist es egal, mit welchem IRQ bzw. IO-Port sie betrieben werden; d. h. häufig liegt das Problem darin, dass eine verwendete Ressource später von einem anderen Gerät belegt wird (CD-ROM am 2. IDE- Controller: IRQ 15; serieller oder IrDA-Port: IRQ 3, IRQ 4; Sound, Drucker: IRQ 5, IRQ 7). In diesem Fall schließt man die Verwendung derselben in /etc/pcmcia/config.opts aus. Wenn eine bestimmte Karte dennoch spezielle Einstellungen benötigt, kann man in config.opts dem entspre- chenden Modul Optionen übergeben. Soll z. B. das Modul pcnet_cs mit dem IRQ 5 betrieben werden, wird folgender Eintrag benötigt: module "pcnet_cs" opts "irq_list=5" Die möglichen Optionen sind in den Manual-Pages beschrieben, die es zu den meisten Modulen gibt3. Wenn es keine Manual-Page gibt, sind verschiedene Optionen aus der Manual-Page von i82365 (man i82365) in Betracht zu ziehen, oder man muss sich mit dem Source-Code des Moduls vertraut machen ... Ein Problem, das manchmal mit 10/100 Mbit-Netzwerkkarten auftritt: die Übertragungsart wird nicht automatisch richtig erkannt. Hier hilft das Kom- mando ifport. Damit lässt sich die eingestellte Übertragungsart anzeigen und verändern; vgl. die Manual-Page von ifport (man ifport). Die ge- eignete Einstellung kann dann in /etc/pcmcia/network.opts in die Variable IFPORT geschrieben werden. 11.1.6 Installation via PCMCIA In manchen Fällen wird PCMCIA bereits zum Installieren von SuSE Linux benötigt. Dazu muss im linuxrc unter `Kernel-Module (Hardware- Treiber)' der Punkt `Lade PCMCIA Module' ausgewählt werden. Zuerst erscheinen zwei Eingabefelder, in denen man Optionen für die Modu- le pcmcia_core und i82365 eingeben kann. Im Normalfall bleiben diese Felder jedoch leer. Die Manual-Pages für pcmcia_core und i82365 be- finden sich als Textdateien auf der ersten CD im Verzeichnis docu. Während der Installation werden Systemmeldungen auf verschiedenen virtuellen Kon- solen ausgegeben, auf die man mit Alt + F umschalten kann.4 Wenn der erste Teil der Installation abgeschlossen ist, wird das System teil- weise oder ganz neu gestartet. Dabei kann in seltenen Fällen beim Starten 3 Tipp: rpm -ql pcmcia | grep man listet alle im Paket pcmcia enthaltenen Manual- Pages auf. 4 In YaST2 muss man Strg + Alt + F verwenden, weil YaST2 unter dem X Window System läuft. 323 11. Notebooks ­ PCMCIA, APM, IrDA von PCMCIA das System stehen bleiben. Zu diesem Zeitpunkt ist die In- stallation aber schon weit genug fortgeschritten, sodass mit der Boot-Option NOPCMCIA=yes Linux ohne PCMCIA gestartet werden kann, zumindest im Textmodus. Hier hilft der Abschnitt 11.1.5 auf Seite 319 weiter. 11.1.7 Weitere Hilfsprogramme Das Programm cardctl wurde hier schon mehrfach erwähnt. cardctl ist das wesentliche Werkzeug, um Informationen von PCMCIA zu erhalten, bzw. bestimmte Aktionen auszuführen. Details stehen in der Manual-Page von cardctl (man cardctl); oder man gibt nur cardctl ein und erhält eine Liste der gültigen Kommandos. Abbildung 11.1: PCMCIA ­ Cardinfo Zu diesem Programm gibt es auch ein graphisches Frontend cardinfo (vgl. Abbildung 11.1), mit dem die wichtigsten Dinge kontrollierbar sind. Leider kann man damit nicht zwischen Schemen" umschalten. Für Freunde von KDE gibt es auch ein kardinfo. Dieses Tool ist das gleiche in krün". Es unterscheidet sich nicht wesentlich von cardinfo. Weitere Helfer aus dem Paket pcmcia sind ifport, ifuser, probe und rcpcmcia. Diese werden aber nicht im täglichen Umgang benötigt. Um genau zu erfahren, was alles im Paket pcmcia steckt, verwendet man den Befehl rpm -ql pcmcia. 11.2 APM ­ Powermanagement 11.2.1 Grundlagen Powermanagement setzt eine dafür ausgelegte Hardware und passende BIOS-Routinen ( BIOS) voraus. Die meisten Notebooks und viele mo- derne Desktops bringen diese Voraussetzungen mit ­ wichtig sind diverse Stromsparfunktionen aber erst im mobilen Einsatz. Im Folgenden wollen wir auf diese Funktionen eingehen: 324 11.2. APM ­ Powermanagement Standby ­ In dieser Betriebsart wird nur das Display ausgeschaltet und bei manchen Geräten die Prozessorleistung gedrosselt. Suspend (to memory) ­ Hier wird der gesamte Systemzustand in den Ar- beitsspeicher geschrieben und außer diesem das gesamte System schlafen gelegt. In diesem Zustand braucht der Computer nur sehr wenig Strom, sodass man damit je nach Gerät von 12 Stunden bis mehrere Tage mit Bat- terie überbrücken kann. Der Vorteil dieses Zustands ist, dass man inner- halb weniger Sekunden wieder an derselben Stelle weiterarbeiten kann, ohne erst booten und benötigte Programme neu laden zu müssen. ­ Hier liegt der Reiz, Linux einzusetzen; denn man braucht sein System eigent- lich nie herunterzufahren (manche Betriebsysteme werden im Laufe der Zeit instabil). Bei den meisten modernen Geräten genügt es, den Deckel zu schließen, um zu suspendieren, und ihn zum Weiterarbeiten einfach wieder zu öffnen und es kann sofort weitergehen. Hibernation (Suspend to disk) ­ In dieser Betriebsart hält es der Computer länger als einen Winter5 aus; denn der Systemzustand wird vollständig auf der Festplatte gespeichert und das System danach ausgeschaltet. Die Rückkehr aus dem Winterschlaf" dauert zwischen 30 - 90 Sek. und auch hier wird der Zustand vor dem Suspend genau wiederhergestellt. Einige Hersteller bieten sinnvolle Mischformen davon an. Kontrolle des Akkuzustands ­ Durchaus interessant. Automatisches Ausschalten ­ Das ist auch für Desktops interessant. Nach einem Shutdown" wird der Computer vollständig ausgeschaltet. Abschalten der Festplatte ­ Das spart deutlich Strom und auch Nerven, wenn man eine laute Festplatte hat. Diese Funktion ist aber auch von an- deren Faktoren abhängig. Zum Beispiel weckt ein Editor, der regelmäßig automatische Sicherungen durchführt, die Platte immer wieder auf. Einige dieser Funktionen führt das BIOS alleine aus. Standby und Suspend kann man auf vielen Notebooks mit Tastenkombinationen oder mit Schließen des Deckels aktivieren. Dazu ist erstmal keinerlei Funktion seitens des Be- triebssystems nötig. Wer diese Betriebsarten jedoch per Kommando einleiten möchte oder darauf angewiesen ist, dass vor dem Suspend noch bestimmte Aktionen ausgeführt werden, muss entsprechende Pakete und einen geeigne- ten Kernel installiert haben. 11.2.2 Der richtige Kernel Für erweiterte APM-Funktionalität benötigt man einen Kernel, der APM-Un- terstützung enthält. Einer der SuSE-Standardkernel, die man mit YaST in- stallieren kann, erfüllt diese Voraussetzung. Das lässt sich auch leicht nach- prüfen mit dem Kommando cat /proc/apm. Wenn hier eine Zeile mit diversen Zahlen erscheint, ist alles okay. Jetzt sollte ein shutdown -h zum Ausschalten des Computers führen. Da manche BIOS-Implemetierun- gen sich nicht exakt an Standards halten, kommt es manchmal zu merk- würdigem Verhalten. Manche Probleme kann man mit speziellen Kernelkon- figurationen umgehen. Hinweise dazu finden Sie in unserer Supportdaten- bank http://sdb.suse.de/sdb/de/html/oder der Linux Laptop 5 Hibernation == Überwinterung. 325 11. Notebooks ­ PCMCIA, APM, IrDA Homepage" unter http://www.cs.utexas.edu/users/kharker/ linux-laptop. 11.2.3 Der APM-Daemon Dieser Daemon apmd dient zur Überwachung der Batterie und kann be- stimmte Aktionen auslösen, wenn ein Standby" oder Suspend" eintritt. Er befindet sich im Paket apmd, Serie ap. Er ist nicht unbedingt zum Betrieb notwendig, kann jedoch recht nützlich sein. Damit er beim Booten automa- tisch gestartet wird, muss in /etc/rc.config die Variable START_APMD auf yes gesetzt werden. Er kann aber immer mit rcapmd start von Hand gestartet werden. Zur Konfiguration gibt es in /etc/rc.config.d/apmd.rc.config einige Variablen. Die Datei ist mit Kommentaren versehen, deshalb werden hier nur einige Hinweise gegeben. * PCMCIA ist bei SuSE Linux ohne APM-Unterstützung übersetzt. Wer das PCMCIA-Paket nicht neu übersetzen möchte, kann die Variable PCMCIA_SUSPEND_ON_SUSPEND auf yes setzen. Einige Karten funktionieren nach einem Supend trotzdem nicht, dafür gibt es die härtere Methode PCMCIA_EJECT_ON_SUSPEND=yes. * Wenn nach einem Suspend die Uhrzeit nicht mehr stimmt, setzt man SET_CLOCK_ON_RESUME auf yes. * Macht das X Window System Probleme, wenn das System erwacht, hilft einem LEAVE_X_BEFORE_SUSPEND=yes. Weiterhin lässt sich das Spindown"-Verhalten der Festplatte automatisch an Batterie oder Netzbetrieb anpassen oder das System bei erreichen einer kritischen Batteriekapazität automatisch herunterfahren. Fortgeschrittene An- wender können sich weitere Funktionen in die Datei /usr/sbin/apmd_ proxy selbst einbauen. 11.2.4 Weitere Befehle Im Paket apmd sind noch einige nützliche Programme enthalten. Mit apm kann die aktuelle Batteriekapazität abgefragt werden und das System in Standby (apm -S) oder Suspend (apm -s) geschickt werden; vgl. die Manual-Page von apm (man apm). Das Kommando apmsleep suspendiert das System für eine vorgegebene Zeit; vgl. Manual-Page von apmsleep (man apmsleep). Wer eine Logdatei beobachten möchte, ohne die Festplatte ständig am Laufen zu halten, der kann tailf als Ersatz für tail -f verwenden. Natürlich gibt es auch hier Tools für das X Window System. Ebenfalls im Paket apmd findet man xapm, was den Ladezustand der Batterie grafisch anzeigt. Wer den KDE-Desktop verwendet ­ oder zumindest kpanel ­, kann sich auch von kbatmon den Füllgrad des Akkus anzeigen lassen und das System suspendieren. 326 11.3. IrDA ­ Infrared Data Association 11.2.5 Pause für die Festplatte Man kann unter Linux die Festplatte abschalten, wenn sie nicht benötigt wird. Dazu dient das Programm hdparm, mit dem man diverse Einstellungen an den Festplatten vornehmen kann. Mit der Option -y wird die Platte sofort in den Standby-Modus geschickt, mit -Y wird sie vollständig abgeschaltet. Mit hdparm -S 6 wird erreicht, dass die Platte nach 30 Sekunden Inaktivität abgeschaltet wird. Die Zahl 6 steht in diesem Fall für 6 5 = 30 Sekunden, der Wert 0 schaltet diese Funktion aus. Bei größeren Werten wird auch der Multiplikator größer; genaueres steht in der Manual-Page. Möchte man dieses Standby-Verhalten davon abhängig machen, ob man mit Batterie oder Stromanschluss arbeitet, kann man geeignete Einstellung- en in /etc/rc.config.d/apmd.rc.config treffen. Die Variable CHECK_TIME sollte dann aber auf 0 stehen. Leider wird die Platte häufig benötigt, wodurch sie immer wieder aufge- weckt wird. Zum Teil sind dafür Programme (z. B. Texteditoren) verantwort- lich, die regelmäßig ihre Daten auf der Platte sichern. Auch Hilfsmittel wie tail -f halten die Platte am Laufen, doch dafür gibt es tailf als Ersatz. Selbst wenn man kein solches Programm verwendet, gibt es einen Prozess, der den gerechten Schlaf der Platte regel- mäßig stört. Dazu muss man wissen, dass unter Linux die Daten nie direkt auf die Platte geschrieben werden, sondern vorerst nur in Puffer, die der Kernel bereithält. Damit werden Schreiboperationen beschleunigt. Damit aber keine Daten verlorengehen, gibt es den Update-Daemon, der sich in voreingestell- ten Zeitabständen um die Synchonisation der Platte und dieser Puffer küm- mert, d. h. die Daten wirklich auf die Platte schreibt. Seit Kernel 2.2.11 ist dieser Daemon Bestandteil des Kernels, und kann nicht mehr ohne Weiteres ausgeschaltet oder durch den mobile Update-Daemon" ersetzt werden. Aber man kann ihn dennoch beinflussen, nämlich über das /proc-Dateisystem. Der Befehl erde: # cat /proc/sys/vm/bdflush gibt die aktuellen Einstellungen aus und mit erde: # echo "60 500 64 256 6000 60000 3000 1884 2" > /proc/sys/vm/bdflush werden neue Einstellungen gesetzt. Wer diese Änderungen vornehmen möch- te, sollte in /usr/src/linux/Documentation/proc.txt selbst die Bedeutung der einzelnen Zahlen nachschlagen. Mit sync kann man übrigens die Festplatte von Hand synchronisieren. 11.3 IrDA ­ Infrared Data Association IrDA (Infrared Data Association) ist ein Industriestandard für drahtlose Kom- munikation über Infrarotlicht. Viele heute ausgelieferte Laptops sind mit ei- nem IrDA-kompatiblen Sender/Empfänger ausgestattet, der die Kommunika- tion mit anderen Geräten, wie Druckern, Modems, LAN oder anderen Lap- tops ermöglicht. Die Übertragungsrate reicht von 2400 bps bis hin zu 4 Mbps. 327 11. Notebooks ­ PCMCIA, APM, IrDA Die Untertützung für dieses Protokoll im Linux-Kernel ist noch nicht vollständig abgeschlossen. Daher ist die Funktionalität auch nicht in den Standard-Kernel eingebunden, es wird bislang nur als experimentell" ein- gestuft (Beta-Status). Das bedeutet, dass dieser recht junge" Treiber nicht so gründlich erprobt und eventuell nicht so stabil ist, wie andere Bestand- teile des Kernels. Software Das Paket irda stellt die Unterstützung für die Infrarotschnittstelle und das IrDA-Protokoll bereit. Nach der Installation des Paketes findet man die Do- kumentation unter /usr/doc/packages/irda/README. Aus dem Paket howto wird das IR-HOWTO installiert. Dies findet man nach der Installation unter /usr/doc/howto/en/IR-HOWTO.gz. Wei- tere Informationen zum Linux IrDA-Projekt können Sie auch der URL http://www.cs.uit.no/linux-irda entnehmen. Konfiguration Dieses Paket trägt bei der Installation die Variablen START_IRDA, IRDA_PORT und IRDA_IRQ in die Datei /etc/rc.config ein. Standardmäßig ist die Verwendung von IrDA deaktiviert; über das Kommando erde: # rcirda start können Sie die Schnittstelle aber jederzeit manuell aktivieren bzw. deaktivie- ren (mit dem Parameter stop). Beim Aktivieren der Schnittstelle werden die notwendigen Kernel-Module automatisch geladen. Über IRDA_PORT (Voreinstellung /dev/ttyS1) und IRDA_IRQ (Vorein- stellung 3) können Sie die für IrDA verwendete Schnittstelle konfigurieren; dies wird über das Skript /etc/irda/drivers beim Start der Infrarotun- terstützung eingestellt. Wenn Sie START_IRDA auf yes setzen steht die Unterstützung der Infra- rotschnittstelle gleich nach dem Booten zur Verfügung. Leider benötigt Ir- DA merklich mehr (Batterie-)Strom, da alle paar Sekunden ein Discovery"- Paket verschickt wird, um andere Peripheriegeräte automatisch zu erkennen. Verwendung Will man nun z. B. über Infrarot drucken kann man dazu über die Gerätedatei /dev/irlpt0 die Daten schicken. Die Gerätedatei /dev/irlpt0 verhält sich wie die normale drahtgebundene" Schnittstelle /dev/lp0, nur dass die Druckdaten drahtlos über infrarotes Licht verschickt werden. Einen Drucker, der über die Infrarotschnittstelle betrieben wird, können Sie wie einen Drucker am Parallelport oder an der seriellen Schnittstelle über YaST einrichten (vgl. Abschnitt 3.6.1 auf Seite 100). Beachten Sie bitte beim Drucken, dass sich der Drucker in Sichtweite der Infrarotschnittstelle des Computers befindet und dass die Infrarotunterstützung gestartet wird. Will man über die Infrarotschnittstelle mit anderen Rechnern oder mit z. B. Handys oder ähnlichen Geräten kommunizieren, so kann man dies über die 328 11.3. IrDA ­ Infrared Data Association Gerätedatei /dev/ircomm0 erledigen. Mit dem Siemens S25 Handy bei- spielsweise kann man sich über das Programm wvdial mittels Infrarot draht- los ins Internet einwählen. Troubleshooting Falls Geräte am Infrarotport nicht reagieren, können Sie als Benutzer `root' mit dem Kommando irdadump überprüfen, ob das andere Gerät überhaupt vom Computer erkannt wird: erde: # irdadump Bei einem Canon BJC-80 Drucker in Sichtweite" des Computers erde er- scheint dann eine Ausgabe ähnlich der folgenden in regelmäßiger Wiederho- lung (vgl. Ausgabe 11.3.1). 21:41:38.435239 xid:cmd 5b62bed5 > ffffffff S=6 s=0 (14) 21:41:38.525167 xid:cmd 5b62bed5 > ffffffff S=6 s=1 (14) 21:41:38.615159 xid:cmd 5b62bed5 > ffffffff S=6 s=2 (14) 21:41:38.705178 xid:cmd 5b62bed5 > ffffffff S=6 s=3 (14) 21:41:38.795198 xid:cmd 5b62bed5 > ffffffff S=6 s=4 (14) 21:41:38.885163 xid:cmd 5b62bed5 > ffffffff S=6 s=5 (14) 21:41:38.965133 xid:rsp 5b62bed5 < 6cac38dc S=6 s=5 BJC- 80 \ hint=8804 [ Printer Ir- COMM ] (23) 21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* er- de \ hint=0500 [ PnP Computer ] (21) Ausgabe 11.3.1: IrDA: irdadump Sollte überhaupt keine Ausgabe erfolgen oder das andere Gerät sich nicht zu- rückmelden, so überprüfen Sie bitte die Konfiguration der Schnittstelle. Ver- wenden Sie überhaupt die richtige Schnittstelle? Manchmal ist die Infrarot- schnittstelle auch unter /dev/ttyS2 oder /dev/ttyS3 zu finden oder ein anderer Interrupt als Interrupt 3 wird verwendet. Diese Einstellungen können Sie aber bei fast jedem Laptop im BIOS-Setup konfigurieren. Beachten Sie bitte auch, dass Sie ohne weiteres nur Geräte ansprechen kön- nen, die die Protokolle Printer oder IrCOMM unterstützen. Mit speziel- len Programmen (irobex_palm3, irobex_receive, bitte beachten Sie hierzu die Beschreibung im IR-HOWTO) können Sie auch Geräte anspre- chen, die das IROBEX-Protokoll verwenden (z. B. 3Com Palm Pilot). Die vom Gerät unterstützten Protokolle werden bei der Ausgabe von irdadump nach dem Gerätenamen in eckigen Klammern angeben. Die Unterstützung des IrLAN-Protokolls ist Work in progress" ­ es ist leider zur Zeit noch nicht stabil, wird aber sicher in naher Zukunft auch unter Linux zur Verfü- gung stehen. Mit einer einfachen Video-Kamera können Sie auch überprüfen, ob die Infrarot-LED überhaupt aufleuchtet ­ im Gegensatz zum Menschen können die meisten Videokameras Infrarotlicht sehen". 329 11. Notebooks ­ PCMCIA, APM, IrDA 330