2015-10-24 21 views
10

Tôi đang cố gắng sử dụng trình điều khiển WinUsb.sys đi kèm với Windows (bao gồm Windows 10 IoT của Raspberry Pi 2). Sử dụng devcon.exe Tôi có thể thấy rằng USB tôi đang cố gắng sử dụng được kết nối (nó được đặt tên là USB\VID_1234&PID_ABCD\5&3753427A&0&4), nhưng tôi không biết làm thế nào để buộc nó để sử dụng trình điều khiển WinUsb.sys.Trình điều khiển WinUSB trên Windows 10 IoT

Tôi đã tìm thấy some instructions on microsoft.com nhưng điều đó dường như dành cho cài đặt Windows chuẩn, nơi bạn có Trình quản lý thiết bị khả dụng (mà tôi không có trên IoT). Ví dụ về tệp INF trên trang này cũng đề cập đến một tệp CAT, mà tôi cho rằng đây là một số loại chữ ký trình điều khiển và tôi không biết cách tạo ra điều này (hoặc nếu tôi cần). Ngoài ra còn có một tham chiếu đến Windows NT (Signature = "$Windows NT$") và tôi không biết nếu điều đó cần phải được thay đổi cho IoT hay không (hoặc nếu bất cứ điều gì khác cần phải được thay đổi cho IoT cho rằng vấn đề).

Vì vậy, bằng cách sử dụng devcon.exe và một số loại tệp INF, làm cách nào tôi có thể sử dụng Windows IOT để sử dụng WinUsb.sys làm trình điều khiển cho thiết bị USB mà tôi đang gắn?

+1

Điều này phù hợp hơn với SuperUser. Lưu ý rằng các trình điều khiển của bạn phải được biên dịch cho ARM. Đây có phải là vấn đề của bạn không? –

+1

Trình điều khiển WinUsb được cài đặt sẵn với Windows 10 IoT đã được biên dịch cho ARM. Nó chỉ là vấn đề nói với Windows (thông qua devcon.exe và một tệp INF) để sử dụng trình điều khiển này cho phần cứng cụ thể. – GTHvidsten

Trả lời

10

Sau nhiều lần dùng thử và lỗi, cuối cùng tôi đã làm việc đó. Dưới đây là một hoàn INF-file để tham khảo trong tương lai:


; 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 

Thay Vendor ID (VID) và Product ID (PID) trong [Standard.NTarm] với VID tương ứng và PID của USB bạn đang thêm. Cuối cùng thay thế ManufacturerName và DeviceName gần phía dưới cùng với thông tin chính xác cho thiết bị của bạn.

Đặt tệp này ở đâu đó trên Raspberry Pi 2, sử dụng SMB hoặc FTP.

SSH hoặc PowerShell tới Raspberry Pi 2 và chuyển đến thư mục nơi bạn đặt tệp INF. Chạy lệnh sau: devcon dp_add .\<name of your INF file>

Bạn sẽ thấy kết quả sau: Driver package 'oem0.inf' added.

Cuối cùng khởi động lại RP2 (shutdown -r -t 0 từ SSH/PowerShell).

Khi RP2 được sao lưu thiết bị của bạn nên được liệt kê trong "Thiết bị được kết nối" trên ứng dụng khởi động mặc định và bây giờ bạn có thể sử dụng chức năng từ Windows.Devices.Usb để giao tiếp với thiết bị USB.

Các vấn đề liên quan