Konrad Rosenbaum <[email protected]> schrieb:

> Ich suche eine Hardware, die möglichst frei, problemlos (also C, nicht 
> Assembler) zu programmieren, nicht zu teuer und via USB angebunden ist.
> 
> Im Augenblick schwanke ich zwischen Arduino Uno, Maple und der eventuellen 
> Möglichkeit dass es noch was anderes gibt...

Arduino ist fast 'ne Garantie! Ganz einfach zu nutzen, billig und trotzdem
mächtig! Ob es reicht, für was du machen willst, ist die Preisfrage...

> Ich will mir einen Tastatur- und Maus-emulator via USB basteln. Man kann 
> zwar in X11 Events einschmuggeln, aber auf der Textkonsole, im Framebuffer 
> oder Wayland ist das schon schwieriger - ein per USB angeschlossener 
> Emulator könnte beliebigen Programmen Input unterjubeln.
> 
> Hat jemand Erfahrungen wie schwierig sowas ist?

'sticazzi! (eine Übersetzung erfolgt auf Wunsch).
Man sagt mir, daß ich mir schwere Aufgabe für meine Freizeit mir suche, aber
du hast auch sowas im Plan...

Also, das ist eine SEHR schwere Sache... Erstmal musst du den USB-Stack als
MASTER implementieren. Das kann schon recht aufwändig sein. Standardmäßig
haben alle solche EmbeddedGeräte nur die USB-Schnittstelle als SLAVE (viel
einfacher!).
Danach musst du auch ein Ethernetstack, inklusive TCP/IP, einrichten. Und noch
mit dem Lötkolben basteln, denn Arduino wenigstens, hat keinen
Ethernetcontroller! Das bedeutet, eine extra Platine, im besten Fall mit
einem ENC28J60, die übliche Kondensatoren, einen Quarz, die RJ45-Büchse und
einen SPI-Anschluss bis zum ATMega (Arduino).

Gewiss, es gibt schon freie Implementationen von TCP/IP-Stacks (siehe uIP),
aber das ganze ist trotzdem gar nicht so einfach.

> Die Idee ist das USB-Gerät drei virtuelle Schnittstellen haben zu lassen: 
> Ethernet (USB CDC ECM), Tastatur (HID Keyboard) und Maus (HID Mouse). Wenn 
> via Ethernet ein Kommando geschickt wird soll es dann via Tastatur oder
> Maus als Event zurückgesendet werden. Wenn die Tastatur das Kommando
> bekommt eine LED anzuschalten, kommt das Ereignis übers Netzwerk zurück.

Sagen wir so: wenn du geschafft hast, USB-Master und Ethernet zu basteln, das
ist das einfachste... :D

> Ich hatte noch überlegt statt Ethernet, HID plain data oder CDC ACM
> (serial) zu nehmen. HID plain hat das Problem dass man eine funktionierende
> USB- Bibliothek, wie libusb braucht, was nur begrenzt portabel ist. CDC ACM
> ist an sich gleichwertig mit Ethernet, aber für Netzwerk habe ich bereits 
> fertige portable Klassen (Qt).

Naja, HID macht das ganze noch komplexer, denn du musst ZWEI USB-Stacks (und
Ports!!) haben: eine als Master (für Tastatur und Mouse) und die andere
als Slave (für HID).
CDC ACM kenne ich nicht.

Also, viel Spaß!
Luca Bertoncello
([email protected])

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Lug-dd maillist  -  [email protected]
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Antwort per Email an