2015-10-24 27 views
10

Próbuję użyć sterownika WinUsb.sys dostarczanego wraz z systemem Windows (w tym Windows 10 IoT Raspberry Pi 2). Korzystając z devcon.exe, widzę, że USB, którego próbuję użyć, jest połączone (nazywa się USB\VID_1234&PID_ABCD\5&3753427A&0&4), ale nie wiem jak wymusić na nim użycie sterownika WinUsb.sys.Sterownik WinUSB na Windows 10 IoT

Znalazłem some instructions on microsoft.com, ale wydaje się, że jest to standardowa instalacja systemu Windows, w której dostępny jest Menedżer urządzeń (którego nie mam na IoT). Przykład pliku INF na tej stronie odnosi się również do pliku CAT, który zakładam, że jest to sygnatura sterownika i nie wiem, jak to wygenerować (a nawet czy muszę). Jest także odniesienie do Windows NT (Signature = "$Windows NT$") i nie wiem, czy to musi być zmienione w IoT, czy nie (lub jeśli cokolwiek innego trzeba zmienić w IoT, jeśli o to chodzi).

A więc, używając devcon.exe i jakiegoś pliku INF, w jaki sposób mogę uzyskać Windows IoT, aby używać WinUsb.sys jako sterownika dla podłączanego urządzenia USB?

+1

To jest lepsze dla SuperUser. Zauważ, że twoje sterowniki muszą być skompilowane dla ARM. Czy to może być twój problem? –

+1

Sterownik WinUsb, który jest fabrycznie zainstalowany w systemie Windows 10 IoT, jest już skompilowany dla ARM. To tylko kwestia poinformowania systemu Windows (poprzez devcon.exe i plik INF), aby użył tego sterownika dla określonego sprzętu. – GTHvidsten

Odpowiedz

10

Po wielu próbach i błędach w końcu udało mi się to zrobić. Poniżej znajduje się kompletna INF plik dla przyszłości:


; 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 

zastąpienia identyfikatora dostawcy (VID) i identyfikator produktu (PID) z [Standard.NTarm] z odpowiadającym VID i PID USB, które dodajesz. Na koniec zastąp nazwy ProducentName i DeviceName u dołu poprawnymi informacjami o urządzeniu.

Umieść ten plik gdzieś na Raspberry Pi 2, używając SMB lub FTP.

SSH lub PowerShell do Raspberry Pi 2 i przejdź do folderu, w którym umieścisz plik INF. Uruchom następujące polecenia: devcon dp_add .\<name of your INF file>

Powinieneś zobaczyć następujący wynik: Driver package 'oem0.inf' added.

koniec zrestartuj RP2 (shutdown -r -t 0 z ssh/PowerShell).

Po ponownym uruchomieniu RP2 urządzenie powinno być wymienione w sekcji "Podłączone urządzenia" w domyślnej aplikacji startowej, a teraz powinieneś mieć możliwość korzystania z funkcji od Windows.Devices.Usb do komunikowania się z urządzeniem USB.