This page (revision-5) was last changed on 26-Sep-2008 10:31 by ThomasBayen 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
5 26-Sep-2008 10:31 12 KB ThomasBayen to previous Beschreibung zur aktuelleren Software
4 25-Sep-2008 12:37 11 KB ThomasBayen to previous | to last Tagging und Formatierung
3 07-Sep-2007 15:48 11 KB Ernst May-Jung to previous | to last
2 13-Nov-2006 16:39 10 KB MarkusMonderkamp to previous | to last für JSPWiki mit Thomas' und Peter's Filter
1 03-Oct-2006 21:29 10 KB UnknownAuthor to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

= Auerswald-Telefonanlage unter Linux =

Als ich auf der Suche nach einer neuen Telefonanlage für unsere
>>Firma war, weil auch wir endlich <<
>>das 21. Jahrhundert erreichen wollten (ISDN und so), bemerkte ich<<
>>voller Freude, dass es einen<<
>>Hersteller gibt, der auch komplette Linux-Unterstützung verspricht:<<
>>Auerswald. Mit der von uns<<
>>erworbenen COMmander-Anlage bin ich bisher hochzufrieden. Außerdem<<
>>scheint die Firma darauf<<
>>bedacht zu sein, neue Technologien zügig einzuarbeiten. So ist die
Anlage z.B. die erste überhaupt, <<
>>mit der man SMS aus dem Festnetz versenden kann.

Als ich die CD mit der Software in die Hand nahm, habe ich zuerst<<
>>kurz überlegt, ob ich die Windows-<<
>>oder die Linux-Version benutze. Ich habe zuerst in den<<
>>Linux-Bereich geklickt und gesehen, dass<<
>>dort alle wichtigen Programme ebenfalls stehen. Einige Hürden waren<<
>>allerdings zu überbrücken.<<
>>Da die Anlage per USB angeschlossen wird, muss ein Kernel-Modul<<
>>compiliert werden, dazu<<
>>muss man die Kernel-Sourcen installieren. Außerdem müssen zwei<<
>>verschiedene Java-Versionen<<
>>installiert werden... Da ich es eilig hatte, habe ich also zur
Windows-Version gegriffen. (Das war<<
>>ein Lehrstück, was bei Linux noch verbessert werden muss!) Nach<<
>>erfolgter Konfiguration der Anlage <<
>>habe ich noch ein Siemens Gigaset-Telefon eingerichtet (Software<<
>>natürlich nur unter Windows). <<
>>Eingespielt, USB-Treiber, CAPI, fertig. Danach wollte ich noch was
in der Anlage ändern -<<
>>nix ging mehr. Langer Rede kurzer Sinn - ich habe es nach zwei<<
>>Stunden Versuchen nicht<<
>>geschafft, die Anlage unter Windows wieder anzusprechen oder den<<
>>Treiber so zu löschen,<<
>>das ich ihn neu installieren konnte. (Das war dann das Lehrstück,<<
>>warum man kein Windows<<
>>für sowas nehmen soll...). Dann habe ich mir gesagt: In der Zeit<<
>>hättest Du das auch unter
Linux gekonnt. :-( Daher dieser Artikel!

Dieser Artikel soll übrigens nicht bedeuten, daß die Doku von<<
>>Auerswald schlecht wäre. Also dort<<
>>ruhig auch mal reinschauen! Trotzdem habe ich die Installation<<
>>nochmal aus meiner Sicht und <<
>>damit vor allem aus Sicht eines Debian-Linux-Systems geschildert.


== Linux-Software ==
<<
>>Das Grundprinzip der Linux-Konfigurations-Software ist, daß die<<
>>Software in Java geschrieben ist.<<
>>Das spart Entwicklungszeit und sorgt dafür, daß es immer gleich<<
>>aktuelle Versionen für alle<<
>>Plattformen gibt. Vor den schnellen Erfolg hat der Liebe Gott (und<<
>>Auerswald) aber die Installation<<
>>von Basiskomponenten gesetzt:

=== Grundlagen ===
Ich habe die Software auf einem Debian Woody System installiert.<<
>>Auf der Auerswald-CD ist nur<<
>>von Suse-Linux die Rede, daher hier die Debian-Version.

Zuerst mal benötigt man einen passenden Kernel (mind. 2.4.x). Dies<<
>>kann man z.B. wie unter <<
>>DebianKernelKompilieren beschrieben erreichen. Es ist darauf zu
achten, daß USB in den<<
>>Kernel einkompiliert ist (...ob das beim Standard-Woody-Kernel der<<
>>Fall ist, kann ich im Moment<<
>>nicht sagen, ich vermute aber Ja). Dies kann man prüfen, indem man<<
>>nachschaut, ob das <<
>>Verzeichnis ''/proc/bus/usb'' existiert.

Zusätzlich zur USB-Unterstützung im Kernel benötigt man noch einen<<
>>Daemon, der die <<
>>USB-Schnittstelle überwacht und bei Bedarf passende Treiber lädt.<<
>>Dazu gibt es zwei <<
>>passende Debian-Pakete: ''usbmgr'' und ''hotplug''. Ich selber
setze 'hier 'hotplug'' ein.

Ausserdem benötigt man eine Java-Laufzeitumgebung. Ich selber habe<<
>>das Blackdown <<
>>Java-RE 1.3.1 installiert. Da das unter Debian nicht so einfach
ist, kann man unter<<
>>JavaUnterDebian näheres hierzu erfahren. Für einige
Auerswald-Programme (z.B. <<
>>COMfortMelodie) ist ein Java1.1 nötig. Hierzu habe ich das<<
>>Debian-Paket ''jdk1.1-dev''<<
>>installiert. Da die Auerswald-Programme aber scheinbar nach einer<<
>>anderen Version des <<
>>Sun-Java suchen, habe ich noch folgende Links angelegt:
<pre>
 ln -s /usr/lib/j2sdk1.3/ /usr/lib/SunJava2
 ln -s /usr/lib/jdk1.1/ /usr/lib/SunJava1
</pre>

Es reicht auch, im Auerswald-Verzeichnis die Datei<<
>>''JavaVersion1.3.rc'' anzulegen bzw. zu <<
>>überschreiben und dort das Java-Installationsverzeichnis
einzutragen, z.B. so:
<pre>
JAVA_HOME=/opt/java/jre1.3.1_15
</pre>
(das Beispiel bezieht sich auf ein komplett manuell installiertes<<
>>JRE 1.3.1 von Sun).

Wer bereits ein JDK 1.4 oder 1.5 (alias J2SE 5.0) installiert hat:<<
>>die Java-1.3-Programme von Auerswald laufen damit auch.<<
>>Man muss dafür JAVA_HOME wie beschrieben manuell in der<<
>>''JavaVersion1.3.rc'' setzen.

=== USB-Treiber ===

Um den USB-Treiber für das Auerswald-Telefon übersetzen zu können,<<
>>benötigt man die <<
>>Kernel-Sourcen, die auch die benutzte Kernel-Configuration (Datei<<
>>''".config"''). Hat man den <<
>>Kernel sowieso selber angepasst und kompiliert wie in<<
>>DebianKernelKompilieren beschrieben, <<
>>so sind alle Dateien am richtigen Platz und werden automatisch<<
>>gefunden.

Falls man einen anderen Rechner zum kompilieren benutzt, als den,<<
>>auf dem der Treiber später<<
>>laufen soll, muss der Kompilier-Rechner entweder einen identischen<<
>>Kernel haben oder man<<
>>kann mit ''export KERNELDIR=/pfad/zu/den/kernelsourcen/...'' einen<<
>>anderen Kernel benutzen.

Das Paket '''auerusb-0.9.12.tgz''', das auf der Auerswald-CD (oder<<
>>im Internet) ist, habe ich nach <<
>>/usr/src kopiert und dort mit

<<<pre>
>>  tar xzf auerusb-0.9.12.tgz
 cd auerusb-0.9.12
 make
 mkdir /dev/usb           # weiss nicht, warum; scheint bei SuSe<<
>>so installiert zu sein
 make install               # spätenstens dieser Befehl als root
<<</pre>>>
<<
>>entpackt, kompiliert und installiert. Dabei erscheinen normale<<
>>Meldungen und die Aufrufzeile des<<
>>Compilers, jedoch keinerlei Fehler- oder Warnmeldungen.

Testen kann man das Ganze, indem man sich mit

 tail -f /var/log/syslog

die System-Logdatei ausgeben lässt. Dann steckt man das Telefon<<
>>ein. Passiert gar nichts, stimmt<<
>>was mit der Kernel-Unterstützung nicht. Kommen einige Zeilen vom<<
>>USB-Daemon (hotplug), so<<
>>läuft dieser schonmal richtig. Steht da dann noch etwas von<<
>>"auerswald", dann sollte alles stimmen.<<
>>Auch ein Blick in das Verzeichnis ''/proc/bus/usb'' kann sehr<<
>>interessant sein (Wobei ein geladener
"driver" noch lange kein installiertes "device" bedeutet). Evtl.<<
>>kann man versuchen, das Modul mit<<
>>'''modprobe auerswald''' von Hand zu laden (Wenn das hilft, ist das<<
>>ein Fehler in der Konfiguration<<
>>von hotplug bzw. usbmgr, man muss ggf. nach jedem Update "make<<
>>install" neu aufrufen). Mit ''lsmod''
kann man die vom Kernel geladenen Module ansehen. Ist das Modul<<
>>''auerswald'' dabei, ist das <<
>>auch ein gutes Zeichen.

Der Auerswald-Treiber ist für Linux 2.4.<<
>>Unter Linux 2.6 kann man den im Kernel vorhandenen (als<<
>>experimentell markierten) Treiber nehmen.<<
>>Dieser unterstützt allerdings nur die Konfigurationsprogramme,<<
>>nicht die Anbindung als ISDN-Interface.<<
>>Nach einem Hinweis auf der Linux-Kernel-Mailingliste habe ich
diesen gepatcht, um mehr Geräte zu <<
>>unterstützen als original (bezieht sich auf 2.6.9).<<
>>Der Patch geht so: man suche in ''drivers/usb/misc/auerswald.c''
nach der Definition von ''auerswald_ids''<<
>>und ersetze diese durch folgendes (zwei Zeilen sind hinzugekommen):

<pre>
static struct usb_device_id auerswald_ids [] = {
       { USB_DEVICE (ID_AUERSWALD, 0x00C0) },          /* COMpact<<
>>2104 USB */
       { USB_DEVICE (ID_AUERSWALD, 0x00DB) },          /* COMpact<<
>>4410/2206 USB */
       { USB_DEVICE (ID_AUERSWALD, 0x00DC) },          /* COMpact<<
>>4406 DSL */
       { USB_DEVICE (ID_AUERSWALD, 0x00DD) },          /* COMpact<<
>>2204 USB */
       { USB_DEVICE (ID_AUERSWALD, 0x00F1) },          /* Comfort<<
>>2000 System Telephone */
       { USB_DEVICE (ID_AUERSWALD, 0x00F2) },          /* Comfort<<
>>1200 System Telephone */
       { }                                             /*<<
>>Terminating entry */
};
</pre>

Inzwischen gibt es auf http://www.auerswald.de auch einen Treiber<<
>>für Linux 2.6 (aktuelle Version 2.1.9).<<
>>Der funktioniert besser als der im Kernel. Zum Compilieren reicht<<
>>die übliche Prozedur für <<
>>Module unter Linux 2.6:
<pre>
tar xzf auerusb-2.1.9.tgz
cd auerusb-2.1.9
make SUBDIRS=`pwd` -C /pfad/zum/compilierten/kernel
cp *.ko /lib/modules/`uname -a`/misc
</pre>

<em>Achtung</em>: Es hat mich (OT) ein paar Stunden<<
>>Fehlersuche gekostet, herauszufinden, dass<<
>>die Device-Nodes von dem ''makeauerdevs''-Script falsch angelegt<<
>>werden. Der Treiber verwendet<<
>>Minor-Numbers ab 112 (das ist nirgendwo im Code erkennbar, aber in<<
>>der Dokumentation versteckt<<
>>- es scheint aber auch für 2.4 und den Auerswald-Treiber<<
>>zuzutreffen?!). <<
>>Folgender Shell-Befehl zum Anlegen der Devices funktioniert:
<pre>
for i in `seq 0 15` ; do mknod -m 666 /dev/usb/auer$i c 180 `expr
112 + $i` ; done
</pre>

== Programm-Installation ==

Installation und Betrieb der eigentlichen Programme benötigen keine<<
>>root-Rechte mehr. Also habe<<
>>ich in meinem persönlichen Home-Verzeichnis die Datei
''COMset-2.3.31.tar.gz'' abgelegt und<<
>>mit
<pre>
 tar xzf COMset-2.3.31.tar.gz
</pre>
entpackt. Es entsteht ein Verzeichnis ''Auerswald''. In dieses kann<<
>>man per ''cd'' wechseln.

=== Bibliotheks-Zugriff ===
Im Programmverzeichnis befinden sich Linux-Bibliotheken, die von<<
>>dem Programm benötigt<<
>>werden. In einem normal konfigurierten Debian-System werden diese
jedoch nicht gefunden.<<
>>Dabei geht es insbesondere um den USB-Zugriff. Damit das behoben<<
>>wird, kann man entweder<<
>>die Bibliothek als root systemweit installieren, das geht mit<<
>>'''su -c "cp COMset/COMset-2.3.31/libAuerUsbJNINative.so<<
>>/usr/lib/"''', oder man stellt den
Linker richtig ein, indem man vor dem Programmstart '''export<<
>>$LD_LIBRARY_PATH=.''' eingibt<<
>>bzw. in das Startskript einfügt.

=== Start ===

Jatzt kann man mit
<pre>
 ./StartCOMSet.sh
</pre>
das Programm starten. Entsprechend laufen natürlich auch die<<
>>anderen Java-Programme der<<
>>Auerswald-MegaCD.

== Neuinstallation / Deinstallation ==
<<
>>Ich versuche immer, Pakete so sauber wie möglich in das<<
>>Debian-System einzubinden, um den <<
>>Paketmanager nicht zu verwirren. Leider ist das nie ganz möglich,<<
>>wenn man keine echten<<
>>Debian-Pakete hat (vielleicht ändert Auerswald das ja<<
>>irgendwann?!?). Daher rate ich zur <<
>>Neuinstallation insbesondere des Auerswald-USB-Treibers nach jeder<<
>>Änderung an Debian-Paketen, <<
>>die die Software beeinflussen könnten wie z.B.<<
>>Distributions-Upgrade, neuer Kernel, etc. Eine
Deinstallation sollte ebenfalls sehr vorsichtig gemacht werden.<<
>>Gelöscht werden kann dann der<<
>>Kernel-Treiber, die Library sowie alle Programme im Verzeichnis
"Auerswald".

= Probleme =
<<
>>Leider sieht es so aus, als ob die Auerswald-Entwickler eine andere<<
>>Java-Version oder andere<<
>>Fonts benutzen. Dadurch sind viele Texte abgeschnitten oder oft<<
>>auch gar nicht zu sehen. Dieses<<
>>Problem müsste entweder von Auerswald angegangen werden oder man<<
>>müsste versuchen, eine<<
>>andere JVM zu installieren.

=== Startschwierigkeiten ===
<<
>>Unter (K)Ubunu (7.04, Feisty Fawn) wollen die <<'~StartCOM...''StartCOM...'>> Skripte einfach <<
>>nicht starten. "start14.sh: not found" kommt als Fehlermeldung. Das liegt an der verwendeten Shell. Die "/bin/sh" ist bei Kubuntu verlinkt mit "/bin/dash". Die 'dash' wiederum versteht den "."-Befehl zum einlesen von Dateien, nicht. So kann "start14.sh" nicht nachgeladen werden.

Abhilfe ist einfach. Ich erkläre es am Beispiel von COMset: Die Datei "COMset/COMset-2.6.28/start.sh" zum ändern öffnen. Die oberste Zeile von "#!/bin/sh" in "#!/bin/bash" ändern. Dannach sollte es laufen.

= Hilfe / Links =
<<
>>Bei Fragen stehe ich (ThomasBayen) natürlich gerne unter<<
>>mailto:tbayen@bayen.de zur Verfügung.<<
>>Ansonsten war auch die Auerswald-Hotline<<
>>mailto:support@auerswald.de hilfsbereit und scheint an<<
>>der Erstellung einer Debian-Version interessiert zu sein.<<
Vielleicht gibts ja auch bald ein Debian-Paket?!?

* http://www.auerswald.de
* http://www.moritz-naumann.com/docs/auerswald/
<<
----

[{Tag Hardware}]