Linux-Zielgerät-HID-Unterstützung
Ich möchte, dass mein Linux Target 3.10 Embedded ARM-Gerät über USB-HID Befehle an einen HOST-PC sendet und sendet. Der HOST-PC verfügt über eine GUI, die über HID USB mit dem Linux-Zielgerät kommuniziert. Normalerweise würde ich einen Nicht-HID-Treiber für diese Art von Dingen verwenden, aber das ist jetzt keine Option. Auf der Zielseite habe ich eine Plattform struct hidg_func_descriptor für den "hidg" -Treiber erstellt. Die Report-ID ist 5, die ich für das erste Byte der DATA verwende. Ich habe "/ dev / hidg0" erstellt. Ich kann mit dem write () nach hidg0 auf den Host-PC zurückschreiben. Es kommt als Interrupt mit Daten auf dem Analysator an. Aber ich muss den HID_SET_REPORT vom PC HOST USB lesen (). Derzeit hängt das read () einfach, egal was der HOST sendet. Auf dem USB-Analysator kann ich sehen, dass er die USB_REQ_SET_CONFIGURATION (0x9) auf UDC-Ebene sendet.
Q1. Ist hidg0 darauf ausgelegt, HID_SET / GET_REPORTs als Ziel zu behandeln?
Q2. Sollte ich als Zielgerät für diese Art von Operation ein anderes / dev / xxx verwenden?
Q3. Ist es besser, / dev / hidraw0 für diese etwas angepasste HID-Plattform zu verwenden?
platform configuration: static struct hidg_func_descriptor hcr4_usb_hid_data = { .subclass = 0, .protocol = 0, .report_length = 64, .report_desc_length = 41, .report_desc = { 0x06, 0x20, 0xFF, // Usage Page (Vendor Defined 0xFF20) 0x09, 0x01, // Usage (0x01) 0xA1, 0x01, // Collection (Application) 0x75, 0x08, // Report Size (8) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x85, 0x05, // Report ID (5) 0x09, 0x05, // Usage (0x05) 0x95, 0x3F, // Report Count (63) 0xB2, 0x02, 0x01, // Feature () 0x85, 0x02, // Report ID (2) 0x09, 0x20, // Usage (0x20) 0x95, 0x3F, // Report Count (63) 0x82, 0x02, 0x01, // Input () 0x85, 0x03, // Report ID (3) 0x09, 0x21, // Usage (0x21) 0x95, 0x05, // Report Count (5) 0x91, 0x02, // Output () 0xC0, // End Collection }, };
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Warum führt das Entfernen des USB-Sticks zu einem blauen Bildschirm?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem