|
Das Betreiben von Linux auf Laptops ist leider ein Fall für sich:
Nicht selten werden in Laptops aufgrund des geringen Platzes, aber
durchaus einfach nur aus (manchmal falsch verstandener) Sparsamkeit,
propietäre Bauteile eingesetzt, für die es keine Linux-Treiber gibt. Das
ist bei Laptops insbesondere auch deswegen problematisch, da man in der
Regel die jeweiligen Bauteile (Modem, Netzwerkkarte etc.) nicht
einfach austauschen kann, da diese fest verbaut sind.
Eine Seite, die einem bei der Auswahl von Linux-fähigen Laptops helfen
kann, ist
linux-on-laptops.com
. Dort finden sich insbesondere Erfahrungsberichte von Benutzern, die auf
ihren Laptops Linux installiert haben (erfolgreich oder auch nicht
erfolgreich), bzw. mit welchen Problemen sie zu kämpfen hatten. Es finden
sich dort aber auch Links zu Seiten, die weiterführende Informationen
beinhalten, z.B. über sogenannte Winmodems (jämmerliche Verkrüppelungen
echter Modems, um ein wenig Geld zu sparen, dafür die Arbeit dem Prozessor
aufs Auge zu drücken. Winmodem deswegen, weil es funktionierende Treiber
nicht selten nur für Windows gibt).
Mein Notebook
Im Laufe der Zeit habe ich mich auch für ein Notebook entschieden.
Zunächst ein paar technische Daten:
- IBM Thinkpad A30p (Modell 2653-64G)
- Intel Pentium III Mobile 1200MHz
- 512MB Hauptspeicher
- 48GB IDE-Festplatte
- DVD/CD-RW (IDE)
- 15 Zoll TFT mit ATI Radeon Mobilty LY
- USB (Controller: Intel 82801CA/CAM HUB)
- Firewire (IEEE1394, OHCI Standard)
- PCMCIA (Controller: Ricoh RL5c478)
- Sound: Intel 82801CA/CAM AC 97
- Netzwerk: Intel 82801CAM (ICH3) PRO/100
- Infrarotanschluss über Intel 82801 CAM LPC
- Modem: Lucent Softmodem AMR
Hinweis: Vor einiger Zeit hat IBM seine Notebooksparte an den chinesischen
Hersteller
Lenovo
verkauft. Nun sind die IBM-Notebooks auch schon vorher in China
zusammengebaut worden, aber immerhin unter der Kontrolle einer Firma, welcher
die Qualität der Geräte (inklusive Support) meist sehr wichtig war
(auch IBM hat sich hier
und da Schnitzer geleistet und beispielsweise bei einigen Modellen
Probleme mit lauten/dauernd laufenden Lüftern gehabt und da erstmal sehr, sehr
zurückhaltend drauf reagiert). Scheinbar war diese Sparte aber ein
Zuschußgeschäft. Wie gut Lenovo den Ruf der Thinkpads nun halten kann,
das bleibt abzuwarten, denn wenn dieser sinkt, dann macht es eigentlich
auch keinen Sinn mehr, Thinkpads für nicht gerade wenig Geld zu kaufen.
Zudem hat Lenovo
angekündigt
, "nur noch auf Windows zu bauen". Sofern dies dazu führt, das mehr
"obskure" Handware verbaut wird ("Winmodems" - also sehr abgespeckte
Modemchipsätze, die nur mit besonderen Treibern funktionieren -
sind ja leider quasi
Standard, aber auch Komponenten, deren Spezifikationen nicht
bekanntgegeben werden), die nur unter Windows läuft, würde dies einen
Einsatz unter Linux weiter erschweren. Immerhin scheint man bei Lenovo
aber sich es doch nicht ganz "mit Linux" verscherzen zu wollen, denn
zwei Tage später hat man sich dahingehend geäußert, auch weiterhin
Linux unterstützen zu wollen
.
Auf dem Laptop ist standardmässig Windows 2000 installiert (gut, XP
gibts auch, aber wer will das schon? ;-)). Die Festplatte ist dabei in
folgende wichtige Bereiche partitioniert:
- /dev/hda1, Typ "c" (Win95 FAT32) mit dem vorinstallierten Win2K, bei
mir in der Grösse von etwa 15GB
- /dev/hda2, Typ "1c" (Hidden Win95 FAT32), eine "versteckte"
Servicepartition, auf welcher die Installationsdaten liegen (eine
Recovery-CD gibt es leider nicht. Eigentlich unverständlich. Man kann
diese bei einem eventuellen Crash aber wohl relativ einfach kostenlos vom
IBM Kundenservice nachfordern.)
Der Rest der Platte steht im Prinzip zur freien Verfügung. Ich habe noch
eine weitere Partition für Windows angelegt, und zwei für Linux (normales
FS und Swap).
Hierbei ist zu beachten: Wer Norton Ghost verwenden möchte (läuft zwar nur
unter Windows, kann aber immerhin auch Linux-Partitionen sichern), sollte
unbedingt eine primäre Partition freilassen.
Die IBM-Service-Partition kann beim Booten durch "F11" angesteuert werden.
Dazu verwendet IBM einen speziellen Boot-Sektor, der diesen Tastendruck
erkennt. Dieser Bootsektor wird bei der Linux-Installation überschrieben,
wenn man "lilo" oder "grub" in den Bootsektor der Platte (/dev/hda)
installieren lässt. Um dies zu vermeiden, kann man den Bootsektor auch in
den Bootsektor der Linux-Partition installieren lassen (sofern diese sich
auf einer primären Partition befindet).
Man kann aber auch "grub" dazu bringen, diese Partition doch noch zu booten
(also wenn man den Original Bootsektor überschrieben hat). Dazu ein
Ausschnitt aus der "menu.lst" von grub:
title windows recovery
root (hd0,1)
unhide (hd0,1)
hide (hd0,0)
rootnoverify (hd0,1)
chainloader +1
makeactive
Bei dieser Boot-Auswahl startet tatsächlich das auf der "geheimen"
Partition befindliches Spar-Win98, und das IBM Serviceprogramm wird
geladen.
Um beim Booten von Linux die Partition wieder zu verstecken, kann man im
entsprechenden Abschnitt in der menu.lst folgendes eintragen:
unhide (hd0,0)
hide (hd0,1)
Die Installation
Die erste Installation auf diesem Notebook war eine Suse 8.1. Das
Ergebnis ist weiter unten aufgelistet.
Inzwischen habe ich eine Suse 9.1 installiert. Das Ergebnis ist auch
unten aufgelistet ;-), und zwar jeweils an den gleichen Stellen wie
die Kommentare zur 8.1, nur entsprechend markiert.
Suse 8.1
Bei der "automatischen Installation" gab es nach der Hardwareerkennung
leider eine (unklare) Fehlermeldung, und die Paketauswahl war leer. Warum,
ist mir nicht klar. Mit der "manuellen Installation" ging es dann aber
völlig problemlos. Man muss hier zwar einige zusätzliche Fragen
beantworten, kann aber die ganzen "komplizierten" Sachen wie zusätzliche
Module laden einfach ignorieren. Nach der Aufforderung, die Installation zu
starten, startet die gleiche Hardwarerkennnung wie bei der automatischen
Installation - bis auf die Tatsache, dass es jetzt keine Fehler gibt!
Suse 9.1
Ich habe meine alte Installation nicht einfach upgedated, sondern nach dem
Sichern der Daten die Partion formatiert und frisch installiert. So
wird man wenigstens Ballast los, zumal ein Update gerade über mehrere
Versionen hinweg nicht unbedingt gutgehen muss (getestet wird wohl
normalerweise höchstens ein Update von der direkten Vorgängerversion).
Die autmoatische Installation, die bei 8.1 einen Fehler ausgab (s.o.),
klappte nun gut. Die Hardwareerkennung scheint generell etwas besser
geworden zu sein. Insgesamt gibt es (abgesehen von den neuen Paketen
natürlich ;-)) keine gewaltigen Änderungen zur Installation der 8.1, aber
ein paar Dinge sind mir schon aufgefallen.
Der mitgelieferte Kernel 2.6.4 hat offenbar einen Bug im e100-Modul. Dies
ist der Treiber für die im A30p eingebaute Netzwerkkarte. Bei
10MBit-Verbindungen kann es zum "Steckenbleiben" der Verbindung (gerade
beim Übertragen grosser Mengen, beispielsweise per scp) kommen. Dann hilft
nur noch ein Runter- und Hochfahren des Interfaces. Unter
www.spinics.net/lists/kernel/msg260910.html
(ein Archiv der Kernelmailingliste) ist ein Work-Around beschrieben, der
bei mir bislang augenscheinlich funktioniert.
Ergebnisse
Suse 8.1:
Die Hardware wurde bis auf eine einzige Ausnahme komplett erkannt! Die
Ausnahme ist der Lucent Softmodem, für welches es aber tatsächlich einen
Linux-Treiber gibt (s.u.).
Suse 9.1: Im Wesentlichen wurde alle Hardware erkannt, sogar das
Lucent Winmodem! Dieser Treiber ist jetzt in der Suse-Distribution enthalten.
Suse 8.1:
Allerdings muss man sagen, dass das ACPI
("advanced configuration and power interface") bei den bisherigen
stabilen Linux-Kerneln noch nicht richtig unterstützt wird. Erst beim
Kernel 2.6 wird sich das richtig ändern. Momentan kann es funktionieren -
oder auch nicht. Beim A30p scheint es zu "nicht funktionieren" zu
tendieren. "suspend-to-disc" und automatisches Schlafenlegen beim
Schliessen des Deckels werden also wohl noch ein wenig warten müssen.
Immerhin ist Intel selbst bei der ACPI-Implementation des Kernels aktiv.
Informationen siehe unter
acpi.sourceforge.net
und
developer.intel.com/technology/iapc/acpi/
Das IBM-Bios beherrscht neben ACPI aber immer noch APM.
Wenn man dem Kernel
beim Booten ein "acpi=off " übergibt,
kann man das APM unter Linux recht gut
verwenden. Im KDE zeigt sich auch prompt die dann funktionierende
Akkulade-Anzeige, und zumindest "Bildschirm aus" und der Standby-Modus
arbeiten korrekt. Hibernation hab ich noch nicht "geschafft".
Suse 9.1:
ACPI funktioniert (mit dem Thinkpad) ein wenig besser, aber nicht wirklich:
- "Suspend to RAM" tuts zwar, aber das Backlight bleibt eingeschaltet.
Ansonsten
schaltet das Notebook zwar in den Schlafmodus (auch die Schlaflampe geht
an), aber ein Schimmern im Display zeigt die sinnlose Energieverschendung.
Dieser Effekt wird aber auch in Meldungen der Kernelliste beschrieben.
- "Suspend to Disk" läuft (Speicherzustand wird in den Swap geschrieben),
aber beim nächsten Start stürzt der Kernel beim Zurücklesen übel ab
(Reboot). Da heisst es vermutlich einfach "auf einen neuen Kernel" bzw.
eine neue ACPI-Version warten.
Natürlich funktioniert APM (s.o.) auch unter dem neuen Kernel. Bei mir
weigerte sich das Notebook zu Beginn allerdings, "einzuschlafen": Beim
Drücken der Schlaftaste (Fn+F4) piepste es (normal), Bildschirm geht aus,
nochmal einige Piepser (nicht normal), dann Festplatte aus. Fast wie
im Suspend-Mode, aber die Schlaflampe (Halbmond) ging nicht an. Es reichte
auch ein Druck auf eine beliebige Taste, um das Notebook zu starten. Zumal
zeigte das unregelmäßige Anlaufen des Lüfters, dass das Notebook sich
nicht im Suspend-Mode befand.
Das mehrfache Piepsen zeigte an, dass das Notebook sich weigerte, in
dan Schlafmodus zu fahren. Ursache war der laufende PCMCIA-Treiber
bzw. Cardmanager. Auch wenn keine Karte in den Slots steckte, reichte
die Aktivität des Treibers aus, um den Schlafmodus zu verhindern.
Die Lösung war, das PCMCIA-Subsystem zu stoppen. Das geht automatisch durch
einen Eintrag beispielsweise in Yast -> System -> Editor für
sysconfig-Dateien, dort in System -> Powermanagement -> Powersave ->
Suspend -> POWERSAVE_SUSPEND_RESTART_SERVICES. Dort steht normalerweise
nichts. Wenn man da "pcmcia" einträgt, wird das PCMCIA-Subsystem vor
dem Suspend gestoppt und danach wieder gestartet.
Suse 8.1:
Das Modem ist leider eines der Modelle, die sich auch
Winmodem schimpfen. Hierbei wird ein Teil der normalerweise nötigen
Elektronik eines Modems durch den Prozessor "nachgebildet". Somit braucht
man, im Gegensatz zu einem "normalen" Modem, einen besonderen Treiber, der
diese Funktionalität zur Verfügung stellt. Bei Windows ist dies kein
Problem (daher auch "Winmodem"), unter Linux ist das leider nicht immer
gegeben. Normalerweise sollte man "Winmodems" vermeiden (genauso wie
"GDI"-Drucker - man könnte auch "Winprinter" dazu sagen :-/).
Das im Thinkpad verwendete Modem mit AMR-Chipsatz kann mit dem Treiber
von
Smart Link
betrieben werden. Die Treiber finden sich unter
linmodems.technion.ac.il/resources.html
(bzw. unter
linmodems.technion.ac.il/packages/smartlink/
).
Allgemeine, aber nicht unbedingt ganz aktuelle Informationen
zu "Winmodems" finden sich unter
www.linmodems.org
.
Suse 9.1:
Das Modem wird automatisch erkannt und der Treiber (der gleiche, wie
oben beschrieben) entsprechend installiert.
Suse 8.1:
Das DVD-Laufwerk wird standardmässig ohne DMA betrieben. Dies führt beim
Abspielen von DVDs zu Aussetzern im Sekundentakt. Ein einfaches
"/sbin/hdparm -d1 /dev/hdc" in z.B. "/etc/rc.d/boot.local" schaltet
das DMA wieder an, und DVDs werden nun korrekt abgespielt.
Suse 9.1:
DMA ist für das DVD immer noch standardmäßig abgeschaltet. Es gibt im
Yast aber inzwischen auch einen eigenen Menüpunkt, um den DMA-Modus
aller Geräte zu steuern. Wer nicht obige Zeile eintragen will, kann das
jetzt über Yast machen.
Suse 8.1:
Das Einführen einer Flashcard (eingesteckt in einen
PCMCIA-Flashcard-Adapter) in einen der PCMCIA-Slots führte zu einem Fehler.
Die Lösung bestand (erstaunlicherweise) aus dem Austauschen aller Texte
"ide_cs" durch "ide-cs" in der Datei "/etc/pcmcia/config". "ide_cs" und
"ide-cs" bezeichnen beide Kernel-Module, die vom PCMCIA-Manager beim
Einstecken der Karte automatisch geladen werden. Beide der o.g. Module sind
für "PCMCIA IDE/ATA disk cards" zuständig - aber das eine ist offenbar
erfolgreicher ;-)
Suse 9.1:
Oben beschriebene Manipulation ist jetzt nicht mehr nötig. Nach dem
Einstecken einer Speicherkarte laufen erstaunlicherweise aber scheinbar
beliebig lange Meldungen im syslog durch. Das kann daran liegen,
dass Suse einen Automouter für mobile Karten verwendet (-> Ein
USB-Memory-Stick taucht nach dem Einstecken im "Arbeitsplatz"
(Konqueror-URL: "drives:/") auf, braucht nicht gemountet und auch nicht
unmountet werden). Gerade im Hinblick auf diesen Automounter könnte
sich noch etwas an der Zuverlässigkeit tun.
Suse 8.1:
Firewire funktioniert zumindest mit einer externen Festplatte in
einem Gehäuse des Typs Map-H31C1 einwandfrei
(na ja, fast: Die erste Verbindungsaufnahme scheitert (Festplatte wird
nicht erkannt), Abziehen und erneut Einstöpseln funktioniert dann, auch
alle erneuten Einstöpselversuche laufen dann fehlerfrei ab).
Datensicherungen sind hier
auch deutlich schneller und einfacher durchzuführen als auf CDs.
Etwas irritierend ist nur, dass beim "Wechsel" des Betriebssystems
(Booten von Windows nach Linux bzw. umgekehrt) das Gehäuse (d.h. die
darin befindliche Platte natürlich) erst aus- und wieder eingeschaltet
werden muss, damit das OS das Gerät korrekt erkennt.
Nach einem (sicherheitsbedingten) Update auf den Kernel 2.4.21 klappt
die Erkennung der Festplatte im Firewiregehäuse
leider nicht mehr. Es ist mir noch unklar,
woran das genau liegt. Der 2.6er Kernel der Knoppix 3.4 hat keine
Probleme.
Suse 9.1:
Firewire scheint jetzt recht stabil zu funktionieren. Durch den Automounter
erscheinen die Partitionen der o.g. Festplatte nach dem Einstöpseln im
Konqueror, und man kann loslegen. Im Internet findet man allerdings
oft den Rat, dem Modul für die Plattenemulation (sbp2) den Parameter
"serialize_io=1" mitzugeben, damit die Plattenzugriffe serialisiert
werden. Dies ist nicht weiter schlimm, da es natürlich keinen Einfluss
auf andere Platten hat. Eintragen kann man diesen Parameter in der
"modprobe.conf" (bzw. bei Suse "modprobe.conf.local", dort sollten
eigene Ergänzungen hinein), nämlich mit "options sbp2 serialize_io=1".
Zumindest haben einige GB Datenschaufeleien akzeptabel funktioniert.
Die ATI-Grafikkarte wird gut unterstützt. Insgesamt scheint aber eine
Unterstützung von NVidia-Karten (Geoforce) etwas besser zu sein.
Die beim Thinkpad vorhandenen Extratasten sind unter X zunächst ohne
Funktion. Die "ThinkPad"-Taste lässt sich zu nichts zu bewegen, die
anderen 8 Tasten aber wohl. Dazu sollten diese zunächst so konfiguriert
werden, dass sie auch Symbole zurückmelden. Die Datei ".Xmodmap" im
Homeverzeichnis ist dazu geeignet (siehe das Manual zu "xmodmap"). Folgende
Zeilen aktivieren diese Tasten:
keycode 236 = F20
keycode 178 = F21
keycode 229 = F22
keycode 230 = F23
keycode 231 = F24
keycode 232 = F25
keycode 234 = F28
keycode 233 = F29
Dann können diese Tasten beispielsweise durch das KDE Kontrollzentrum
belegt werden.
Suse 8.1:
Zudem hatte ich das Problem, dass die Num-Lock-Taste unter X nicht so
wollte: Es wurde ein anderer X-Event gesendet, nämlich
"Pointer_EnableKeys". Das führt zu einem Piepen, aber danach kommen beim
Betätigen der Tasten des in der Tastatur integrierten Zahlenblocks keine
Zahlen, sondern gar keine Zeichen :-O
Folgende Zeile in der ".Xmodmap" korrigiert dieses Verhalten:
keycode 77 = Num_Lock
Suse 9.1:
Hier funktioniert Num-Lock ohne Probleme
Der TrackPoint wird problemlos als PS/2-Maus erkannt. Bei einem
stationären Arbeiten kann es daneben aber sehr hilfreich sein, eine
handelsübliche Maus an den seriellen Anschluss des ThinkPad anzuschliessen.
Unter X kann man (zumindest ab XFree 4.0) auch mehrere Mäuse eintragen,
die alle gleichzeitig benutzt werden können. Der
interne TrackPoint sollte aber der "CorePointer" sein, da der immer
vorhanden ist. Die anderen Mäuse können während des Betriebs auch fehlen.
Bei einer SuSE-Distribution kann man einfach eine serielle Maus zur
bestehenden Konfiguration hinzunehmen (Hinweis: fast alle seriellen Mäuse
verwenden das Microsoft-Protokoll). Aber man kann die Maus auch selbst in
der "XF86Config"-Datei aufnehmen.
Thinkpad-Bios-Einstellungen wie z.B. die Prozessorgeschwindigkeit
in Abhängigkeit von der Stromversorgung,
das Verhalten beim Schliessen des Deckels und viele andere
Einstellmöglichkeiten können mit dem Programm
tpctl
(Thinkpad Control) vorgenommen werden. Dieses Programm ist auf jeden
Fall zu empfehlen!
Suse 8.1:
USB klappt generell ganz gut (zumindest wenn es passende Treiber
gibt, klar :-)). Mein USB-Stick wird korrekt erkannt,
und unter KDE taucht
(meist, nicht immer :-O) auch direkt ein passendes Icon auf.
Ein Typhoon 6-in-1-Card Reader funktioniert auch einwandfrei (obwohl
auf der Packung Linux natürlich nicht erwähnt wird). Es ist nur zu beachten,
dass beim Boot-Loader (ob jetzt Lilo oder Grub) nicht die Option
"max_scsi_luns=1" angegeben wird. Diese Option verhindert das Suchen
nach weiteren logischen Einheiten an einem SCSI-Gerät und wird meist
verwendet, um bei nicht ganz sauber gebauten IDE-CDROMs
(die ja i.d.R. über
die IDE-SCSI-Simulation angesprochen werden)
zu verhindern, dass das Gerät
acht Mal (LUN 1-8) auftaucht. Der Typhoon-Cardreader hat aber 4 Slots, die
in Linux über das gleiche Verfahren (LUN) erkannt werden müssen. Gibt man nun
die obige Option an, findet Linux nur einen der vier Slots.
Suse 9.1:
Im wesentlichen gleiches Verhalten wie unter Suse 8.1. Wie oben bei
"Firewire" schon gesagt, verwendet Suse jetzt einen Automounter
(
submount
), um
beispielsweise USB-Memory-Sticks ohne Benutzeraktion im konqueror
zugreifbar zu machen. Das Ding scheint aber noch nicht ganz perfekt zu
arbeiten, wobei hier aber auch noch Randeffekte durch den
Kernel (hier sind viele Dinge stark überarbeitet worden) bzw. durch
Effekte der Hardware auftreten können. Bei Einstecken meines Sticks
erscheinen beispielsweise Tonnen von Logmeldungen, und der Kernel erkennt
4-6 mögliche Geräte bzw. Partitionen. Hier muss man aber auch sagen, dass
manchmal die Hardware auch Defizite hat, unter dem Kernel 2.4.21 gab es
allerdings keine Probleme. Im Konqueror (URL "drives:/" tauchen dann
auch 4-6 Festplatten auf, die man aber nicht "öffnen" kann. Eines der neuen
Symbole ist dann aber tatsächlich "USB-Festplatte", und das ist dann korrekt
der Stick, der ansonsten auch korrekt funktioniert. Also zum Glück
nur eine Unschönheit.
Suse 8.1:
IRDA, also die Infrarotschnittstelle, funktioniert einwandfrei -
zumindest wenn man das irda-Paket installiert, in dem die High-Level-Treiber
enthalten sind. Danach kann beispielsweise ein IRDA-fähiges Mobiltelefon
verwendet werden, um eine DFÜ-Verbindung (über /dev/ircomm0 als
seriellen Port) herzustellen.
Suse 9.1:
Eigentlich funktioniert unter 9.1 IRDA immer noch wunderbar.
Erstaunlicherweise aber nicht auf Anhieb, denn da funktioniert einfach nur
nix :-/ (Genauer gesagt, ein "irattach /dev/ttyS0 -s" funktioniert nicht).
Grund sind einige Module, die nicht automatisch nachgeladen werden.
Ich lasse daher die Module "irtty-sir" und "ircomm" beim Booten laden
(beispielsweise im "/etc/sysconfig-Editor" von Yast, System -> Kernel ->
MODULES_LOADED_ON_BOOT eintragen). Generell geht aber auch, die
"modprobe.conf" entsprechend anzupassen, damit diese Module beim
Laden von "irda" mitgeladen werden.
Suse 9.1:
Bluetooth über einen USB-Dongle der Firma Epox
(BT-DG02A)
funktioniert
erstaunlich reibungslos. Das Gerät wird erkannt und kann über
Shellkommandos (z.B. rfcomm, hcitool) oder den kbluetoothd unter KDE
verwendet werden - zumindest wenn man sich ein wenig mit Bluetooth und
den dort verwendeten "Profilen" (im Sinne von Anwendungsprofilen) beschäftigt
hat.
Inzwischen benutze ich Bluetooth, um über mein (neues)
bluetoothfähiges
Mobilfunktelefon (MFT) ins Internet zu
kommen, wenn gerade keine andere Verbindungsmethode greifbar ist. Dazu
mußte ich allerdings ein klein wenig tun:
- Überhaupt versuchen, das MFT zu finden: "hcitool scan"
Hier werden die auffindbaren Bluetooth-Geräte mit Hardwareadresse und
Namen ausgegeben. "hcitool" kennt noch weitere Kommandos, die teilweise die
Hardwareadresse benötigen. Das MFT muß dabei die Erkennung von außen
zulassen (nennt sich bei mir "Sichtbarkeit").
- Um eine Verbindung über PPP herzustellen, benötigt man ein serielles
Device. Das MFT (hier ein Nokia E50) bietet über Bluetooth normalerweise
ein serielles "Profil" an. Dies kann man mit dem Befehl
"sdptool browse" ermitteln. Sortiert nach vorhandenen Geräten werden alle
dort zur Verfügung gestellten "Services" angezeigt. Man muß ein wenig
in der Ausgabe suchen, um etwas brauchbares zu finden. Bei mir beginnt der
interessante Abschnitt mit "Service Name: Dial-Up Networking". Die
standarisierte serielle Verbindung hat den Protokollnamen "RFCOMM" (den gibt es
mehrere Male), und es ist dort ein Kanal ("Channel") angegeben (eine Zahl,
analog der Portnummer beim TCP/IP). Bei mir war dies "Channel: 2". Wie gesagt,
nicht verwirren lassen, "RFCOMM" gibt es meist mehrmals.
- Nun passt man die
Konfigurationsdatei "/etc/bluetooth/hcid.conf" an. Diese ist entsprechend
kommentiert, wichtig sind der lokale Name und zum Beispiel, ob der Bluetooth-
Adapter von außen gefunden werden können soll. Dieses sollte man aus
Sicherheitsgründen nur dann aktivieren, wenn man eine neue Verbindung
aufnehmen soll. Ist die Verbindung
"gefestigt" (MFTs und Handhelds bieten normalerweise die Möglichkeit, eine
Verbindung nach dem ersten Male in ihrer Konfiguration zu hinterlegen. Dann
braucht man das Reagieren auf Anfragen ("hcitool scan") nicht mehr, die
Verbindung klappt dann auch ohne), kann man dies deaktivieren.
- Die Verbindungsaufnahme von Bluetoothgeräten wird durch eine "PIN"
gesichert. Normalerweise vergibt man auf einem Gerät eine PIN, auf dem anderen
muß man diese bei der Verbindungsaufnahme eingeben. Unter Suse 9.1 wird diese
PIN in "/etc/bluetooth/pin" eingetragen.
- Die Emulation einer seriellen Verbindung unter Linux geschieht durch
Aufruf des Programms "rfcomm". Dessen Konfiguration steht unter
"/etc/bluetooth/rfcomm.conf". Dort kann man eine Menge von
Devices eintragen. In jedem Block steht die Hardwareadresse sowie der
"channel". Beide Daten wurden oben bereits ermittelt.
- Durch Aufruf von "rfcomm bind 0" (für Device 0 in rfcomm.conf) wird
ein Device "/dev/rfcomm0" angelegt.
- Nun muß man den PPP-Daemon konfigurieren, über "/dev/rfcomm0"
eine Verbindung aufzubauen. Ich habe natürlich eine
GPRS-Verbindung eingetragen, zur Konfiguration ziehe man das Handbuch
der Distribution zu Rate.
- Man muß natürlich auch das MFT dazu bringen, eine Verbindung zum
BT-Dongle herzustellen bzw. zuzulassen. Im Handbuch ist erläutert, was man
tun muß, wann die PIN eingegeben werden muß, und wie man es anstellt,
daß das Gerät nach der ersten Verbindung die Daten speichert, um später
die Verbindung ohne weitere Nachfrage zuzulassen.
- Startet man den PPP-Daemon, wird eine Bluetooth-Verbindung hergestellt
(der obige Aufruf von rfcomm legt nur ein Device an, die Verbindung wird
da noch nicht hergestellt).
- Mit "rfcomm release 0" wird das Device wieder gelöscht. Dabei darf
die PPP-Verbindung natürlich nicht mehr aktiv sein. Es ist auch ratsam,
das Device vor dem Abziehen des BT-Dongles wieder zu entfernen.
- Hat der Verbindungsaufbau funktioniert, sollte man die Sicherbarkeit des
Telefons nach außen auf jeden Fall wieder abschalten. Die Verbindung mit
der Linux-Box klappt nun auch ohne diese Einstellung.
Suse 9.1:
WLAN
über eine PCMCIA-Karte der Firma Netgear mit integriertem
"prism54"-Chipsatz
(WG511)
(allerdings nur mit WEP-Verschlüsselung)
funktioniert auch recht reibungslos.
Der "prism"-Treiber
ist seit 2.6.5 im Kernel enthalten, Suse liefert ihn in seinem 2.6.4-Kernel
aber auch schon aus. Der Treiber (hier zu seiner
Homepage
) benötigt zum Betrieb die Firmware der Karte, diese muss bei jedem
Einstecken auf die Karte geladen werden. Zur Zeit muss diese Firmware
noch aus dem Windowstreiber(archiv) extrahiert werden. Auf der o.g. Seite
steht, wie das geht. In Yast2-Online-Update gibt es dafür aber auch
einen Updatepunkt, der dies automatisch tut.
Nach dem Einstecken kann man dann das Interface über Yast2 konfigurieren.
Per Hand geht das über iwconfig und ifconfig. Unter KDE gibt es den
kwifimanager.
Da das WEP-Verschlüsselungsverfahren allerdings inzwischen mehr als
unsicher
ist, wollte ich entsprechend auf das sichere WPA-Verfahren
umstellen. Dies hat Probleme bereitet, da es mit dem
Prism54-Treiber Schwierigkeiten gibt: Obwohl es gehen sollte, hats halt nicht
geklappt. Auf Anregung in den News habe ich mit daraufhin eine
Karte mit Atheros-Chipsatz gekauft
(DWL-G650 von D-Link)
und dann folgendes
installiert und konfiguriert:
- Den
madwifi-Treiber
für Atheros-basierte WLAN-Karten (bislang keine USB-Sticks)
- Den
WPA Supplicant
, der (unter Linux) für die WPA-Verschlüsselung zuständig ist.
Der Kartentreiber wird dabei nur zur Ansteuerung der Karte
verwendet, nicht für die Verschlüsselung. Der wpa supplicant klinkt
sich dabei in den Treiber ein, kann auf Wunsch das gesamte Procedere
mit AP-Suche und "Einwahl" durchführen und kümmert sich dann um
die Verschlüsselung. Neben ein paar Kommandozeilenparametern entnimmt
der supplicant alle Verschlüsselungsdaten aus seiner Konfigurationsdatei,
die auch die Daten mehrerer AP enthalten kann.
©2020 Holger Thiele
generiert aus "linuxlaptop.template" vom 01 09 2007
|