Keyboard Simulator?

SierraX

Well-Known Member
Ich hab leider im iNet noch nix einfaches zufriedenstellendes gefunden.
Kennt einer von euch Forumsteilnehmern ein Produkt, projekt oder einfache moeglichkeit einen Computer mit Linux oder BSD zu einer Tastatur zu machen?
Um ein wenig besser zu umschreiben, was ich suche...
Als Admin bin ich natuerlich Faul und Geizig (deshalb finde ich auch den epihan KVM2usb sowie den PoKeys55-t zwar fuer sehr interessant aber fuer meine geplanten Aufgaben falsch dimensioniert und somit zu teuer.)
Wobei ich fuer den PoKey auch keine Linux Unix konfigurations software gefunden habe (falls einer von euch sowas kennt kann er das gerne auch schreiben ).
Ideal waere es, wenn ich einfach nur ein Programm starte. Den Rechner mit einem USB Cross Kabel an einem KVM oder Rechner anschliesse, der diesen dann als Keyboard erkennt und alles was ich ueber den Sender in stdout jage (also auch Scripte mit sonderzeichen) in tastatur signale umwandelt und an den empfaenger weitergibt. Ein ondemand programmierbarer tastatur chip ware auch eine Loesung die ich mir noch eingehen lassen wuerde.
Wozu das ganze? Scripte oder Programme auf Rechnern ohne netzwerk automatisiert erstellen und/oder starten zu koennen. Auch ohne das ein Client auf dem Empfaenger installiert sein muss.
 
wäre es nicht einfacher einfach wie bei einer soekris mit einem seriellen kabel zu arbeiten,
oder muss es unbedingt ein usb tastaturanschluss sein?
 
Welcher Rechner hat schon noch serielle anschluesse, von der Terminal unterstuetzung mal ganz abgesehen... ganz zu schweigen von KVMs also sollte es schon USB sein.
 
also, wenn es schon usb sein darf,
dann empfehle ich dir doch einfach einen usb-seriell converter.

kosten um die 8 euro.
waere das ein kompromiss?
 
Hi,
also wenn ich dich richtig verstehe möchtest du ein Programm Starten und alle Programmeingaben an einen Angeschlossenen Rechner weiterleiten welcher der Meinung sein soll, er spräche mit einer USB-Tastatur.
Eine fertige Lösung kenne ich leider nicht allerdings will ich trotzdem mal meinen Senf dazu geben incl. einigen technischen Infos zu USB. :)

In Software würde ich behaupten stellen sich 2 Probleme:

1. Eine USB-Tastatur meldet sich am Computer als HID-konformes Gerät an. Diese Hardwareidentifizierung müsste auch dem Client gegenüber stattfinden also einfach die Daten von USB-Tastatur einen zweiten Port weiterleiten dürfte nicht so einfach funktionieren.

2. Grundsätzlich ist ein USB-Controller wie im PC nicht das selbe wie ein USB-Gerät. Das Gerät meldet sich am Controller an, bekommt eine Adresse zugewiesen und der Computer fragt, basierend auf der Konfiguration die er aus dem Gerät ausgelesen hat, den Pufferspeicher des USB-Gerätes in regelmäßigen Intervallen ab, bzw. schreibt Daten da rein.
Ich habe allerdings aus dem Stegreif keine Ahnung wie Netzwerk via USB funktioniert und kann auch nicht ausschließen das es vielleicht möglich ist einen Computer als Endgerät einzurichten.

Ich würde dein Problem ggf. einfach in Hardware lösen, dabei würde sich lediglich das Problem stellen, das alle Mikrocontroller die mir einfallen nur über je eine USB Schnittstelle verfügen, sprich entweder 2 davon nehmen und miteinander reden lassen oder an deinen Computer per RS232.

[Rechner ohne Tastatur] <- USB-HID -> [Controller] <- RS232 -> [Rechner mit Tastatur]
oder
[Rechner ohne Tastatur] <- USB-HID -> [Controller 1] <-> [Controller 2] <USB-RS232-Emulation> [Rechner mit Tastatur]

In beiden fällen könntest du einfach z.B. per Terminalprogramm die Tastatureingabe an einen Client schicken.
Mit ein wenig Bastelaufwand lägen dabei die Materialkosten wahrscheinlich unter 15 Euro. ;)

@dettus Einen USB-Seriell Konverter könnte man zwar mit einem Computer verbinden dem man sagt, das aus der entsprechenden Schnittstelle ab jetzt die Eingaben kommen, aber sobald du das mit z.B. einer KVM vertüddeln möchtest bekommst du imho ein Problem denn ich kann mir nicht vorstellen das solche Geräte, ein USB-Gerät das sich als RS232-Emulation anmeldet als Tastatur akzeptieren.
Sofern nicht bei jedem umschalten der KVM die USB-Tastatur von dem vorherigen Rechner "abgestöpselt" und mit dem neuen verbunden wird (habe keine USB-KVM und bei PS/2 ist das ja schon durch die nicht HotPlug-fähige Schnittstelle verboten), wird sich die KVM mit jedem Ausgang als USB-HID-Tastatur beim entsprechenden Rechner anmelden und wird sicher (schon um Maus und Tastatur unterscheiden zu können) auch auslesen als was sich die Tastatur anmeldet.

Übrigens schalten USB-Tastaturen/Mäuse, die einen nicht intelligenten PS/2-Adapter mitliefern, intern zwischen den entsprechenden Protokollen und Hardwareinterfaces um. Bei den verschiedenen Anschlusstechniken werden wirklich unterschiedliche Protokolle und Übertragungstechniken verwendet.

USB ist halt wirklich nur darauf ausgelegt worden um mehrere Geräte über einen Bus mit genau einem PC zu verbinden. Kommunikation untereinander wie bei FireWire oder der Anschluss mehrerer Computer an ein USB-Interface waren bei der Konzepterstellung nicht geplant.

Viel Spaß
surfer

Edit:
- Habe mal eben nachgeschaut, die "USB-Netzwerkkabel" die google mir ausgespuckt hat haben alle eine kleine Box in der Mitte in welcher die nötige Intelligenz untergebracht ist. Um einfache X-Over-Kabel handelt es sich also nicht.
Da sich USB-Geräte wie oben beschrieben anmelden müssen und sich Hostcontroller und Gerätecontroller in ihrer Arbeitsweise unterscheiden hätte es mich auch sehr gewundert wenn das so einfach möglich wäre. (Ausnahme bildet hier die USB-on-the-Go Spezifikation die es inzwischen ermöglicht das zwei USB-Geräte direkt miteinander kommunizieren können indem eines der beiden die Hostrolle übernimmt.)
Da sich diese USB-LinkKabel beim Computer z.B. als Massenspeicher anmelden werden sie sicherlich auch nicht von einer KVM als Tastatur akzeptiert.

- Was den Umweg über einen zweiten Controller bzw. eine zweite Schnittstelle angeht, bin ich mir nach einem kurzen Blick in meine Datenblätter auch recht sicher, das ein umschalten zwischen zwei USB-Hosts nicht so einfach möglich ist. Abgesehen davon mag ichs KISS. ;)
 
Zuletzt bearbeitet:
Die Idee hat mir wirklich gefallen habe beim Posten so viel drüber nachgedacht, das ich so ein Ding direkt mal gebaut habe.
Wenn ich damit richtig liege was du suchst; so ein rs232(bzw) -> HID-Tastatur-Ding; habe ich eben mal etwas aus Spaß zusammengesteckt (passte mit LCD für unnötiges Zeug (zur Vendung für eigentlich eher nicht genutzte Daten-Ports), problemlos auf mein Experimentierboard), zwei Controller miteinander reden lassen sollte auch nicht zuuuu schwierig sein). ...

Also, Material liegt bei nem dicken 18F2550 Controller [jaaa sry, Microchip ist halt nunmal nicht so populär wie Atmel ...] bei ca ~5-6 Eus (reichelt), 'nem max232 für ~2Eur, paar Elkos für .. eigentlich nix und nem Quarz für 50 Cent (OK 65 Cent bei pollin), wobei ich auch nur nen 20MHz da hatte und eigentlich könnte der uC dafür auch langsammer denken. (pff well my usb-bootloader is configured for 20MHz so why should I use anything else for my experiments ... naja, Platine und Co. kommt halt noch dazu, wenns aus der Fräse reicht, so eine hab ich derzeit auch zur Verfügung, so ein Kupferbeschichtets Hartpappier kostet auch nicht die Welt, also wenn Du wirklich nichts findest, kann ich dir notfalls bissl aushelfen.

Also ggf. schickst Du mir halt bissl Elektro-Spielzeug und ich bastel Dir draus was. (aber ohne Garantie und mit ner blanken Platine ohne schickes Gehäuse und so, halt eigenbau) ;) Aber eigentlich sollte es sowas doch echt schon geben wenn selbst ich sowas an einem Abend hinbekomme ... :)

Viel Spaß
Ben

Habe allerdings noch nicht alle Zeichen übersetzt! halt nur zum testen a=4 b=5 foobaa also so wirklich Marktreif ist meine Ceta heute noch nicht
 
Zuletzt bearbeitet:
Die Idee hat mir wirklich gefallen habe beim Posten so viel drüber nachgedacht, das ich so ein Ding direkt mal gebaut habe.
Wenn ich damit richtig liege was du suchst; so ein rs232(bzw) -> HID-Tastatur-Ding; habe ich eben mal etwas aus Spaß zusammengesteckt (passte mit LCD für unnötiges Zeug (zur Vendung für eigentlich eher nicht genutzte Daten-Ports), problemlos auf mein Experimentierboard), zwei Controller miteinander reden lassen sollte auch nicht zuuuu schwierig sein). ...

Also, Material liegt bei nem dicken 18F2550 Controller [jaaa sry, Microchip ist halt nunmal nicht so populär wie Atmel ...] bei ca ~5-6 Eus (reichelt), 'nem max232 für ~2Eur, paar Elkos für .. eigentlich nix und nem Quarz für 50 Cent (OK 65 Cent bei pollin), wobei ich auch nur nen 20MHz da hatte und eigentlich könnte der uC dafür auch langsammer denken. (pff well my usb-bootloader is configured for 20MHz so why should I use anything else for my experiments ... naja, Platine und Co. kommt halt noch dazu, wenns aus der Fräse reicht, so eine hab ich derzeit auch zur Verfügung, so ein Kupferbeschichtets Hartpappier kostet auch nicht die Welt, also wenn Du wirklich nichts findest, kann ich dir notfalls bissl aushelfen.

Also ggf. schickst Du mir halt bissl Elektro-Spielzeug und ich bastel Dir draus was. (aber ohne Garantie und mit ner blanken Platine ohne schickes Gehäuse und so, halt eigenbau) ;)

Wow.... das ist schon weit mehr als ich in diesem Post gerechnet habe. Hintergrund für diese Idee war ein Projekt (was laut unserem Boss garkeins war) in dem ich ~100 Rechner mit Fedora 11 ausstatten sollte. Jeweils 5 Rechner ins Labor (damit die User und Rechner waerend der Installation keinen Scheiss machen koennen)schaffen, an einen KVM (keinen uebers Netzwerk, dafuer gabs kein Geld) und ans installations Netzwerk anschliessen. Installation starten usw. Problematisch wurde es dann erst bei der Nachkontrolle. Die Rechner starten nicht mehr im Installations Netz sondern haben bereits das endgueltige Netzerk hinterlegt (ok das liesse sich auch anders regeln mit genuegend Zeit und Planung) Immer gleicher wechseln in eine andere Konsole, Root login, preset befehl, unterschiedliche verbindungen zum Netzwerk die sich aber Taeglich wiederholten. Das weitere konnte ueber SSH und Screen gemacht werden. Pushen von ein paar Scripten, starten von screen mit einem 2ten X in dem dann die benoetigten Tests ausgefuert wurden. Bedeutete aber auch die meisten Rechner hart neu zu starten, weil sich die Grafikkarte unstartbar ausschaltete wenn der KVM nicht auf den Rechner eingestellt ist (hat irgendwas mit DVI zu tun). Also sehr viele sachen bei der man die Tastatur braucht bzw brauchen kann.
Wenn ich mich zurueck erinnere bei meinem alten Job. Gab es ausserdem Seiten lange scripte die man zwar sowohl in SSH als auch in der Console ausfuehren konnte aber wenn man vor ort ist es meist wesentlich schneller etwas in der Konsole einzugeben, als zu gucken, hat er einen 2ten netzwerk anschluss, in welchem Netz haengt er oder von wo aus kann ich ihn erreichen. Ist ssh,rsh telnet ueberhaupt gerade moeglich (kann ja auch die Netzwerkkarte zerhageln) oder wer denkt sich nicht ab und an, haette ich doch ein Script auf dem Installationsmedium hinterlegt, das mir das Netzwerk bei meinem Rechner gleich in die rc.conf packt. Mit so einem vorbereiteten solchen Kabel kann man Tausende von sogar individuellen Einrichtungen direkt in ein paar sekunden eingeben lassen.

Ich stelle gerne einen Bereich unter u-bus.de fuer ein solches Projekt zur verfuegung (falls sich nicht doch noch rausstellt das es sowas schon gibt) schon um Patente zu verhindern. Viel mehr kann ich leider noch nicht tun, da ich weder in elektrotechnik noch in Programmierung bewandert bin. Bin halt doch nur ein Admin.

Aber eigentlich sollte es sowas doch echt schon geben wenn selbst ich sowas an einem Abend hinbekomme ... :)
Der PoKeys55-t ist ja eigentlich sowas ähnliches, bloss das man da scheinbar "nur" bis zu 255 Tastenfolgen auf einen von 55 Schaltern legen kann. Ist im grunde auch keine schlechte Idee, aber erstens nicht billig in der Anschaffung und die Software zum betreiben und aufzuspielen, ist rein Windows inklusive Developer umgebung (um legal zu bleiben, braeuchte man M$ lizenzen) was die ganz sache nicht gerade billiger macht. Das war/ist das Ergebnis aus einer Diskussion mit einem Windowsfanboy, der meinte Apple schaufle sich sein eigenes Grab, weil das entwickeln fuer iPhone,Pt und Pad so teuer ist, weil man einen Apple dafuer braucht, zum teil hat er ja recht, aber alle kommerziellen Betriebssystem Anbieter handeln so apple laesst bloss zusetzlich nicht zu, seine Betriebssystem umgebung auf simulierten Rechnern zu betreiben. Was dann halt gleich mal 500 euro fuer einen Developer kostet. Wieviel es allerdings bei Win7 kostet habe ich noch nicht geguckt. Aber das ist ein ganz anderes Thema
 
Hi,
wie geschrieben habe ich das halt nur mal so auf die schnelle quick&dirty zusammengetüddelt. Wirklich nennenswert viel Arbeit steckt bis jetzt noch nicht drin denn die grundliegenden Funktionen für USB werden vom Chiphersteller frei zur Verfügung gestellt und auch sonst habe ich natürlich nicht from the scratch angefangen sondern einfach verwendet was ich grade zur Verfügung hatte. (Wie geschrieben mein Testboard für den 18F2550 besteht sowieso aus nem USB-Anschluss, einem seriellen und den Anschlüssen für die restlichen Ports, da war auch für die Hardware nicht viel neuplanen nötig.
Praktischer wäre natürlich USB<->USB wofür ich wie geschrieben 2 Controller verwenden müßte, dafür habe ich grade aber kein Experimentierboard zur Hand, kann mir aber wenn ich Zeit habe auch mal eines entwerfen und in die Fräse schieben. ;)
Die Software muß ja nicht viel mehr erledigen als die ankommenden Zeichen in die für USB-HID-Tastaturen festgelegten Werte umsetzen die dann an den nächsten Rechner weitergeleitet werden. Schon alleine weil universell unter jedem OS eigentlich verfügbar eignen sich USB-HID und rs232 bzw rs232-Emulation imho recht gut für die Umsetzung.
Wenn ich am Wochenende Zeit finde werde ich mich nochmal dran setzten und die Sache so weit vervollständigen das etwas benutzbares Raus kommt.

Was mir übrigens an der Sache so gut gefallen hat ist mein übliches Problem mit KVM, einen Monitor umschalten Ok, davon hat man ja meist sowieo mindesens 2, aber wenn dann am eigenen Rechner etwas nachgucken will muss man entweder hin- und herschalten, oder 2 Tastaturen auf dem Tisch haben, was ich extrem nervig finde. ;)

Edit: Habe mal einen kurzen Blick auf den PoKeys55-t geworfen, der sieht mir, soweit man das bei einem einfachen Blick auf das Board beurteilen kann, auch nur nach einem Controller + Quarz + nötige passive Bauelemente aus. Die Tastaturmakros werden da wohl auch einfach im EEPROM des Controllers gespeichert.
Naja wie gesagt wenn ich am WE Zeit finde werde ichs nochmal überarbeiten, wenns wirklich ein echtes Projekt wird nehme ich dann dein Angebot gerne an. :)
 
Zuletzt bearbeitet:
Zurück
Oben