Zugriff auf Auerswald-Geräte über USB für Mac OS X und Linux Kernel ab 2.6
In der Vergangenheit erfolgte der Zugriff auf Auerswald-Geräte (Tk-Anlagen oder Telefone) über DLLs (Windows) oder über ein Kernel Treiber Modul (Linux). Für Macintosh, BSD oder andere Betriebssysteme bestand leider keine Zugriffsmöglichkeit über USB.
Seit Kurzem gibt es ein "open source" Projekt "LIBUSB" unter http://libusb.sourceforge.net
LIBUSB ist eine Systembibliothek, die den Zugriff auf USB im Userspace ermöglicht. Die Auerswald-Java-Programme greifen mittels JNI (Java Native Interface) auf diesen Treiber zu.
Voraussetzungen
Auf aktuellen Distributionen wie beispielsweise OpenSuse 10.3 ist die LIBUSB bereits vorinstalliert.
Unter Mac OS X muss die Library den Programmen beigefügt werden (wird durch Installation hinzugefügt).
Zurzeit wird die LIBUSB Version 0.1.x unterstützt. Andere Versionen können eine Neukompilierung des sogenannten JNI Stubs, einem kleinen Teil eines Java-Programms, der den JNI-Zugriff übernimmt, erfordern (siehe weiter unten).
Die Bedienprogramme (Java) werden mit einem vorkompilierten JNI Stub ausgeliefert (AuerUsbJNINative).
Je nach Betriebssystem heißt dieser JNI Stub etwas anders:
Linux: libAuerUsbJNINative.so
Mac OS X: libAuerUsbJNINative.jnilib
Zugriffsrechte
In den meisten Unix-basierten Systemen ist der Zugriff auf USB-Geräte für nicht-Root-Benutzer verboten. Aufgrund dessen gibt es verschiedene Ansätze, Zugriff auf USB-Geräte zu erlangen:
Generell ist diese Vorgehensweise problemlos durchführbar.
Dennoch ist sie nicht zu empfehlen, da sie ein beachtliches Sicherheitsrisiko darstellt.
Diese Vorgehensweise ist distributionsabhängig.
Unter der Distribution OpenSuse 10.3 beispielsweise wird udev genutzt, um den Zugriff auf USB-Geräte einzuschränken. Gehen Sie in diesem Fall folgendermaßen vor:
- Unter dem Pfad /etc/udev/rules.d finden Sie die Datei "50-udev-default.rules"
- Öffnen Sie die Datei 50-udev-default.rules mit einem Editor.
- Suchen Sie in der Datei den folgenden Text:
libusb device access
SUBSYSTEM=="usb_device", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k;\K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'",\NAME="%c", MODE="0664"
- Stellen Sie sicher, dass Sie Schreibleserechte haben.
- Ändern Sie die Zahl hinter "MODE=" von "0664" (siehe oben) auf "0666". Dadurch wird allen Benutzern der Zugriff auf sämtliche USB-Geräte gewährt.
Diese Vorgehensweise ist distributionsabhängig und bedarf diverser Anpassungen. Wir empfehlen hier die Suche über eine Suchmaschine (z. B. Google) mit den Suchworten "libusb" und "non-root". Sie werden viele nützliche Informationen zum Setzen der Konfigurationsparameter und Zugriffsrechte finden.
Neukompilierung
Der Source Code für die JNI Library wird jedem Java Programm beigefügt.
Sollten Sie ein Betriebssystem haben, das nicht direkt unterstützt wird, können Sie sich durch Kompilierung eine eigene JNI Library erzeugen.
Sie benötigen dazu ein JAVA JDK für die JNI Header und einen C++ Compiler zum Kompilieren der Bibliothek. Außerdem muss die LibUsb und deren Header ("usb.h") installiert sein.
Zwei Makefiles sind bereits beigefügt. Für nicht unterstützte Betriebssysteme kopieren Sie sich ein Makefile und passen Sie den JDK_PATH und den Pfad zu dem LibUsb Header (usb.h) im Makefile an.
Kompilieren Sie die Library mit "make -f Makefile.<platform>" und kopieren Sie das Ergebnis in das Verzeichnis Ihres Java Programms. Überschreiben Sie die bereits vorhandene JNI Library.
HINWEIS:
Die hier beschriebene Neukompilierung ist ausschließlich unter Linux durchzuführen.
Um Schäden am System zu vermeiden, sollte eine Neukompilierung nur von einem Sachkundigen durchgeführt werden.
Zugriff auf Auerswald-Geräte über USB für Mac OS X und Linux Kernel ab 2.6
In der Vergangenheit erfolgte der Zugriff auf Auerswald-Geräte (Tk-Anlagen oder Telefone) über DLLs (Windows) oder über ein Kernel Treiber Modul (Linux). Für Macintosh, BSD oder andere Betriebssysteme bestand leider keine Zugriffsmöglichkeit über USB.
Seit Kurzem gibt es ein "open source" Projekt "LIBUSB" unter http://libusb.sourceforge.net
LIBUSB ist eine Systembibliothek, die den Zugriff auf USB im Userspace ermöglicht. Die Auerswald-Java-Programme greifen mittels JNI (Java Native Interface) auf diesen Treiber zu.
Voraussetzungen
Auf aktuellen Distributionen wie beispielsweise OpenSuse 10.3 ist die LIBUSB bereits vorinstalliert.
Unter Mac OS X muss die Library den Programmen beigefügt werden (wird durch Installation hinzugefügt).
Zurzeit wird die LIBUSB Version 0.1.x unterstützt. Andere Versionen können eine Neukompilierung des sogenannten JNI Stubs, einem kleinen Teil eines Java-Programms, der den JNI-Zugriff übernimmt, erfordern (siehe weiter unten).
Die Bedienprogramme (Java) werden mit einem vorkompilierten JNI Stub ausgeliefert (AuerUsbJNINative).
Je nach Betriebssystem heißt dieser JNI Stub etwas anders:
Linux: libAuerUsbJNINative.so
Mac OS X: libAuerUsbJNINative.jnilib
Zugriffsrechte
In den meisten Unix-basierten Systemen ist der Zugriff auf USB-Geräte für nicht-Root-Benutzer verboten. Aufgrund dessen gibt es verschiedene Ansätze, Zugriff auf USB-Geräte zu erlangen:
Generell ist diese Vorgehensweise problemlos durchführbar.
Dennoch ist sie nicht zu empfehlen, da sie ein beachtliches Sicherheitsrisiko darstellt.
Diese Vorgehensweise ist distributionsabhängig.
Unter der Distribution OpenSuse 10.3 beispielsweise wird udev genutzt, um den Zugriff auf USB-Geräte einzuschränken. Gehen Sie in diesem Fall folgendermaßen vor:
- Unter dem Pfad /etc/udev/rules.d finden Sie die Datei "50-udev-default.rules"
- Öffnen Sie die Datei 50-udev-default.rules mit einem Editor.
- Suchen Sie in der Datei den folgenden Text:
libusb device access
SUBSYSTEM=="usb_device", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k;\K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'",\NAME="%c", MODE="0664"
- Stellen Sie sicher, dass Sie Schreibleserechte haben.
- Ändern Sie die Zahl hinter "MODE=" von "0664" (siehe oben) auf "0666". Dadurch wird allen Benutzern der Zugriff auf sämtliche USB-Geräte gewährt.
Diese Vorgehensweise ist distributionsabhängig und bedarf diverser Anpassungen. Wir empfehlen hier die Suche über eine Suchmaschine (z. B. Google) mit den Suchworten "libusb" und "non-root". Sie werden viele nützliche Informationen zum Setzen der Konfigurationsparameter und Zugriffsrechte finden.
Neukompilierung
Der Source Code für die JNI Library wird jedem Java Programm beigefügt.
Sollten Sie ein Betriebssystem haben, das nicht direkt unterstützt wird, können Sie sich durch Kompilierung eine eigene JNI Library erzeugen.
Sie benötigen dazu ein JAVA JDK für die JNI Header und einen C++ Compiler zum Kompilieren der Bibliothek. Außerdem muss die LibUsb und deren Header ("usb.h") installiert sein.
Zwei Makefiles sind bereits beigefügt. Für nicht unterstützte Betriebssysteme kopieren Sie sich ein Makefile und passen Sie den JDK_PATH und den Pfad zu dem LibUsb Header (usb.h) im Makefile an.
Kompilieren Sie die Library mit "make -f Makefile.<platform>" und kopieren Sie das Ergebnis in das Verzeichnis Ihres Java Programms. Überschreiben Sie die bereits vorhandene JNI Library.
HINWEIS:
Die hier beschriebene Neukompilierung ist ausschließlich unter Linux durchzuführen.
Um Schäden am System zu vermeiden, sollte eine Neukompilierung nur von einem Sachkundigen durchgeführt werden.
Zugriff auf Auerswald-Geräte über USB für Mac OS X und Linux Kernel ab 2.6
In der Vergangenheit erfolgte der Zugriff auf Auerswald-Geräte (Tk-Anlagen oder Telefone) über DLLs (Windows) oder über ein Kernel Treiber Modul (Linux). Für Macintosh, BSD oder andere Betriebssysteme bestand leider keine Zugriffsmöglichkeit über USB.
Seit Kurzem gibt es ein "open source" Projekt "LIBUSB" unter http://libusb.sourceforge.net
LIBUSB ist eine Systembibliothek, die den Zugriff auf USB im Userspace ermöglicht. Die Auerswald-Java-Programme greifen mittels JNI (Java Native Interface) auf diesen Treiber zu.
Voraussetzungen
Auf aktuellen Distributionen wie beispielsweise OpenSuse 10.3 ist die LIBUSB bereits vorinstalliert.
Unter Mac OS X muss die Library den Programmen beigefügt werden (wird durch Installation hinzugefügt).
Zurzeit wird die LIBUSB Version 0.1.x unterstützt. Andere Versionen können eine Neukompilierung des sogenannten JNI Stubs, einem kleinen Teil eines Java-Programms, der den JNI-Zugriff übernimmt, erfordern (siehe weiter unten).
Die Bedienprogramme (Java) werden mit einem vorkompilierten JNI Stub ausgeliefert (AuerUsbJNINative).
Je nach Betriebssystem heißt dieser JNI Stub etwas anders:
Linux: libAuerUsbJNINative.so
Mac OS X: libAuerUsbJNINative.jnilib
Zugriffsrechte
In den meisten Unix-basierten Systemen ist der Zugriff auf USB-Geräte für nicht-Root-Benutzer verboten. Aufgrund dessen gibt es verschiedene Ansätze, Zugriff auf USB-Geräte zu erlangen:
Generell ist diese Vorgehensweise problemlos durchführbar.
Dennoch ist sie nicht zu empfehlen, da sie ein beachtliches Sicherheitsrisiko darstellt.
Diese Vorgehensweise ist distributionsabhängig.
Unter der Distribution OpenSuse 10.3 beispielsweise wird udev genutzt, um den Zugriff auf USB-Geräte einzuschränken. Gehen Sie in diesem Fall folgendermaßen vor:
- Unter dem Pfad /etc/udev/rules.d finden Sie die Datei "50-udev-default.rules"
- Öffnen Sie die Datei 50-udev-default.rules mit einem Editor.
- Suchen Sie in der Datei den folgenden Text:
libusb device access
SUBSYSTEM=="usb_device", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k;\K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'",\NAME="%c", MODE="0664"
- Stellen Sie sicher, dass Sie Schreibleserechte haben.
- Ändern Sie die Zahl hinter "MODE=" von "0664" (siehe oben) auf "0666". Dadurch wird allen Benutzern der Zugriff auf sämtliche USB-Geräte gewährt.
Diese Vorgehensweise ist distributionsabhängig und bedarf diverser Anpassungen. Wir empfehlen hier die Suche über eine Suchmaschine (z. B. Google) mit den Suchworten "libusb" und "non-root". Sie werden viele nützliche Informationen zum Setzen der Konfigurationsparameter und Zugriffsrechte finden.
Neukompilierung
Der Source Code für die JNI Library wird jedem Java Programm beigefügt.
Sollten Sie ein Betriebssystem haben, das nicht direkt unterstützt wird, können Sie sich durch Kompilierung eine eigene JNI Library erzeugen.
Sie benötigen dazu ein JAVA JDK für die JNI Header und einen C++ Compiler zum Kompilieren der Bibliothek. Außerdem muss die LibUsb und deren Header ("usb.h") installiert sein.
Zwei Makefiles sind bereits beigefügt. Für nicht unterstützte Betriebssysteme kopieren Sie sich ein Makefile und passen Sie den JDK_PATH und den Pfad zu dem LibUsb Header (usb.h) im Makefile an.
Kompilieren Sie die Library mit "make -f Makefile.<platform>" und kopieren Sie das Ergebnis in das Verzeichnis Ihres Java Programms. Überschreiben Sie die bereits vorhandene JNI Library.
HINWEIS:
Die hier beschriebene Neukompilierung ist ausschließlich unter Linux durchzuführen.
Um Schäden am System zu vermeiden, sollte eine Neukompilierung nur von einem Sachkundigen durchgeführt werden.
Installations-Voraussetzungen:
Folgende Voraussetzungen muss Ihr PC für die Installation der Auerswald-Programme erfüllen.
Hinweise: Sie benötigen die Zugriffsrechte auf USB-Geräte. Sollten Sie sich nicht sicher sein, ob Sie über die notwendigen Zugriffsrechte verfügen, testen Sie die Programme mit Root-Rechten.
Was Sie tun können, wenn Sie nicht weiterkommen
Neue Leistungsmerkmale: