Mittwoch, 24. März 2010

Auf Auerswald-ISDN-Geräte unter Ubuntu 9.10 mit USB zugreifen

Die Auerswald-Konfigurationssoftware (COMset, COMfortelSet usw.) läuft zwar problemlos unter Ubuntu Linux 9.10 (Karmic Koala); allerdings bekommt man Probleme, wenn man versucht, die Konfiguration via USB auf das Gerät (ISDN-Anlage oder Systemtelefon) zu speichern. Die Auerswald-Support-Seite schreibt hierzu lediglich, dass es sich dabei um ein Problem mit den Zugriffsrechten auf die USB-Ports handelt und dass man für weitere Infos doch bitte Google benutzen möge. Wenn man das tut, ist man allerdings ne ganze Zeit erstmal mit Googeln beschäftigt, muss sich durch diverse Foren kämpfen und wird so manche unvollständige oder veraltete Information finden.
In der Hoffnung, dass Google dereinst diesen Blog-Eintrag in den Suchindex aufnehmen wird, beschreibe ich hier, wie man den Zugriff regeln kann. Wenn ich mich recht entsinne, hatte ich das auch schon unter früheren Ubuntu-Versionen so gemacht; getestet habe ich das Folgende aber nur unter Ubuntu 9.10.

0. Ggf. checken, ob es wirklich an den Zugriffsrechten liegt

Was hier in Schritt 0 beschrieben ist, ist nicht unbedingt nötig – wem es zu kompliziert klingt, der kann es erstmal weglassen.
  1. Auerswald-USB-Gerät ggf. ausstecken und ein paar Sekunden warten
  2. USB-Gerät wieder einstecken
  3. Jetzt schaut man nach, an welchem USB-Device sich zuletzt was getan hat, z.B. so:
    ls -lt /dev/bus/usb/*
    und das liefert als Ausgabe:
    /dev/bus/usb/003:
    insgesamt 0
    crw-rw-r-- 1 root root 189, 259 2010-03-23 23:00 004
    crw-rw-r-- 1 root root 189, 256 2010-03-21 21:23 001

    /dev/bus/usb/002:
    insgesamt 0
    crw-rw-r-- 1 root root 189, 129 2010-03-22 22:41 002
    crw-rw-r-- 1 root root 189, 128 2010-03-21 21:23 001

    /dev/bus/usb/001:
    insgesamt 0
    crw-rw-r-- 1 root root 189, 0 2010-03-21 21:23 001
    Wie man an den Zeitstempeln (kursiv hervorgehoben) erkennt, hat sich also zuletzt was an der Treiber-Datei /dev/bus/usb/003/004 (fett) getan. Achtung: Diese Datei heißt nur auf meinem Rechner so; auf einem anderen Rechner stehen da todsicher zwei andere Nummern! Wie man an der Ausgabe von ls ebenfalls sieht, ist die Datei nur für root sowie Benutzer der Gruppe root schreibbar, aber nicht für andere Benutzer (unterstrichen), weil am Ende ...r-- und leider nicht ...rw- steht. Damit die Auerswald-Software mit dem Gerät kommunizieren kann, muss das Device aber auch für Normaluser schreibbar sein.
  4. Das ist am einfachsten zu erreichen, wenn man jetzt die schuldige Device-Datei für alle schreibbar macht:
    sudo chmod a+rx /dev/bus/usb/003/004 (Warnung von oben beachten!)
  5. Austesten, ob es damit jetzt klappt: Auerswald-Software schließen, kurz warten, wieder aufmachen, ausprobieren.
  6. Verständlicherweise will man diese Fingerübung nicht jedesmal von Hand machen müssen. Wie das Ganze automatisiert wird, ist in den folgenden Schritten beschrieben.

1. Geräte-ID herausfinden

So, jetzt geht's richtig los: Wir wollen dem Linux jetzt beibringen, dass auch normale Benutzer auf Auerswald-Geräte zugreifen dürfen. Dazu müssen wir erstmal den genauen USB-Device-Code des Gerätes herauskiregen.
Dazu in der Shell eingeben:
lsusb | grep Auerswald
Je nach angeschlossenem Gerät sollte man dann einen Eintrag sehen, der so aussieht:
Bus 003 Device 004: ID 09bf:00f1 Auerswald GmbH & Co. KG COMfort System Telephones
Wichtig ist der von mir unterstrichene Teil: Vor dem Doppelpunkt steht die Hersteller-ID (dürfte mutmaßlich für alle Auerswald-Produkte wohl 09bf sein, aber lieber selber nochmal überprüfen); hinter dem Doppelpunkt steht die Geräte-ID – und die ist für die verschiedenen Modelle unterschiedlich. Obiges Beispiel 00f1 steht beispielsweise für das alte Systemtelefon COMfort 2000; eine 4410USB soll 00db haben; eine COMpact 2206USB vermutlich was anderes, usw. usw. Man kommt also nicht drum rum, selber nachzuschauen.

2. Automatische Zugriffsrechtanpassung konfigurieren

Jetzt muss man dafür sorgen, dass der udevd die Zugriffsrechte auf die entsprechenden Gerätedabeien in /dev/bus/usb/ aufweicht, sobald ein Auerswald-Gerät angeschlossen wird. Hierzu legt man mit root-Rechten eine Datei /etc/udev/rules.d/auerswald.rules an (man könnte sie auch anders nennen, wenn man will). Wer nicht weiß, wie das geht, tippt einfach
sudo nano /etc/udev/rules.d/auerswald.rules
Dieser Editor sollte hoffentlich selbsterklärend sein.
In diese Datei schreibt man folgendes hinein:

SUBSYSTEM!="usb_device", ACTION="add", GOTO="auerswald_rules_end"

# Fuer Auerswald COMfort 2000:
# (Bei anderen Auerswald-Geraeten muss man GARANTIERT andere Hex-Werte eintragen!)
SYSFS{idVendor}=="09bf", SYSFS{idProduct}=="00f1", MODE="666"

LABEL="auerswald_rules_end"
Anschließend speichert man die Datei ab.

3. Ausprobieren

  1. Ggf. noch laufende Auerswald-Software schließen
  2. Auerswald-USB-Gerät abstecken
  3. Sicherheitshalber ein paar Sekunden warten
  4. Auerswald-USB-Gerät wieder einstecken
  5. Sicherheitshalber ein paar Sekunden warten
  6. Auerwald-Software wieder starten
  7. Ausprobieren, ob man auf das Gerät zugreifen kann

4. Funktioniert noch nicht?

Angeblich soll der udevd automatisch erkennen, dass die Konfiguration geändert wurde. Hat bei mir aber nicht geklappt, und ich hatte immer noch keine passenden Zugriffsrechte. In diesem Fall muss man mit
sudo restart udev
den udevd etwas unsanfter dazu veranlassen, gefälligst seine Konfiguration neu einzulesen. Danach wieder das in Punkt 3 beschriebene Spielchen mit Aus- und Einstecken.

Man beachte übrigens, dass für die ganze Sache kein Systemneustart erforderlich ist! Auch das ist einer der Vorteile von Linux gegenüber Windows: man muss nicht ständig rebooten...

Suchmaschinenfutter, damit man es findet: Linux, Ubuntu, 9.10, Karmic, Koala, Auerswald, COMpact, COMfort, COMfortel, 2206, 4410, 1000, 1200, 2000, 1500, 2500, 4406, USB, Java, COMset, COMfortelSet, COMlist, COMfortSMS, COMfortelMelodie, COMtools, SoftLCR

1 Kommentar:

Unknown hat gesagt…

Hervorragend!

Danke Wutzofant, das war die Lösung, nach der ich suchte !

WK