summaryrefslogtreecommitdiffstats
path: root/windows/usb_driver/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'windows/usb_driver/README.txt')
-rw-r--r--windows/usb_driver/README.txt67
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