install.cmd 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. @echo off
  2. setlocal
  3. REM run this script from an Admin shell to set up ETW tracing
  4. set SCRIPTDIR=%~dp0
  5. REM set SDK_MANIFEST_PATH to the SDK install path (e.g. C:\Program Files (x86)\Oculus)
  6. for /f "delims=" %%a in ('reg query "HKLM\System\CurrentControlSet\Services\OVRService" -v "ImagePath"') do set SDK_MANIFEST_PATH=%%a
  7. set SDK_MANIFEST_PATH=%SDK_MANIFEST_PATH: ImagePath REG_EXPAND_SZ =%
  8. set SDK_MANIFEST_PATH=%SDK_MANIFEST_PATH:"=%
  9. set SDK_MANIFEST_PATH=%SDK_MANIFEST_PATH:\Service\OVRServiceLauncher.exe=%\Tools\ETW
  10. REM Add USERS Read & Execute privileges to the folder
  11. icacls . /grant BUILTIN\Users:(OI)(CI)(RX) >nul
  12. if %errorlevel% equ 0 goto CaclsOk
  13. echo Failed to set cacls, installation may fail
  14. :CaclsOk
  15. set OSTYPE=x64
  16. set RIFTENABLER_SYS=%windir%\System32\drivers\RiftEnabler.sys
  17. set OCUSBVID_SYS=%windir%\System32\drivers\OCUSBVID.sys
  18. set OVRDISPLAYRT_DLL=%windir%\System32\OVRDisplayRT64.dll
  19. if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto GotOSTYPE
  20. if "%PROCESSOR_ARCHITEW6432%"=="AMD64" goto GotOSTYPE
  21. set OSTYPE=x86
  22. REM XXX is this right?
  23. set RIFTENABLER_SYS=%windir%\System32\drivers\RiftEnabler.sys
  24. set OCUSBVID_SYS=%windir%\System32\drivers\OCUSBVID.sys
  25. set OVRDISPLAYRT_DLL=%windir%\System32\OVRDisplayRT32.dll
  26. :GotOSTYPE
  27. REM disable paging on x64 systems if stack walks are desired
  28. if %OSTYPE% neq x64 goto SkipRegCheck
  29. for /f "delims=" %%a in ('reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management" -v "DisablePagingExecutive"') do set REG_DPA=%%a
  30. if %REG_DPA:~-3% equ 0x1 goto SkipRegCheck
  31. echo ************************
  32. echo DisablePagingExecutive should be set if you want stack tracing to work on %OSTYPE%
  33. echo To disable paging run the following as Administrator:
  34. echo reg add "HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management" -v DisablePagingExecutive -d 0x1 -t REG_DWORD -f
  35. echo and reboot
  36. echo ************************
  37. :SkipRegCheck
  38. set RIFTDISPLAYDRIVER_DIR=%SCRIPTDIR%..\..\..\RiftDisplayDriver
  39. set RIFTCAMERADRIVER_DIR=%SCRIPTDIR%..\..\..\RiftPTDriver
  40. set KERNEL_EVENTS_MAN=%SDK_MANIFEST_PATH%\OVRKernelEvents.man
  41. if exist "%RIFTDISPLAYDRIVER_DIR%\RiftEnabler\OVRKernelEvents.man" set KERNEL_EVENTS_MAN=%RIFTDISPLAYDRIVER_DIR%\RiftEnabler\OVRKernelEvents.man
  42. if exist "%SCRIPTDIR%OVRKernelEvents.man" set KERNEL_EVENTS_MAN=%SCRIPTDIR%OVRKernelEvents.man
  43. echo Installing %RIFTENABLER_SYS% manifest...
  44. REM uninstall any existing manifest first
  45. wevtutil.exe uninstall-manifest "%KERNEL_EVENTS_MAN%"
  46. if %errorlevel% neq 0 echo WARNING: This step failed.
  47. wevtutil.exe install-manifest "%KERNEL_EVENTS_MAN%" /rf:"%RIFTENABLER_SYS%" /mf:"%RIFTENABLER_SYS%"
  48. REM make sure it worked
  49. wevtutil get-publisher OVR-Kernel > nul
  50. if %errorlevel% neq 0 echo WARNING: This step failed.
  51. echo Installed %KERNEL_EVENTS_MAN%
  52. set RFILTER_EVENTS_MAN=%SDK_MANIFEST_PATH%\RTFilterEvents.man
  53. if exist "%RIFTDISPLAYDRIVER_DIR%\rt_filter\RTFilterEvents.man" set RFILTER_EVENTS_MAN=%RIFTDISPLAYDRIVER_DIR%\rt_filter\RTFilterEvents.man
  54. if exist "%SCRIPTDIR%RTFilterEvents.man" set RFILTER_EVENTS_MAN=%SCRIPTDIR%RTFilterEvents.man
  55. echo Installing %OVRDISPLAYRT_DLL% manifest...
  56. REM uninstall any existing manifest first
  57. wevtutil.exe uninstall-manifest "%RFILTER_EVENTS_MAN%"
  58. if %errorlevel% neq 0 echo WARNING: This step failed.
  59. wevtutil.exe install-manifest "%RFILTER_EVENTS_MAN%" /rf:"%OVRDISPLAYRT_DLL%" /mf:"%OVRDISPLAYRT_DLL%"
  60. REM make sure it worked
  61. wevtutil get-publisher OVR-RTFilter > nul
  62. if %errorlevel% neq 0 echo WARNING: This step failed.
  63. echo Installed %RFILTER_EVENTS_MAN%
  64. set USBVID_EVENTS_MAN=%SDK_MANIFEST_PATH%\OVRUSBVidEvents.man
  65. if exist "%RIFTCAMERADRIVER_DIR%\OCUSBVID\OVRUSBVidEvents.man" set USBVID_EVENTS_MAN=%RIFTCAMERADRIVER_DIR%\OCUSBVID\OVRUSBVidEvents.man
  66. if exist "%SCRIPTDIR%OVRUSBVidEvents.man" set USBVID_EVENTS_MAN=%SCRIPTDIR%OVRUSBVidEvents.man
  67. echo Installing %OCUSBVID_SYS% manifest...
  68. REM uninstall any existing manifest first
  69. wevtutil.exe uninstall-manifest "%USBVID_EVENTS_MAN%"
  70. if %errorlevel% neq 0 echo WARNING: This step failed.
  71. wevtutil.exe install-manifest "%USBVID_EVENTS_MAN%" /rf:"%OCUSBVID_SYS%" /mf:"%OCUSBVID_SYS%"
  72. REM make sure it worked
  73. wevtutil get-publisher OVR-USBVid > nul
  74. if %errorlevel% neq 0 echo WARNING: This step failed.
  75. echo Installed %USBVID_EVENTS_MAN%
  76. REM XXX eventually add OVR-Compositor here...
  77. set LIBOVR_EVENTS_MAN=%SDK_MANIFEST_PATH%\LibOVREvents.man
  78. if exist "%SCRIPTDIR%LibOVREvents.man" set LIBOVR_EVENTS_MAN=%SCRIPTDIR%LibOVREvents.man
  79. REM get rid of stale dll's
  80. del /f /q "%SCRIPTDIR%LibOVRRT*.dll"
  81. set LIBOVR_PATTERN=LibOVRRT*_0_8.dll
  82. echo Looking for %LIBOVR_PATTERN% dll's
  83. REM this nightmare command copies the newest version of %LIBOVR_PATTERN% into the current directory without prompting...
  84. forfiles /p:"%SystemRoot%\System32" /m:%LIBOVR_PATTERN% /c "cmd /c xcopy /y /f /d @path \"%SCRIPTDIR%.\" >nul" >nul 2>nul
  85. if not exist "%SCRIPTDIR%..\..\..\LibOVR\Lib\Windows" goto NoLibOVRSource
  86. forfiles /s /p:"%SCRIPTDIR%..\..\..\LibOVR\Lib\Windows" /m:%LIBOVR_PATTERN% /c "cmd /c xcopy /y /f /d @path \"%SCRIPTDIR%.\" >nul" >nul 2>nul
  87. :NoLibOVRSource
  88. for /f "delims=" %%a in ('dir /b /o:d "%SCRIPTDIR%%LIBOVR_PATTERN%"') do set LIBOVR_DLL=%%a
  89. echo Installing %LIBOVR_DLL% manifest...
  90. REM uninstall any existing manifest first
  91. wevtutil uninstall-manifest "%LIBOVR_EVENTS_MAN%"
  92. if %errorlevel% neq 0 exit /b 1
  93. REM use absolute paths to the RT .dll, otherwise we risk picking up the wrong (e.g. installed) version from %PATH%
  94. echo wevtutil install-manifest "%LIBOVR_EVENTS_MAN%" /rf:"%SCRIPTDIR%%LIBOVR_DLL%" /mf:"%SCRIPTDIR%%LIBOVR_DLL%"
  95. wevtutil install-manifest "%LIBOVR_EVENTS_MAN%" /rf:"%SCRIPTDIR%%LIBOVR_DLL%" /mf:"%SCRIPTDIR%%LIBOVR_DLL%"
  96. REM note we can't do del /f /q "%SCRIPTDIR%%LIBOVR_PATTERN%" here because the binary has to be present for ETW enumeration to work
  97. REM make sure it worked
  98. wevtutil get-publisher OVR-SDK-LibOVR > nul
  99. if %errorlevel% neq 0 exit /b 1
  100. echo Installed %LIBOVR_EVENTS_MAN%
  101. if not exist "%SCRIPTDIR%..\..\..\Tools" exit /b 0
  102. echo You can now start/stop traces with the GUI:
  103. echo cd %SCRIPTDIR%..\..\..\Tools\TraceScript\ovrtap
  104. echo .\startovrtap.cmd
  105. echo or (command-line):
  106. echo cd %SCRIPTDIR%..\..\..\Tools\Xperf
  107. echo log