Forum: PC Hard- und Software Treiber für jede USB-Buchse


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Oliver K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

eben mal mein USB-Device an einer anderen USB-Buchse eingesteckt, es 
macht PlingPlong - neue Hardware gefunden, Treiber will installiert 
werden. Also das USB-Device wieder raus und an die sonst übliche Buchse 
angeschlossen, alles paletti.

Ich staune nicht schlecht, denn mein PC hat eine Menge USB-Buchsen.
Muss man ein USB-Device an jeder Buchse installieren?

Oliver

von Rainer S. (enevile) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Oliver K. schrieb:
> USB-Device

Je Nachdem was drauf ist wird es nur für den einen Port installiert. So 
wenig wie möglich, so viel wie nötig.

von Georg (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Oliver K. schrieb:
> Also das USB-Device wieder raus

Und wenn du es drinlässt und die Installation laufen lässt, geht dann 
der PC kaputt?

Wenn nicht ist alles ok oder sogar besser - dein Device wird ja 
wiedererkannt, soweit man das deinen Angaben entnehmen kann. Viele haben 
eher Probleme damit dass sie 2 Devices an wechselnden USB-Buchsen nicht 
unterscheiden können.

Georg

von Michael (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Dein Device hat keine Seriennummer. Windows nutzt dann die Information, 
an welche Buchse es gesteckt ist.

von Oliver K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rainer S. schrieb:
> Je Nachdem was drauf ist wird es nur für den einen Port installiert.

Interessant. Dachte bisher, eine USB-Buchse ist wie die andere. So wie 
die Steckdosen in einer Wohnung, überall kommen 230V raus.

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Interessant. Dachte bisher, eine USB-Buchse ist wie die andere.

Bei einer USB-Buchse ist das auch so, bei einem US-Bus aber nicht. .-)

Olaf

von michael_ (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
Oliver K. schrieb:
> Interessant. Dachte bisher, eine USB-Buchse ist wie die andere. So wie
> die Steckdosen in einer Wohnung, überall kommen 230V raus.

Ist auch so.

Nur dein geheimnisvolles USB-Device ist die Ursache.

von Oliver K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Georg schrieb:
> Und wenn du es drinlässt und die Installation laufen lässt, geht dann
> der PC kaputt?

Nö, aber das System steht, weil ein Assistent für die Installation neuer 
Hardware erscheint und von mir Sachen wissen will, die er selber nicht 
weiß. Das ist für manchen User gleichbedeutend mit PC kaputt.

von Oliver K. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
michael_ schrieb:
> Nur dein geheimnisvolles USB-Device ist die Ursache.

Richtige Männer haben eine Menge Geheimnisse.

von Rolf M. (rmagnus)


Bewertung
3 lesenswert
nicht lesenswert
Oliver K. schrieb:
> Ich staune nicht schlecht, denn mein PC hat eine Menge USB-Buchsen.
> Muss man ein USB-Device an jeder Buchse installieren?

Das ist kein generelles USB-Problem, sondern eine Eigenheit von Windows. 
War dort schon immer so. Mich würde auch mal interessieren, wie die den 
USB-Stack so verkorkst haben, dass das nötig ist. Sei froh, dass man 
nicht wie früher nach so einer Aktion erstmal rebooten muss.

von Gerader Ast (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Ist bei Windows nicht immer so, sondern nur bei Devices ohne 
Seriennummer.
Z.B. mein SanDisk USB-Stick wird an jeder Buchse ohne 
Treiberinstallation gefunden, während viele billige Sticks jedesmal eine 
Treiberinstallation erfordern.

von michael_ (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Mit billig oder WIN hat es nichts zu tun.
Mein Laserdrucker war bestimmt nicht billig.

von Rolf M. (rmagnus)


Bewertung
1 lesenswert
nicht lesenswert
michael_ schrieb:
> Mit billig oder WIN hat es nichts zu tun.
> Mein Laserdrucker war bestimmt nicht billig.

Und der macht das nicht nur bei Windows, sondern bei allen 
Betriebssystemen?

von Michael (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf M. schrieb:
> sondern eine Eigenheit von Windows.
> War dort schon immer so. Mich würde auch mal interessieren, wie die den
> USB-Stack so verkorkst haben, dass das nötig ist.

Ich weiß nicht, wie dein Betriebssystem Geräte ohne Seriennummer 
auseinanderhält, aber bei Windows ist das meines Erachtens völlig 
einwandfrei gelöst.

Steckst du beispielsweise einen "USB-zu-seriell-Wandler" mit 
Seriennnummer an, kannst du alle USB-Ports durchprobieren, es wird nur 
einmal eine Treiberinstallation durchgeführt und an jedem Port wird 
derselbe COM-Port erreichbar sein.

Hast du hingegen einen ohne Seriennummer, hast du an jedem USB-Port auch 
einen neuen COM-Port.

Wie macht dein Betriebssystem das? (Ich nehme an Linux?) Fängt das nach 
jedem Reboot wieder bei ttyUSB0? Das fände ich jedenfalls schlechter...

von michael_ (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Rolf M. schrieb:
> Und der macht das nicht nur bei Windows, sondern bei allen
> Betriebssystemen?

Weiß ich nicht.
Nutze Linux nur sporadisch und schließe den da auch nur selten an.

Aber eigentlich meine ganzen älteren Tintenstrahler, Fotodrucker, 
Dymo-Dr., Scanner wollen an jedem Eingang neu installiert werden.
Geht aber automatisch.

von Rolf M. (rmagnus)


Bewertung
0 lesenswert
nicht lesenswert
Michael schrieb:
> Rolf M. schrieb:
>> sondern eine Eigenheit von Windows.
>> War dort schon immer so. Mich würde auch mal interessieren, wie die den
>> USB-Stack so verkorkst haben, dass das nötig ist.
>
> Ich weiß nicht, wie dein Betriebssystem Geräte ohne Seriennummer
> auseinanderhält, aber bei Windows ist das meines Erachtens völlig
> einwandfrei gelöst.

Es geht nicht um das Auseinanderhalten von verschiedenen Geräten, 
sondern darum, dass für jeden USB-Port, an dem ein Gerät angeschlossen 
wird, der Treiber neu installiert werden muss. Was hat das mit der 
Zuordnung der Geräte zu tun?

> Wie macht dein Betriebssystem das? (Ich nehme an Linux?) Fängt das nach
> jedem Reboot wieder bei ttyUSB0? Das fände ich jedenfalls schlechter...

Ich kann es mir aussuchen über entsprechende udev-Rules.

von ,,, (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
> Mein Laserdrucker war bestimmt nicht billig.

Mein aktueller Laserdrucker ist vom Schrott, und hat
einen Ethernetprintserver und kann nebenbei auch noch
Postscript.
Ob er USB hat, weiss ich gar nicht.

Vor dem Verschrotten hat man sogar noch eine volle
Tonerkassette eingesetzt.

Qualitaet ist, wie man sieht, nicht an den bezahlten
Preis gebunden.

von Michael (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf M. schrieb:
> Es geht nicht um das Auseinanderhalten von verschiedenen Geräten,
> sondern darum, dass für jeden USB-Port, an dem ein Gerät angeschlossen
> wird, der Treiber neu installiert werden muss. Was hat das mit der
> Zuordnung der Geräte zu tun?

Genau das macht Windows ja nicht. Wenn ein Gerät eine Seriennummer hat, 
wird genau einmal ein Treiber beim ersten Einstecken installiert. Danach 
kannst du es an jeden beliebigen USB-Port stecken, anhand der 
Seriennummer (und natürlich VID/PID) erkennt Windows das Gerät wieder 
und lädt den bereits installierten Treiber.

Hat das Gerät jedoch keine Seriennummer weiß Windows nicht, dass es sich 
um dasselbe Gerät handelt und installiert bei jedem weiteren Port, an 
dem du das Gerät ansteckt, den Treiber neu.

Ich wüsste auch nicht, wie man das sinnvoll anders lösen könnte. Eine 
einzelne Treiberinstallation reicht bei zwei Geräten (oder einem aber 
ununterscheidbaren Gerät) nicht, da jede Treiberinstallation eine andere 
Konfiguration haben kann (beim COM-Port beispielsweise die Baudrate).

von Rolf M. (rmagnus)


Bewertung
1 lesenswert
nicht lesenswert
Michael schrieb:
> Rolf M. schrieb:
>> Es geht nicht um das Auseinanderhalten von verschiedenen Geräten,
>> sondern darum, dass für jeden USB-Port, an dem ein Gerät angeschlossen
>> wird, der Treiber neu installiert werden muss. Was hat das mit der
>> Zuordnung der Geräte zu tun?
>
> Genau das macht Windows ja nicht. Wenn ein Gerät eine Seriennummer hat,

Ja, wenn…

> Hat das Gerät jedoch keine Seriennummer weiß Windows nicht, dass es sich
> um dasselbe Gerät handelt und installiert bei jedem weiteren Port, an
> dem du das Gerät ansteckt, den Treiber neu.

Es könnte aber wissen, dass es sich um den selben Typ von Gerät handelt, 
der schon mal angeschlossen war. Man braucht ja in der Regel nicht einen 
Treiber pro Gerät, sondern einen pro Gerätetyp.

> Ich wüsste auch nicht, wie man das sinnvoll anders lösen könnte. Eine
> einzelne Treiberinstallation reicht bei zwei Geräten (oder einem aber
> ununterscheidbaren Gerät) nicht, da jede Treiberinstallation eine andere
> Konfiguration haben kann (beim COM-Port beispielsweise die Baudrate).

Warum sollte ein Treiber nicht mehrere Geräte bedienen können, die 
unterschiedlich konfiguriert sind?

von Arne (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gerader Ast schrieb:

> Z.B. mein SanDisk USB-Stick wird an jeder Buchse ohne
> Treiberinstallation gefunden, während viele billige Sticks jedesmal eine
> Treiberinstallation erfordern.

Was ist das für ein merkwürdiges Betriebssystem?

von michael_ (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Da staunst du, was?
Unter W98 war das noch so.

Rolf M. schrieb:
> Warum sollte ein Treiber nicht mehrere Geräte bedienen können, die
> unterschiedlich konfiguriert sind?

Wird ja auch gemacht. Wenn man den Gleichen Drucker mehrmals hat.
Löscht man diese, wird man erst beim letzten gefragt, ob man den Treiber 
physisch entfernen möchte.

Es wird auch Unterschiede zwischen Datenspeicher und Geräten wie 
Druckern geben.
Datenspeicher brauchen nicht konfiguriert werden.
Bei Druckern u.ä. ist das sogar ein Vorteil.
An einem Port als SW-Drucker und am anderen Anschluß als Farbe.

von Michael (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf M. schrieb:
> Warum sollte ein Treiber nicht mehrere Geräte bedienen können, die
> unterschiedlich konfiguriert sind?

Der Treiber existiert physisch im Dateisystem auch tatsächlich nur 
einmal.

Wenn der fünfmal installiert wird (wegen der fünf USB-Ports) bedeutet 
das letztlich nur, dass in der Registry die notwendigen Eintragungen 
erzeugt werden.

Nur bei der ersten Installation des Treibers werden tatsächlich Dateien 
auf die Festplatte kopiert.

Außerdem ist dieser ganze Vorgang gar nicht so abenteuerlich, wie hier 
manche annehmen. Man wechselt den USB-Port, es erscheint "neue Hardware 
gefunden", dann irgendwann "das Gerät kann jetzt verwendet werden". 
Dieser Vorgang dauert vielleicht zehn Sekunden maximal. Einzig das erste 
Vorkommen eines neuen Geräts, für das Windows keinen Treiber mitbringt, 
dauert länger, da zunächst online gesucht wird - und erst dann - wenn 
dies zu keinem Erfolg führt, belästigt Windows den Anwender mit dem 
Dialog in dem man den Pfad zum Installationsverzeichnis angeben soll.

Aber auch hier muss man nur bei einer Mehrdeutigkeit selbst Hand 
anlegen. Ist das Treiber-Beschreibungs-File (*.inf) eindeutig, macht 
Windows alles selbst. Ist das File nicht eindeutig bekommt man eine 
Liste aller Möglichkeiten und muss das richtige Device selbst auswählen.

Ich entwickele seit vielen Jahren USB-Geräte. Wenn die Descriptors okay 
sind, gibt es keine Probleme beim Anwender. Meistens sind die USB-Geräte 
schrottig implementiert. Selbst "Compound-Devices" mit vielen Interfaces 
(HID, CDC, MSD) installiert Windows seit vielen Jahren ohne irgendein 
Mucken völlig automatisch.

Probleme kommen meistens durch fehlende Seriennummer, proprietäre 
Treiber, fehlende oder ungültige Code-Signatur und schlechte 
Implementierung der Standby-Geschichte. Wenn man seinem Device eine 
Seriennummer gibt und sich an die Standardgeräteklassen hält, so dass 
Windows mit Bordmitteln auskommt, kann gar nichts schief gehen.

von Sven S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Michael schrieb:
> Der Treiber existiert physisch im Dateisystem auch tatsächlich nur
> einmal.
>
> Wenn der fünfmal installiert wird (wegen der fünf USB-Ports) bedeutet
> das letztlich nur, dass in der Registry die notwendigen Eintragungen
> erzeugt werden.

Für Eintragungen in der Registry braucht es 20 Sekunden?

Habe hier zwei verschiedene USB-Geräte der gleichen Geräteklasse 
(Datenlogger) vom gleichen Hersteller. Der Hersteller hat insgesamt 6 
verschiedene solche USB-Geräte im Programm und einen Treiber für alle 
Geräte. In der *.inf Datei findet man die VID/PID von allen 6 Geräten 
gelistet. Beim ersten Einstecken von Gerät 1 wird der Treiber geladen 
und es rödelt ca. 20 sec. Stecke ich nun an der gleichen Buchse das 
Gerät 2 ein, dann rödelt es erneut 20 sec. Nur für Einträge in der 
Registry etwas lange, wie ich finde.

von bluppdidupp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe gerade mal spaßeshalber per Smartphone-Timer nachgemessen:
Eine 0815-China-Webcam und ein ft232r-Adapter sind bei mir hier nach 
Umstecken in einen anderen Port jeweils binnen 2s verwendbar.
Damit hätte ich ehrlich gesagt nicht gerechnet, gefühlt kam mir das auch 
immer  recht langsam vor.
Könnte ggf. dem geschuldet sein, dass die Anzeige der "...ist 
eingerichtet und kann verwendet werden"-Meldung der Realität teilweise 
sogar mehr als 10 Sekunden hinterher hängt - Ich vermute fast das 
Windows die aus irgendwelchen Gründen absichtlich verzögert ausgibt.

Ein zuvor noch nicht angeschlossen gewesener 
"RD9700"-USB-Ethernet-Adapter war nach knapp 4s einsatzbereit (wenn ich 
vorheriges googlen nach einem passenden Treiber nicht mitzähle - 
Verflucht seine die Hersteller, die ihre Treiber nicht per Windows 
Update verfügbar machen. Mitgezählt ist allerdings die 
Treiber-Vorinstallation per dpinst)
Umstecken in anderen Port dann erneut fast genau 2s bis der 
Netzwerkadapter auftauchte und anfing per DHCP eine IP zu beziehen.

Andere USB-Geräte habe ich gerade leider nicht zum Testen zur Hand.
Könnte mir aber gut vorstellen, das sehr lange Initialisierungszeiten 
womöglich an den jeweiligen Treibern selbst liegen könnten.

(Getestet unter Windows 10 (19042, x64) auf Ryzen 5 1600X mit Samsung 
970 EVO SSD)

von Leftypiet (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Es wäre mir unter Windows allgemein nicht anders bekannt.
Dort brauche es für JEDE USB Buchse erneut den Treiber... :-(

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Bewertung
0 lesenswert
nicht lesenswert
Gerader Ast schrieb:
> Ist bei Windows nicht immer so, sondern nur bei Devices ohne
> Seriennummer.

Wenn man mehere Devices des gleichen Typs hat, dann passiert das auch 
bei Seriennummern wieder, weil für jede Seriennummer dann ein Eintrag 
angelegt wird.

Es bleibt dabei: Die USB-Implementierung auf Windows ist krank. Es muss 
absolut nichts installiert oder gespeichert werden, denn USB-Devices 
tragen die Informationen welcher Treiber zu ihnen gehört in sich. Linux 
und MacOS zeigen auch, dass es richtig geht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.