diff options
Diffstat (limited to 'windows/usb_driver/README.txt')
-rw-r--r-- | windows/usb_driver/README.txt | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/windows/usb_driver/README.txt b/windows/usb_driver/README.txt new file mode 100644 index 0000000..99f514d --- /dev/null +++ b/windows/usb_driver/README.txt @@ -0,0 +1,67 @@ +To have a complete driver package, in addition to the .infs under this +directory the following steps are required: + +- add WinUSB co-installer DLLs from Windows Driver Kit for each architecture for qdb_device.inf +- generate catalog files for the .infs +- sign the catalog files + +----------------------------------------------------------------------------- + +Add coinstallers from Windows Driver Kit as instructed in +https://msdn.microsoft.com/en-us/library/windows/hardware/ff540283(v=vs.85).aspx#howto + +Example commands: + +mkdir qdb_driver\x86 +copy "C:\Program Files (x86)\Windows Kits\10\Redist\wdf\x86\winusbcoinstaller2.dll" qdb_driver\x86 +copy "C:\Program Files (x86)\Windows Kits\10\Redist\wdf\x86\WdfCoInstaller01009.dll" qdb_driver\x86 +mkdir qdb_driver\amd64 +copy "C:\Program Files (x86)\Windows Kits\10\Redist\wdf\x64\winusbcoinstaller2.dll" qdb_driver\amd64 +copy "C:\Program Files (x86)\Windows Kits\10\Redist\wdf\x64\WdfCoInstaller01009.dll" qdb_driver\amd64 + +Driver signing for Windows is documented at +https://msdn.microsoft.com/en-us/windows/hardware/drivers/install/driver-signing +but here's an abbreviated version: + +The .cat files are catalog files, that are derived from the .infs (and the +files they reference). They are created with inf2cat from Windows Driver Kit. + +Example commands for creating the catalog files: + +"C:\Program Files (x86)\Windows Kits\10\bin\x86\inf2cat.exe" /driver:"C:\Users\kaoikari1\work\qdb\windows\usb_driver\qdb_driver" /os:8_X64,8_X86,Server8_X64,Server2008R2_X64,7_X64,7_X86,Server2008_X64,Server2008_X86,10_X86,10_X64,Server10_X64 +"C:\Program Files (x86)\Windows Kits\10\bin\x86\inf2cat.exe" /driver:"C:\Users\kaoikari1\work\qdb\windows\usb_driver\rndis_driver" /os:8_X64,8_X86,Server8_X64,Server2008R2_X64,7_X64,7_X86,Server2008_X64,Server2008_X86,10_X86,10_X64,Server10_X64 + +Catalog files need to be signed in order for drivers to be installable. +It is done with signtool, which is included in Windows SDK. See the end of +this README for how to create a test certificate. + +Example commands to sign with a test key "Qt.io(Test)" in PrivateCertStore: + +"C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe" sign /v /s PrivateCertStore /n Qt.io(Test) /t http://timestamp.verisign.com/scripts/timstamp.dll qdb_driver\qdb_device.cat +"C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe" sign /v /s PrivateCertStore /n Qt.io(Test) /t http://timestamp.verisign.com/scripts/timstamp.dll rndis_driver\rndis_device.cat + +Signtool can also be used to verify that driver is correctly signed: + +"C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe" verify /pa /v /c qdb_driver\qdb_device.cat qdb_driver\qdb_device.inf +"C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe" verify /pa /v /c rndis_driver\rndis_device.cat rndis_driver\rndis_device.inf + +The drivers can be installed with pnputil: + +pnputil -a qdb_driver\qdb_device.inf +pnputil -a rndis_driver\rndis_device.inf + +----------------------------------------------------------------------------- + +Creating a test certificate: + +makecert -r -pe -ss PrivateCertStore -n CN=Qt.io(Test) QtIoTest.cer + +Test-signed drivers can only be installed, if the computer is in test mode, +which can be enabled with: + +bcdedit.exe -set testsigning on + +The test certificate also needs to be added to trusted root certification +authorities: + +certmgr.exe /add QtIoTest.cer /s /r localMachine root |