2015-10-24 15 views
10

Ich versuche, den WinUsb.sys-Treiber zu verwenden, der mit Windows geliefert wird (einschließlich Windows 10 IoT von Raspberry Pi 2). Mit devcon.exe kann ich sehen, dass der USB, den ich verwenden möchte, verbunden ist (er heißt USB\VID_1234&PID_ABCD\5&3753427A&0&4), aber ich weiß nicht, wie erzwungen wird, den WinUsb.sys Treiber zu verwenden.WinUSB-Treiber unter Windows 10 IoT

Ich fand some instructions on microsoft.com, aber das scheint für eine Standard-Windows-Installation zu sein, wo Sie Geräte-Manager verfügbar haben (die ich nicht auf IoT habe). Das Beispiel einer INF-Datei auf dieser Seite bezieht sich auch auf eine CAT-Datei, von der ich annehme, dass es sich um eine Art Treibersignatur handelt, und ich weiß nicht, wie ich das erzeugen soll (oder wenn ich es überhaupt tun muss). Es gibt auch einen Verweis auf Windows NT (Signature = "$Windows NT$") und ich weiß nicht, ob das für IoT geändert werden muss oder nicht (oder wenn irgendetwas anderes für IoT geändert werden muss).

Also, wie benutze ich devcon.exe und irgendeine Art von INF-Datei, wie kann ich Windows IoT WinUsb.sys als Treiber für das USB-Gerät, das ich anschließe, verwenden?

+1

Dies ist besser für SuperUser geeignet. Beachten Sie, dass Ihre Treiber für ARM kompiliert werden müssen. Könnte das dein Problem sein? –

+1

Der WinUsb-Treiber, der mit Windows 10 IoT vorinstalliert ist, ist bereits für ARM kompiliert. Es ist nur eine Frage von Windows (über devcon.exe und eine INF-Datei), diesen Treiber für die spezifische Hardware zu verwenden. – GTHvidsten

Antwort

10

Nach viel Versuch und Irrtum habe ich es endlich funktioniert. Hier ist eine komplette INF-Datei für zukünftige Referenz:


; WinUSB installation file for USB device 

[Version] 
Signature = "$Windows NT$" 
Class  = USBDevice 
ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6} 
Provider = %ManufacturerName% 
CatalogFile = WinUSBInstallation.cat 
DriverVer=09/04/2012,13.54.20.543 

; ========== Manufacturer/Models sections =========== 
[Manufacturer] 
%ManufacturerName%=Standard,NTarm 

[Standard.NTarm] 
%DeviceName% =USB_Install, USB\VID_1234&PID_ABCD 

; ========== Class definition =========== 
[ClassInstall32] 
AddReg = ClassInstall_AddReg 

[ClassInstall_AddReg] 
HKR,,,,%ClassName% 
HKR,,NoInstallClass,,1 
HKR,,IconPath,%REG_MULTI_SZ%,"%systemroot%\system32\setupapi.dll,-20" 
HKR,,LowerLogoVersion,,5.2 

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

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

[USB_Install.HW] 
AddReg=Dev_AddReg 

[Dev_AddReg] 
HKR,,DeviceInterfaceGUIDs,0x10000,"{ec55ee47-5758-4378-926b-68ed0aec8170}" 

; =================== Strings =================== 
[Strings] 
ManufacturerName="The name of the company producing your device" 
ClassName="Universal Serial Bus devices" 
DeviceName="The name of your device" 
REG_MULTI_SZ = 0x00010000 

Ersetzen Sie die Vendor ID (VID) und Produkt-ID (PID) in [Standard.NTarm] mit dem entsprechenden VID und PID der USB, den du hinzufügst. Schließlich ersetzen Sie den ManufacturerName und DeviceName unten mit den richtigen Informationen für Ihr Gerät.

Legen Sie diese Datei irgendwo auf dem Raspberry Pi 2, entweder mit SMB oder FTP.

SSH oder PowerShell zum Raspberry Pi 2 und gehen Sie zu dem Ordner, in den Sie die INF-Datei legen. Führen Sie den folgenden Befehl ein: devcon dp_add .\<name of your INF file>

Sie sollten folgendes Ergebnis sehen: Driver package 'oem0.inf' added.

Schließlich starten Sie den RP2 (shutdown -r -t 0 von SSH/Powershell).

Wenn das RP2 wieder hochfährt, sollte Ihr Gerät unter "Connected Devices" in der Standard-Startup-App aufgeführt sein, und Sie sollten jetzt die Funktionalität von Windows.Devices.Usb für die Kommunikation mit dem USB-Gerät verwenden können.