Fragensteller
Gerätenamen für virtuelle COM-Ports (via USB) eintragen

Frage
-
Guten Tag!
Wir bauen verschiedene Geräte, die zu Servicezweckeneinen USB-Anschluß haben - realisiert über den internen
USB-Device Controller im Mikrocontroller (meist ARM-Cortex
M3 oder M4) mit einem einfachen Treiber als virtueller
COM-Port (CDC bzw. VCP).
Dazu haben wir bisher immer eine kleine INF-Datei mitgegeben,
die die Zuordnung der USB-IDs (Hersteller-ID und Produkt-ID,
VID und PID) zum Hersteller- und Gerätename im System
hinterlegt und auf den (in Windows bereits vorhandenen)
CDC-Treiber "usbser.sys" verweist.
Bei den verschiedenen Windows-Versionen ist das Verhaltenunterschiedlich:
Damals mit Windows XP konnte man IIRC die INF-Dateieinfach vorab installieren", dann wurde das Gerät beim
ersten Anschließen korrekt erkannt. Alternativ erst das
Gerät anschließen, dann im Gerätemanager mit der rechten
Maustaste auf das "unbekannte USB-Gerät" klicken und den
"Treiber" (der ja eigentlich gar keiner ist, sondern nur
ein Verweis auf einen bereits vorhandenen) "aktualisieren",
dabei die INF-Datei wählen. Anschließend stand das Gerät
mit dem richtigen Namen im Gerätemanager.
Bei Windows 7 ist die Vorab-Installation der INF-Dateinicht mehr möglich, man muß über den Geräte-Manager den
Treiber aktualisieren, das Ergebnis ist das gleiche.
Allerdings weist W7 darauf hin, daß der Treiber "nicht
signiert" sei - was für ein Schwachsinn in diesem Zusammenhang,
es wird ja gar nichts wirklich installiert, und der bereits
vorhandene (Original-MS!) usbser-Treiber dürfte wohl kaum
eine neue, zusätzliche Signatur brauchen...
Mit Windows 8.1 ist das Vorgehen grundsätzlich wie beiWindows 7, allerdings muß man hier vorher mit speziellen
Boot-Optionen umständlich dafür sorgen, daß man einen
"nicht signierten" Treiber überhaupt akzeptieren darf.
Bei Windows 10 hat Microsoft die Einbindung von CDC-Gerätenverbessert: Hier wird das Gerät anhand der USB-Geräteklasse
erkannt und korrekt als VCP eingebunden, ohne daß man dafür
irgendetwas tun müßte - allerdings nur mit der Bezeichnung
"Serielles USB-Gerät". Und die INF-Datei kann man nun
mangels Signatur überhaupt nicht mehr "installieren".
Und nun endlich die Frage:
Wie kann man in Windows 10 für einen solchen virtuellenCOM-Port den "richtigen" Namen (Hersteller und Gerätetyp)
zu den gegebenen IDs (VID und PID) im System eintragen?
Idealerweise würde diese Lösung dann auch zumindest unterWindows 8.1 funktionieren, so daß wir die Windows-Versionen
nicht unterscheiden müssen (und unter 8.1 die mühsame
Treiber-"Installation" vermeiden können)...
Danke
Tilo
- Bearbeitet Tilo-R Freitag, 2. August 2019 20:09 Zeilenumbrüche
Alle Antworten
-
Moin,
kannst Du Deinen Post bitte irgendwie so formatieren, dass der Zeilenumbruch greift und der Text ohne horizontales Scrollen lesbar ist?
Evgenij Smirnov
-
Würde ich ja gerne... Wie macht man das?
Bei der Eingabe sah das alles ganz richtig aus, anschließend habe ich mich selbst über das Ergebnis gewundert und geärgert. Was für eine grottige Foren-Software...!
Ich versuche mal händisch umzubrechen...
Grüße
Tilo
- Bearbeitet Tilo-R Freitag, 2. August 2019 20:01
-
Und die INF-Datei kann man nun mangels Signatur überhaupt nicht mehr "installieren".
Hmmm. Als nicht-Spezialist würde ich jetzt sagen: Du hast Deine Frage gerade selber beantwortet. INF in ein CAT-Paket packen, dieses signieren und dann kannst Du es auch einlesen. So etwas musste ich damals mit einem Druckertreiber von SAMSUNG machen, der unsigniert daher kam.
Evgenij Smirnov
-
Und was sagt der Hersteller dazu?
Signierte Treiber sind eigentlich schon lange eingeführt und sollten vom Hersteller geliefert werden können.
Standardtreiber, die in Windows eben bereits vorhanden sind, brauchen ja nicht installiert werden. Und was die Namensvergabe angeht, so kann man ja mal eine Eingabe per Feedback-Hub an Microsoft machen.Was die Forensoftware angeht:
Enter-Taste = Absatz (d.h. mit Leerzeile)
Shift+Enter = NewLine (d.h., ohne Leerzeile)Alles eine Frage der Gewöhnung.
Man kann auch fortlaufend schreiben, was dann je nach Browser einen automatischen Umbruch bei der Anzeige durchführt. Man muss da nicht selber auf Zeilenschaltungen achten.
Zusätzlich gibt es eben auch die Buttons für Codes, wbie da allerdings kein Zeilenumbruch passiert. -
Der Hersteller der Geräte sind wir selbst.
Der Hersteller des Betriebssystems ist Microsoft. Im Betriebssystem ist ein Treiber für CDC-Geräte bereits vorhanden. Diesen benutzen wir, daher tragen wir einen Verweis auf den vorhandenen Treiber ein. Natürlich müssen wir ihn dafür nicht erneut installieren, das ist doch genau der springende Punkt - warum müssen wir dann eine Signatur liefern?
Danke für den Hinweis auf Shift+Enter.
Fortlaufend schreiben funktioniert offenbar nur bei Tastatureingabe. Ich hatte den Text vorab geschrieben und dann in das Eingabefenster kopiert. In diesem Fenster wird der Text dann zwar umgebrochen angezeigt, tatsächlich wurden aber Bandwurmzeilen gespeichert.
-
Das weiß Windows aber noch nicht.
Um wohl eine ".Inf" zu "installieren" benötigt es wohl ein Zertifikat, unabhängig davon ob tatsächlich was installiert wird.
Andererseits:
Viele Informationen lassen sich auch in der Registry finden.
Prüfe halt mal, wie diese Einträge für deine Geräte auszusehen haben (auf einem anderen System) und trage die Informationen selber in die Registry ein. Wozu man allerdings auch wieder erhöhte Admin-Rechte braucht.
-
Ja, das ist wohl das Problem. Bei UAC ist das sinnvoller gelöst: dort kommt die Nachfrage erst dann, wenn tatsächlich höhere Rechte gebraucht werden...
Die Einträge für VCP sind in der Registry leider ziemlich weit verzweigt, aber wir sehen uns das auch nochmal näher an. Höhere Rechte während der "Installation" sind jedenfalls kein Problem.
Danke.