Woran kann es liegen wenn IrDA auf einem ThinkPad T23 unter Ubuntu Linux 7.4 nicht mehr funktioniert?
May 5th, 2008 by matthias
Symptom: »gammu –identify« meldet »Keine Rückmeldung. Telefon möglicherweise nicht angeschlossen?«. Das tritt auf unabhängig davon ob irda0 in der Ausgabe von ifconfig erscheint.
In der Ausgabe von »dpkg-reconfigure irda-utils« wird erwähnt: »Wenn FIR benutzt werden soll, müssen auch die entsprechenden Treibermodule gebaut werden. Die hier angebotenen Module können sich von den im laufenden Kernel verfügbaren Modulen unterscheiden. In diesem Fall müssen /etc/modutils/irda-utils (2.4) oder /etc/modprobe.d/irda-utils (2.6) von Hand bearbeitet werden.«
In /etc/modprobe.d/irda-utils steht nach der (korrekten, ehemals funktionierenden) Konfiguration des Pakets irda-utils:
-
# Other aliases are defined in the modules themselves
-
alias char-major-10-187 irnet
-
-
# For FIR device
-
-
options nsc-ircc dongle_id=0×09 io=0×2f8 irq=3 dma=3
-
alias irda0 nsc-ircc
irda0 erscheint nur in der Ausgabe von ifconfig wenn die irda-utils (genauer: der Service irattach) laufen, also wenn »/etc/init.d/irda-utils restart« ausgeführt wurde. irattach verbraucht dabei nach dem Starten die gesamte Rechenzeit, was jedoch interessanterweise durch ein »gammu –identify« behoben wird, selbst wenn überhaupt kein Mobiltelefon über IrDA angeschlossen ist. Lässt man die Optionen »io=0×2f8 irq=3 dma=3« aus so ist die »Störung« nur kurz und behebt sich selbst.
Möglicher Fehler: »/etc/init.d/irda-setup start« führt zur Fehlermeldung
»/etc/init.d/irda-setup: line 76: echo: write error: Device or resource busy
/etc/init.d/irda-setup: line 77: echo: write error: Device or resource busy«
Das betrifft jedoch nur ein (eventuell nicht erforderliches) Schreiben auf das BIOS-Device o.ä..
Führt man irdadump aus während »/etc/init.d/irda-utils restart« so erkennt man dass die IrDA-Schnittstelle tatsächlich Pakete sendet. Die Ausgabe enthält etwas wie:
-
22:03:59.906770 xid:cmd 078037ad > ffffffff S=6 s=0 (14)
oder
-
22:04:26.902580 xid:cmd 86aca068 > ffffffff S=6 s=0 (14)
Die Konfiguration funktioniert wenn man ausführt:
-
sudo rmmod nsc-ircc
-
sudo modprobe nsc-ircc dongle_id=0×9
-
sudo irattach irda0 -s
Siehe die Beispiele in »man irattach«.
Das erzeugt ein Netzwerk-Gerät irda0, sichtbar in der Ausgabe von ifconfig.
Es funktioniert auch wenn man »irattach irda0 -s« oder »irattach irda0« ausführt und /etc/modprobe.d/irda-utils den korrekten Inhalt hat. Das ist also die korrekte Art den Daemon irattach zu starten. Nichts anderes müsste also in
/etc/init.d/irda-utils geschehen. Dort wird ausgeführt:
-
start-stop-daemon –start –quiet –pidfile /var/run/irattach.pid –exec /usr/sbin/irattach — irda0 none -s
Das ist korrekt und funktioniert nun auch (warum aber nicht auch vorher?). Auch »/etc/init.d/irda-setup start« funktioniert. Ein Symptom des Fehlers scheint zu sein wenn »/etc/init.d/irda-utils restart« alle Rechenzeit aufbraucht - das trat nun nämlich nicht mehr auf und auch nicht beim manuellen Ausführen von irattach.
Eventuell hat ein »irattach /dev/ttyS0« (zum Betreiben der IR-Schnittstelle im SIR-Modus) das Problem behoben. Wohl dadurch entstand dauerhaft ein irda1-Netzwerkgerät.
Das Problem liegt nicht an Suspend-to-RAM denn irda0 funktioniert danach weiter wenn es davor funktionierte.
Posted in ThinkPad T23, Ubuntu Linux |