Forum: Mikrocontroller und Digitale Elektronik LibUSB32 Windows 10


von Kahn P. (Gast)


Lesenswert?

Hallo,

seit neuestem werden meine AVR's nicht mehr korrekt von LibUSB32 unter 
Windows 10 erkannt. Ist das nur lokal bei mir so ? In der Preview 
funktionierte alles erwartungsgemäß.

Danke für Hinweise
 K.

von Peter (Gast)


Lesenswert?

welcher USB? HID, VCP, CDC, MSD, ...?

von Kahn P. (Gast)


Lesenswert?

Hi

also ich nutze nicht die Option als HID-Gerät wie Maus Joy oder Key.
Statdessen wird das Gerät unterhalb von usb_lib_23 gelistet 
(HardwareManager)
und von mir direkt angesprochen, aus einem cpp Programm.

Die Auflistung findet nun nicht mehr statt.

Ging auch immer prima, im Moment ist es so, das ich zb. mit ArduinoIDE 
via Digispark den Code auf den AVR laden kann, dann aber dieser nicht 
als win_usb_lib_32 device gelistet wird, und somit auch nicht iteriert 
werden kann. Das ist jetzt neu unter W10 aufgekommen in der Preview von 
W10 lief alles.

Ich befürchte das sich da etwas verändert hat, bezüglich der ID und der 
zuordnung des Gerätes..

Danke für Hinweise
 Grüße
  K.

von Jim M. (turboj)


Lesenswert?

Abhilfe: Libusb mittels Zadig installieren:
http://zadig.akeo.ie/

Achtung: Du muss wissen, ob deine Software LibUSB-Win32, LibUSBk oder 
WinUSB braucht,, und das korrekt einstellen. Kann man aber auch notfalls 
durchprobieren, ich würde auf LibUSB-Win32 tippen.

von Kahn P. (Gast)


Lesenswert?

Hallo,

genau das war es, ich habe mir ein Driver "Kit" erstellen lassen mit dem
Tool libusb-win32-bin-1.2.6.0/Bin/inf-wizard.exe

Das funktinierte dann sofort, heißt das ich kann davon ausgehen,
das auf einem fremden Rechner das erstellte "Kit" = (inf datei drv usw)
nicht funktioniert so wie ich es nun erlebt habe mit dem alten 
erstellten "Kit" ?


Danke für Hinweise
 K.

von Jim M. (turboj)


Lesenswert?

Doku Lesen. Das Zertifikat für die .inf macht Zadig jeweils neu und 
schmeisst den Root-Key weg, nachdem er im System als "vertrauenswürdig" 
installiert wurde. Dadurch geht das "Kit" immer nur auf genau dieser 
Windows Installation.

Ausname: Mann nimmt auch das "vertrauenswürdige" Zertifikat auf die neue 
Installation mit, aber einfach Zadig.exe ausführen dürfte viel schneller 
gehen.

von Clemens L. (c_l)


Lesenswert?

Karsten S. schrieb:
> also ich nutze nicht die Option als HID-Gerät wie Maus Joy oder Key.
> Statdessen wird das Gerät unterhalb von usb_lib_23 gelistet (HardwareManager)
> und von mir direkt angesprochen, aus einem cpp Programm.

Ich würde dir empfehlen, falls möglich, die Firmware WinUSB-kompatibel 
zu machen. Der Zugriff über den LibUSB-Treiber ist dann immer noch 
möglich, aber auf modernen Windows-Versionen kannst du stattdessen den 
WinUSB-Treiber benutzen, der nicht mehr extra installiert werden muss.

von Kahn P. (Gast)


Lesenswert?

Danke verstehe ,

Ja WinUsb , aber dann wieder nicht für Windows XP ?

Danke euch!

Grüsschen
 K.

von Clemens L. (c_l)


Lesenswert?

Karsten S. schrieb:
> WinUsb , aber dann wieder nicht für Windows XP ?

Die "eigentlichen" Funktionen deiner Firmware werden dadurch nicht 
verändern, du kannst also immer noch mit LibUSB darauf zugreifen.

von Christian R. (supachris)


Lesenswert?

Karsten S. schrieb:
> Ja WinUsb , aber dann wieder nicht für Windows XP ?

Doch. WinUSB wird ab XP SP2 mit ausgeliefert. Die Firmware kann so 
bleiben, es sei denn, du benutzt ISO Streaming. Das kann WinUSB 
zumindest bis einschließlich Windows 7 nicht.
Wir haben extrem gute Erfahrungen mit WinUSB, läuft absolut zuverlässig 
und ist einfach ansprechbar.

von Kahn P. (Gast)


Lesenswert?

Naja einfach, es ist wohl ein heiden Aufwand habe gerade die
specs gesichtet. Die fülle der Informationen zum Theme ist
umfangreich, hast Du einen Hinweis für ein "Easy" Example ?

Danke für Hinweise
 Lg
  K.

von Christian R. (supachris)


Lesenswert?

Heiden Aufwand? Naja wir sind hier gestartet:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff540196(v=vs.85).aspx

Zwei Handles anfordern und dann Gerät öffnen...und dann kannst du auf 
die Pipes schreiben und lesen...

von Pit (Gast)


Lesenswert?

Wenn ich auf WinUSB umstelle brauche ich dann noch den ganzen Mist mit 
.inf und Zertifikaten oder fällt das dann auch weg?

Gruß Peter

von Peter II (Gast)


Lesenswert?

Pit schrieb:
> Wenn ich auf WinUSB umstelle brauche ich dann noch den ganzen Mist mit
> .inf und Zertifikaten oder fällt das dann auch weg?

steht zumindest nichts davon da.

https://msdn.microsoft.com/en-us/library/windows/hardware/hh450799(v=vs.85).aspx

von Pit (Gast)


Lesenswert?

Peter II schrieb:
> steht zumindest nichts davon da.

Oben schreibst Du,Du hast das schon gemacht und hier schreibst Du, dass 
Du es nicht weisst. Was nun?

von Peter II (Gast)


Lesenswert?

Pit schrieb:
> Peter II schrieb:
>> steht zumindest nichts davon da.
>
> Oben schreibst Du,Du hast das schon gemacht und hier schreibst Du, dass
> Du es nicht weisst. Was nun?

eventuell mal die Namen vergleichen? Ich hatte hier noch gar nichts 
geschrieben.

von Pit (Gast)


Lesenswert?

Peter II schrieb:
> eventuell mal die Namen vergleichen? Ich hatte hier noch gar nichts
> geschrieben.

Da war ich wohl etwas übereifrig - ich bitte um Nachsicht.

von Christian R. (supachris)


Lesenswert?

Pit schrieb:
> Wenn ich auf WinUSB umstelle brauche ich dann noch den ganzen Mist mit
> .inf und Zertifikaten oder fällt das dann auch weg?
>
> Gruß Peter

Naja eine inf brauchst du schon, bei LibUsb genauso. Die gibts als 
Template da auf der msdn Seite. Signatur muss nicht sein, denn WinUSB 
ist ja schon im Windows drin, also muss nix kopiert werden. Noch 
einfacher gehts mit der neuen WinUsb Erkennung über die OS String 
Descriptoren von MS, aber das geht dann meines Wissens erst ab Windows 7 
oder 8. Da wird dann automatisch der Treiber zugeordnet und das Gerät 
taucht als WinUSB Gerät auf. Naturlich geht dann kein eigener Name und 
keine eigene Driver GUID.

von Kahn P. (Gast)


Lesenswert?

Hallo,

ich habe jetzt via VS2015 mit dem XP DDK einen Opener geschrieben mit 
dem
ich den AVR auslesen kann. Leider verwende ich noch immer zdiag.exe um
mein Treiberpaket zu installieren. Ich möchte natürlich eine *.inf
Datei die direkt nur WinUSB.sys verwendet.

Meine *inf von ZDiag verwendet also immer libusb.sys
jede Veränderung bezüglich Vendor oder anderer Einträge führt dazu, das 
der Baustein nicht mehr als Universal Serial Gerät in der Hardwareliste 
erscheint. Lediglich mit dieser *.INF von ZDiag.exe kann ich das Gerät 
als
WinUSB Gerät mit meinem c++ Programm erfolgreich öffnen.

Vielen Dank für Hinweise was ich da verändern kann.
 Karsten


; DigiUSB.inf
; Copyright (c) 2010-2014 libusb (GNU LGPL)
[Strings]
DeviceName = "DigiUSB"
VendorName = "Van Ooijen Technische Informatica"
SourceName = "DigiUSB Install Disk"
DeviceID   = "VID_16C0&PID_05DF"
DeviceGUID = "{23F89E5D-616F-4DA0-AA2B-D08123AFDF2C}"

[Version]
Signature   = "$Windows NT$"
Class       = "Universal Serial Bus devices"
ClassGuid   = {88bae032-5a81-49f0-bc3d-a4ff138216d6}
Provider    = "libusb.info"
CatalogFile = DigiUSB.cat
DriverVer   = 06/18/2013, 6.1.7600.16385

[ClassInstall32]
Addreg = WinUSBDeviceClassReg

[WinUSBDeviceClassReg]
HKR,,,0,"Universal Serial Bus devices"
HKR,,Icon,,-20

[Manufacturer]
%VendorName% = libusbDevice_WinUSB,NTx86,NTamd64,NTia64

[libusbDevice_WinUSB.NTx86]
%DeviceName% = USB_Install, USB\%DeviceID%

[libusbDevice_WinUSB.NTamd64]
%DeviceName% = USB_Install, USB\%DeviceID%

[libusbDevice_WinUSB.NTia64]
%DeviceName% = USB_Install, USB\%DeviceID%

[USB_Install]
Include = winusb.inf
Needs   = WINUSB.NT

[USB_Install.Services]
Include    = winusb.inf
AddService = WinUSB,0x00000002,WinUSB_ServiceInstall

[WinUSB_ServiceInstall]
DisplayName   = "WinUSB - Kernel Driver 06/18/2013 6.1.7600.16385"
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\WinUSB.sys

[USB_Install.Wdf]
KmdfService = WINUSB, WinUsb_Install

[WinUSB_Install]
KmdfLibraryVersion = 1.9

[USB_Install.HW]
AddReg = AddDeviceInterfaceGUID

[NoDeviceInterfaceGUID]
; Avoids adding a DeviceInterfaceGUID for generic driver

[AddDeviceInterfaceGUID]
HKR,,DeviceInterfaceGUIDs,0x10000,%DeviceGUID%

[USB_Install.CoInstallers]
AddReg    = CoInstallers_AddReg
CopyFiles = CoInstallers_CopyFiles

[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller", 
"WinUSBCoInstaller2.dll"

[CoInstallers_CopyFiles]
WinUSBCoInstaller2.dll
WdfCoInstaller01009.dll

[DestinationDirs]
CoInstallers_CopyFiles = 11

[SourceDisksNames]
1 = %SourceName%

[SourceDisksFiles.x86]
WinUSBCoInstaller2.dll  = 1,x86
WdfCoInstaller01009.dll = 1,x86

[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll  = 1,amd64
WdfCoInstaller01009.dll = 1,amd64

[SourceDisksFiles.ia64]
WinUSBCoInstaller2.dll  = 1,ia64
WdfCoInstaller01009.dll = 1,ia64

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.