1
0
mirror of https://github.com/KastnerRG/riffa.git synced 2025-01-30 23:02:54 +08:00

Fixing unsigned windows driver issue

Issue was invalid path in makefile.inc that allowed the build script to
"pass" but fail to sign the RIFFA catalog file and driver (!). This
issue has been fixed, and more comments have been added to the README to
avoid this issue in the future.
This commit is contained in:
Dustin Richmond 2016-06-29 14:43:38 -07:00
parent af7c5928f2
commit 4e898fcf35
4 changed files with 29 additions and 10 deletions

View File

@ -4,9 +4,15 @@ To build the Windows driver:
version 7600.16385.1). version 7600.16385.1).
2) Open a DDK command window environment for Windows 7 (which ever version 2) Open a DDK command window environment for Windows 7 (which ever version
you're targeting). you're targeting).
3) Move to the directory containing this README.txt and run: build -ceZ 3) Move to the directory containing this README.txt and run build -ceZ
4) The driver should be built and ready in the output directory along with a 4) The driver should be built and ready in the output directory along with a
Windows 7 catalog file and the coinstaller DLLs. Windows 7 catalog file and the coinstaller DLLs.
5) To build the installer you will need to build the driver using the DDK for
each architecture (x86/x64). If you want both setup.exe and setup_dbg.exe
executables, you will run the build command FOUR TIMES before step 6.
6) To build the setup.exe file, run the win7install.bat script from the DDK
unchecked/free command window. To build the setup_dbg.exe file, run the
script from the checked command window.
A few notes: A few notes:
@ -15,7 +21,11 @@ A few notes:
process will attempt to sign the catalog file with the UCSD certificate. You process will attempt to sign the catalog file with the UCSD certificate. You
don't have that, so you won't get a signed driver simply by building. You'll don't have that, so you won't get a signed driver simply by building. You'll
need to get a certificate from a certificate authority that is capable of need to get a certificate from a certificate authority that is capable of
cross-certificate kernel driver signing. See this page for more details: cross-certificate kernel driver signing to authenticate yourself (.pfx),
and the cross-signing certificate from that authority (.crt file available
from link). These should both be added to the windows certificate list and
and copied into the root folder for the windows driver (same location as this
README.txt file). See this page for more details:
http://msdn.microsoft.com/en-us/windows/hardware/gg487315.aspx http://msdn.microsoft.com/en-us/windows/hardware/gg487315.aspx
- Debugging on Windows is difficult because there exists no kernel log file. - Debugging on Windows is difficult because there exists no kernel log file.

View File

@ -1,4 +1,4 @@
@echo off @echo on
rmdir /s /q build rmdir /s /q build
md build md build
@ -14,12 +14,21 @@ xcopy /E /H /K /I /Y ..\..\..\c_c++\windows .\build\c_c++
xcopy /E /H /K /I /Y ..\..\..\java .\build\java xcopy /E /H /K /I /Y ..\..\..\java .\build\java
xcopy /E /H /K /I /Y ..\..\..\python .\build\python xcopy /E /H /K /I /Y ..\..\..\python .\build\python
xcopy /E /H /K /I /Y ..\..\..\matlab .\build\matlab xcopy /E /H /K /I /Y ..\..\..\matlab .\build\matlab
echo "%3"
if "%3" == "chk" ( if "%3" == "chk" (
"c:\program files\inno setup 5\iscc.exe" /dDebug="1" /o.\build .\build\win7.iss md .\build.\tmp_dbg
"c:\program files (x86)\inno setup 5\iscc.exe" /dDebug="1" /o.\build\tmp_dbg .\build\win7.iss
signtool sign /v /ac "..\GlobalSign Root CA.crt" /s my /n "University of California, San Diego" /t http://timestamp.verisign.com/scripts/timestamp.dll .\build\tmp_dbg\setup.exe
move .\build\tmp_dbg\setup.exe .\setup_dbg.exe
rmdir /s /q .\build\tmp_dbg\
) else ( ) else (
"c:\program files\inno setup 5\iscc.exe" /o.\build .\build\win7.iss md .\build\tmp
"c:\program files (x86)\inno setup 5\iscc.exe" /o.\build\tmp\ .\build\win7.iss
signtool sign /v /ac "..\GlobalSign Root CA.crt" /s my /n "University of California, San Diego" /t http://timestamp.verisign.com/scripts/timestamp.dll .\build\tmp\setup.exe
move .\build\tmp\setup.exe .\setup.exe
rmdir /s /q .\build\tmp\
) )
signtool sign /v /s my /n "University of California, San Diego" /t http://timestamp.verisign.com/scripts/timestamp.dll .\build\setup.exe

View File

@ -13,7 +13,7 @@
[Setup] [Setup]
AppName=RIFFA AppName=RIFFA
AppVersion=2.0 AppVersion=2.2.1
AppPublisher=University of California, San Diego AppPublisher=University of California, San Diego
AppPublisherURL=https://sites.google.com/a/eng.ucsd.edu/matt-jacobsen/riffa AppPublisherURL=https://sites.google.com/a/eng.ucsd.edu/matt-jacobsen/riffa
AppCopyright=Copyright (C) 2016 The Regents of the University of California. All Rights Reserved. AppCopyright=Copyright (C) 2016 The Regents of the University of California. All Rights Reserved.

View File

@ -22,7 +22,7 @@ POST:
inf2cat /driver:$(OBJ_PATH)\$(O) /os:7_x64 inf2cat /driver:$(OBJ_PATH)\$(O) /os:7_x64
! endif ! endif
! endif ! endif
signtool sign /v /ac "$(_INX)\GlobalSign Root CA.crt" /s my /n "University of California, San Diego" /t http://timestamp.verisign.com/scripts/timestamp.dll $(OBJ_PATH)\$(O)\$(INF_NAME).cat signtool sign /v /ac "$(_INX)\..\GlobalSign Root CA.crt" /s my /n "University of California, San Diego" /t http://timestamp.verisign.com/scripts/timestamp.dll $(OBJ_PATH)\$(O)\$(INF_NAME).cat
signtool sign /v /ac "$(_INX)\GlobalSign Root CA.crt" /s my /n "University of California, San Diego" /t http://timestamp.verisign.com/scripts/timestamp.dll $(OBJ_PATH)\$(O)\$(INF_NAME).sys signtool sign /v /ac "$(_INX)\..\GlobalSign Root CA.crt" /s my /n "University of California, San Diego" /t http://timestamp.verisign.com/scripts/timestamp.dll $(OBJ_PATH)\$(O)\$(INF_NAME).sys