anselm.hoffmeister.be
 

hidclient

Virtuelle Bluetooth®-Tastatur und Maus

Worum geht es?

Der hidclient ist eine Software, die einen mit Bluetooth®-Adapter ausgestatteten Rechner anderen Geräten gegenüber als Bluetooth®- Eingabegerät erscheinen läßt. Ereignisse wie Tastendrücke und Mausbewegungen der angeschlossenen Geräte können - nach Verbindung mit einer Gegenstelle - weitergeleitet werden. Für den anderen Rechner/PDA/... gibt es keinen prinzipiellen Unterschied zu einer echten Tastatur.

Was braucht man?

  • Einen Linux-PC (oder Laptop, vielleicht auch PDA?) mit Bluez- Software.
    Die meisten aktuellen Distributionen sollten das bieten.
  • Ein Bluetooth®-Dongle für diesen Rechner
  • Eine Gegenstelle, die mit einer Bluetooth®- Tastatur umzugehen weiß: PC, PDA oder ähnliches.
  • Die Bluez-Header-Dateien (zum Selber-Kompilieren)
  • Die hidclient-Quellcodedateien (siehe unten).

Wie geht man vor?

  • hidclient herunterladen und entpacken:
    tar -xjf hidclient-20060725.tar.bz2
  • Programm kompilieren, Dateien an die richtige Stelle kopieren:
    make
    cp hidclient /usr/local/bin
    cp hid-sdp-record.bin /etc/bluetooth/
  • Sicherstellen, dass kein HID-Daemon mehr läft:
    killall hidd
    Dies ist notwendig, da sowohl der hidd als auch hidclient den selben "Port" (PSM) nutzen. Das wird zwar nicht von der Spezifikation ausdrücklich vorgegeben, es gibt aber Geräte, die mit nicht-Standard-Ports nicht kommunizieren (einige Versionen eines Windows-Stacks scheinen das Problem gehabt zu haben).
  • Auf eine Textkonsole wechseln (optional) mit Strg+Alt+F1 (...F6)
    Da richten nämlich die für andere Computer gedachten Eingaben am wenigsten Schaden an - Auch wenn hidclient läft, bekommt ja auch das lokale Linux alle Tastendrücke und Mausbewegungen mit.
  • hidclient starten:
    /usr/local/bin/hidclient
    Es sollten die verfügbaren event-Geräte aufgezählt werden, von denen hidclient Eingaben entgegennehmen wird, sowie die Meldung erscheinen, daß hidclient auf eine Verbindung wartet.
  • Bei der Gegenstelle eine Geräte-Suche ausführen, die virtuelle Tastatur sollte gefunden werden. Jetzt kann man über die üblichen Mechanismen eine Verbindung aufbauen. Dies sollte auf dem hidclient-Computer angezeigt werden.
  • Tastatur und Maus bewegen, das sollte auf der Gegenstelle für Reaktion sorgen.
  • Um die Verbindung zu trennen: Am hidclient-Rechner auf der Tastatur "Pause" drücken (kann auch "Untbr./Interrupt" heißen). Dies sollte die Verbindung sauber beenden.
    Um gleichzeitig auch den hidclient zu beenden, kann man LinksStrg+LinksAlt+Pause drücken.

Wo bekomme ich die notwendigen Dateien?

Hier:

Update (2012-07-28)

hidclient arbeitet jetzt auf Ubuntu 12.04 LTS / amd64. Es gab ein paar Erweiterungen:

  • Kommandozeilenparameter "-l" zeigt verfügbare Eingabegeräte
  • -e<NUM> verwendet NUR das eine Gerät (Nummer siehe -l)
  • -x schaltet die verwendeten Geräte auf dem lokalen Rechner "stumm"
Aktuelle Quelltextdateien sind im tar-Archiv. Kurzanleitung: Archiv entpacken (tar -xjvf hidclient...tar.bz2), Kompilieren mit
gcc -o hidclient -O2 -lbluetooth -Wall hidclient.c
Es muss nichts mehr nach /etc/bluetooth kopiert werden, aber man sollte die /etc/bluetooth/main.conf editieren: "DisabledPlugins=input" und "Class=0x000540" - das hilft anderen Geräten dabei, den Typ als "Keyboard" zu akzeptieren.
Eingabegeräte anzeigen lassen mit
sudo ./hidclient -l
Wenn man zB zwei Mäuse hat und nur eine verwenden will (während die andere lokale weiter arbeitet), nimmt man sich aus der ersten Spalte die ID-Nummer und gibt die als "nur dieses Gerät" an hidclient: sudo ./hidclient -e4 -x
wenn 4 die Nummer der Maus ist. Dann wartet hidclient auf eine Bluetooth-Verbindung. Die Maus sollte auf dem lokalen Rechner keine Auswirkung mehr haben (das macht das -x). Damit kann "openvt" wegfallen.

Was darf ich damit machen?

Zuerst einmal natürlich: benutzen. Quellcode einsehen. Weitergeben. Ändern - alles was die GNU General Public License Version 2 zulässt.
Diese Software ist "freie Software", sie darf ohne Zahlung von Lizenzgebühren nach den Vorgaben der GPLv2 genutzt werden.


Das Markenzeichen Bluetooth® ist eingetragenes Markenzeichen der Bluetooth SIG.

 
© 2007 anselm martin hoffmeister - kontakt