USB

Aus Ethersex_Wiki
Version vom 6. Dezember 2009, 20:41 Uhr von Habo (Diskussion | Beiträge) (vendor id wieder an den aktuellen master branch angepasst, 17c0 war nur ein testwert)
Wechseln zu: Navigation, Suche

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

Usb-schematic.png

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

lt. usbconfig.h wird 16c0:05dc definiert! Deshalb

usb_net -d 16c005cd0 

aufrufen. Danach noch

route add -host "usb-net IP" 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 Keyboard

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.

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

Beispiel

Anbei mal ein kleines Beispiel des Aufbaus, hier mal zusammen mit einem ZBus-IC Usb2zbus-i2c.jpg