BSDForen.de  

Zurück   BSDForen.de > FreeBSD > FreeBSD - Allgemein

 
 
Themen-Optionen Thema bewerten Ansicht
Alt 19.04.2011, 17:08   #1
LeoLinux
Registered User
 
Benutzerbild von LeoLinux
 
Registrierungsdatum: Jun 2007
Beiträge: 288
USB Infos

Hi there,

mir ist die Nomenklatur von USB-Geräten nicht so ganz eindeutig.
Mit Hilfe von devinfo erhalte ich zu Beginn folgende Infos:
Code:
[...] ohci0 usbus0 uhub0 ohci1 usbus1 uhub1 ehci0 usbus2 uhub2 [...]
In anderen Worten: Ich habe drei USB-Root-Hubs auf dem Mainboard am Start: ohci0, ohci1 und ehci0

etwas googlen bringt mir noch folgenden Zusatz:

Zitat:
OHCI steht für Open Host Controller Interface und meint USB-1.0
UHCI steht für Universal Host Controller Interface und meint USB-1.1
EHCI steht für Enhanced Host Controller Interface und meint USB-2.0
XHCI steht für Extensible Host Controller Interface und meint USB-3.0
Btw.: leider habe ich kein xhci - wuerde mich interessieren, ob das dann tatsächlich xhci heißt - wäre nett wenn mir da jemand seinen USB 3.0 devinfo Output posten könnte.

... Nun versuche die über devinfo erhaltenen Informationen mit dem pciconf Output in Verbindung zu bringen:

Code:
pciconf -lvcb | /usr/bin/grep -A4 -i -E "ohci0|ohci1|ehci0" ohci0@pci0:0:2:0: class=0x0c0310 card=0x50041458 chip=0x006710de rev=0xa4 hdr=0x00 vendor = 'NVIDIA Corporation' device = 'Nvidia 7050 chipset HDMI Audio (MCP2)' class = serial bus subclass = USB -- ohci1@pci0:0:2:1: class=0x0c0310 card=0x50041458 chip=0x006710de rev=0xa4 hdr=0x00 vendor = 'NVIDIA Corporation' device = 'Nvidia 7050 chipset HDMI Audio (MCP2)' class = serial bus subclass = USB -- ehci0@pci0:0:2:2: class=0x0c0320 card=0x50041458 chip=0x006810de rev=0xa4 hdr=0x00 vendor = 'NVIDIA Corporation' device = 'nForce2 EHCI USB 2.0 Controller' class = serial bus subclass = USB
... ich fest, dass ohci0 und ohci1 eigentlich gar keine USB-Root-Hubs sind, sondern nur meine AudioDevices vom Mainboard (Onboard) ... passt ja soweit ... ehci0 ist also mein USB 2.0 Controller - soweit noch kein Verständnisproblem.


Jetzt bin ich hergegangen und habe all meine USB Ports mit Stick, Drive, WebCam und externem USB-Hub mit zusätzlichem Speicher Stick bestückt ... um zu sehen, wie sich das ganze auswirkt:

Code:
devinfo [...] ohci0 usbus0 uhub0 ohci1 usbus1 uhub1 ehci0 usbus2 uhub2 umass0 umass2 umass3 uhub3 umass1 [...]
... aha ... meine direkt in die USB-Stecker des Mainboards eingesteckten Geräte werden also unter uhub2 gelistet ... uhub3 ist der externe USB-Hub und unter uhub3 der in das externe USB-Hub eingesteckte Speicherstick (umass1). Hirarchie nachvollziehbar. Nice.


... jetzt vergleiche ich das ganze mit dem Output von usbconfig um etwas mehr Informationen über die eingesteckten Geräte zu erhalten:

Code:
usbconfig show_ifdrv ugen0.1: <OHCI root HUB nVidia> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE ugen0.1.0: uhub0: <nVidia OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> ugen1.1: <OHCI root HUB nVidia> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE ugen1.1.0: uhub1: <nVidia OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> ugen2.1: <EHCI root HUB nVidia> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE ugen2.1.0: uhub2: <nVidia EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> ugen2.2: <USB TO IDE vendor 0x05e3> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen2.2.0: umass0: <vendor 0x05e3 USB TO IDE, class 0/0, rev 2.00/0.33, addr 2> ugen2.4: <My Book Western Digital> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen2.4.0: umass2: <Western Digital My Book, class 0/0, rev 2.00/1.75, addr 4> ugen2.5: <USB2.0 Reader Foxconn> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen2.5.0: umass3: <Foxconn USB2.0 Reader, class 0/0, rev 2.00/91.44, addr 5> ugen1.2: <Camera vendor 0x046d> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen2.3: <USB2.0 Hub vendor 0x05e3> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE ugen2.3.0: uhub3: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/7.02, addr 3> ugen2.6: <Storage Media Sony> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen2.6.0: umass1: <Sony Storage Media, class 0/0, rev 2.00/1.00, addr 6> ugen2.7: <STORE N GO Verbatim> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen2.7.0: umass4: <Verbatim STORE N GO, class 0/0, rev 2.00/1.00, addr 7>
... Oha ... ok ... wir sind noch nicht ganz verloren ... immerhin erkenne ich hier und da den ein oder anderen DeviceName wieder, den ich eben noch via devinfo gesehen habe: uhub0, uhub1 und uhub2 sind also die Root-Hubs, die den jeweiligen USB-Controllern direkt unterliegen ... uhub3 ist mein externer Hub.

Im Großen und Ganzen erkennt man hier an der Struktur, dass z.B. dem uhub0 bzw. usbus0 ugen0.X.Y Geräte unterliegen, dem uhub1 bzw. usbus1 ugen1.X.Y, dem uhub2 bzw. usbus2 ugen2.X.Y ... - das lässt uns schlussfolgern, dass ugen[n]. --> [n] zu dem entsprechenden usbus[n] unter ehci0, ohci0 oder ohci1 gehört, ... während dessen uhub3 (externer Hub) eine Untermenge von uhub2 und somit zu ubus2 gehört ... Ok, soweit steckt noch nachvollziehbare Logik dahinter ...

nun gehe ich einen Schritt weiter und schaue mir die eingesteckten Geräte genauer an ... eigentlich beinahe durchweg USB 2.0 Geräte ... bis auf meine WebCam ...:
Code:
ugen1.2: <Camera vendor 0x046d> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
... und stelle fest, dass es den DeviceName ugen1.2 zugewiesen bekommen hat und dem usbus1 unterliegt - dann mus es wohl auch zu dem ohci1 PCI-Gerät gehören! ... komisch, die WebCam ist doch am selben USB 2.0 Controller wie die anderen Geräte eingesteckt ... ?! - klare Sache dachte ich, ist ja ein USB 1.1 Gerät - und muss dann wohl auch einem evtl. virtuellen USB 1.1 Controller zugewiesen werden (Stichwort: Abwärtskompatibilität) ... aber wieso gerade meinem Onboard AudioGerät?! ... , da ist was faul - denn ich erinnere an den pciconf Output von oben:
Code:
pciconf -lvcb | /usr/bin/grep -A4 -i -E "ohci0|ohci1|ehci0" ohci0@pci0:0:2:0: class=0x0c0310 card=0x50041458 chip=0x006710de rev=0xa4 hdr=0x00 vendor = 'NVIDIA Corporation' device = 'Nvidia 7050 chipset HDMI Audio (MCP2)' class = serial bus subclass = USB -- ohci1@pci0:0:2:1: class=0x0c0310 card=0x50041458 chip=0x006710de rev=0xa4 hdr=0x00 vendor = 'NVIDIA Corporation' device = 'Nvidia 7050 chipset HDMI Audio (MCP2)' class = serial bus subclass = USB -- ehci0@pci0:0:2:2: class=0x0c0320 card=0x50041458 chip=0x006810de rev=0xa4 hdr=0x00 vendor = 'NVIDIA Corporation' device = 'nForce2 EHCI USB 2.0 Controller' class = serial bus subclass = USB
ohci1 ist ja gar kein richtiger USB Controller, wie z.B. der ehci0 "nForce2 EHCI USB 2.0 Controller" ... sondern ist: "Nvidia 7050 chipset HDMI Audio (MCP2)"

Wenn er mir unter ohci1 einen Output wie z.B.: "nForce2 EHCI USB 1.0 Controller" gebracht hätte, dann wäre ich nicht so verwirrt wie ich es jetzt bin.

Warum ist das so? ... kann mir das jemand erklären?



Grüße
LeoLinux ist offline   Mit Zitat antworten
 


Dieses Thema betrachten zurzeit 1 Personen. (0 registrierte Benutzer und 1 Gäste)
 
Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus
Gehe zu

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
FreeBSD auf Netdirekt.de Server Yamagi FreeBSD - Allgemein 33 01.12.2010 10:48
Xorg ziemlich langsam FerdL FreeBSD - Allgemein 22 01.10.2010 18:20
8.0 RC3: ELF interpreter /libexec/ld-elf.so.1 not found AB-stromer FreeBSD - Installation 8 21.11.2009 11:45
Ein neuer USB-Stack für FreeBSD - Jetzt aber wirklich Yamagi News 11 17.11.2008 07:52
ALI USB 2.0 Controller will nicht rMarkus FreeBSD - Allgemein 0 03.07.2005 12:40


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr.


Powered by vBulletin (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.