USB: Unterschied zwischen den Versionen
Took (Diskussion | Beiträge) K (→usbnet: upd8) |
Took (Diskussion | Beiträge) K (→ECMD via USB: sudo nicht vergessen) |
||
Zeile 84: | Zeile 84: | ||
cd contrib/ecmd_usb/ | cd contrib/ecmd_usb/ | ||
make | make | ||
+ | |||
+ | Typischerweise muss man das Programm dann mit root-rechten starten: | ||
+ | sudo ./ecmd_usb | ||
+ | |||
+ | Ausgabe sollte dann sein: | ||
+ | gefunden! devnr: 1 16C0 - 05DC | ||
+ | |||
+ | ...nun sollte man ecmd's absetzten können | ||
=== Geschwindigkeit === | === Geschwindigkeit === |
Version vom 28. Jänner 2010, 15:41 Uhr
Inhaltsverzeichnis
USB bzw. Software USB
Ja richtig, ein Software USB Stack ist implementiert.
Wen man in z.B. ein AVR-Net-IO
[*] USB (Softwarestack) Support ---> [*] USBnet --->
benutzt, dann meckert "make" das die Pins für USB nicht definiert sind. Das kann man einfach beheben mit "./scripts/add-hardware" siehe
./scripts/add-hardware neuerprofilname
Sind die Pins definiert siehe Ethersex_Hardware_hinzufügen
Dann lauft "make" durch.
Anschlußbelegung
usbnet
Wie wird usbnet gestartet?
Im ethersex Repository Unterverzeichnis contrib/usb_net liegen die benötigten Dateien um das nötige Netzwerkdevice zu kompilieren und zu starten.
# cd contrib/usb_net # make # su -c ./usb_net Kein passendes USB Device gefunden
Schliesst man dann ein ethersex USB Device an, erscheint folgende Zeile in der Kommandozeile:
gefunden! devnr: 1 16C0 - 05DC
Das Programm usb_net nun im hintergrund weiter laufen lassen.
Danach noch
route add -host 192.168.8.1 usb0
und das Gerät sollte pingbar sein.
Das dafür benutzte interface heißt "usb0" und stellt eine point-to-point Verbindung mit der Hardware her.
Beispiel vom usbnet interface:
usb0 Link encap:UNSPEC Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet Adresse:192.168.8.1 P-z-P:192.168.8.1 Maske:255.255.255.0 UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:192 Metrik:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 Kollisionen:0 Sendewarteschlangenlänge:500 RX bytes:36 (36.0 B) TX bytes:0 (0.0 B)
usb_net optionen :
Usage: ./usb_net [OPTIONEN]
-h --help Print this help and exit -a --address adds of the interface in the form 192.168.8.1/24 -d --device usb id (e.g. 16c005dc) -m --mtu set mtu -u --up call this command, when the interface is up
USB Keyboard (HID)
Wird ethersex mit USB Keyboard Support, meldet sich ethersex als HID (Human Interface Device) beim Host an und kann automatisch von den Treibern des Betriebsystems angesprochen werden.
Aus der Sicht vom Host, gibt es also eine weitere Tastatur die Daten an den Host senden kann.
Momentan gibt es nur eine Beispielanwendung die alle 2 Sekunden ein Zeichen des Alphabets ausgibt. Dann wird das nächste Zeichen ausgewählt und nach 2 Sekunden gesendet. Bei 'z' angekommen wird geht es wieder mit 'a' los.
Getestet mit:
- Linux debian 5.0
- OS X
Mögliche Projekte wären:
- PS/2-Keybaord nach USB Umsetzer
- Eigene Tastatur Devices (z.B. eine 6-Finger Tastatur für Innigo Montoja)
- 1-Finger Tastatur, die nur STR-ALT-ENTF sendet
- Gamer Tastatur mit besser erreichbaren Tasten
- Netzwerk- oder Funk-Tastatur/Eingabegerät mit Verschlüsselter Übertragung der Daten
ECMD via USB
Über USB können die ECMD Befehle direkt gesendet werden. Die entsprechende Anwendung ecmd_usb kann man sich folgendermaßen selbst erstellen:
cd contrib/ecmd_usb/ make
Typischerweise muss man das Programm dann mit root-rechten starten:
sudo ./ecmd_usb
Ausgabe sollte dann sein:
gefunden! devnr: 1 16C0 - 05DC
...nun sollte man ecmd's absetzten können
Geschwindigkeit
Das Verarbeiten von USB rein in Software fordert seinen Geschwindigkeits-Tribut. Eine ausführlicher Vergleich verschiedener Anbindungsvarianten ist unter ECMD Geschwindigkeit zu finden.
Beispiel
Anbei mal ein kleines Beispiel des Aufbaus, hier mal zusammen mit einem ZBus-IC