FreeBSD 5- USB Maus & Keyboard

mjjb

Nachtmensch
Erstmal ein Hallo in die Runde...

:o)

... als absoluter FBSD-Frischling habe ich derzeit leider ein Problem- es liegt sicher nicht an der Hardware selbst - sondern an meiner Dummheit:

Aufgrund eines Defektes meiner alten Tastatur hab ich mir heute eine Neue angeschafft: Logitech Cordless Desktop Optical...

so weit so gut...

Maus und Tastatur funktionieren beide über ein-und-denselben USB-Stecker...

unter [bitte um Verzeihung...] XP funktioniert das natürlich problemlos... unter Debian 3.0r1 die Tastatur problemlos... die Maus jedoch nur dann - wenn beim Initialisieren des X-Servers auch der 2. USB-Port belegt ist [toter Stecker reicht]...

unter FreeBSD [Release 5.0] geht nix... weder Maus noch Tastatur - dabei wird beides über den einen Stecker auch erkannt; funktioniert jedoch obwohl die ganze USB-Geschichte im Kernel vorhanden ist... nicht.

-- snip--

ukbd0: Logitech USB Receiver, rev 1.10/17.00, addr 2, iclass 3/1
kbd1 at ukbd0
ums0: Logitech USB Receiver, rev 1.10/17.00, addr 2, iclass 3/1
ums0: 7 buttons and Z dir

-- snip --

Die alte USB-Maus [ist letztlich das gleiche nur in blau- und halt alleine am USB-Stecker (also ohne zusätzliche Tastatur) arbeitet hervorrgagend.

Irgendwo habe ich sicher einen Denk- bzw Konfigurationsfehler...
aber es sollte doch sicher möglich sein- zumindest so weit wie unter Debian beides zum Arbeiten bewegen zu können...

Für Hilfe und Ratschläge sehr dankbar...

markudia
 

Raptor

Member
Da ich den Thread eher zufällig gefunden habe, wird dir das nach so langer Zeit nimmer helfen, aber für alle anderen die die Suchfunktion ab und an nuzten ;) :

Aus http://www.freebsd.org/cgi/query-pr.cgi?pr=63837


--- /sys/dev/usb/hid.c.orig Sun Jun 20 17:20:03 2004
+++ /sys/dev/usb/hid.c Tue Jun 29 00:51:39 2004
@@ -373,9 +373,10 @@
struct hid_item h;
int size, id;

+ h.report_ID = 0;
id = 0;
for (d = hid_start_parse(buf, len, 1<<k); hid_get_item(d, &h); )
- if (h.report_ID != 0)
+ if (h.report_ID != 0 && !id)
id = h.report_ID;
hid_end_parse(d);
size = h.loc.pos;
 
Oben