OSVR / OSVR-HDK-Windows-Drivers

Drivers and related code/data for improving the hardware experience for the HDK on Windows
18 stars 9 forks source link

OSVR HDK Windows Drivers

(and related code/data for improving the hardware experience)

Maintained at https://github.com/OSVR/OSVR-HDK-Windows-Drivers

For details, see http://osvr.github.io

For support, see http://support.osvr.com

Dependencies

Most of the scripts here require the Windows Driver Kit - version 10 is the default, so if that's what you have, you'll probably be able to minimize how many files you edit.

The executable installers require NSIS 3 (in beta last time I updated this).

To make a zip file of the infs automatically with make-zip, you'll need the 7-zip command line tools installed (I used Chocolatey to install it) such that you can run 7za in a command prompt and have something useful happen.

To fully enjoy these files, especially on Windows 8 and newer, you'll need a code-signing certificate (self-signed if you're using them on a test-signing-mode machine). Microsoft makes the rules for signed drivers, sorry.

Directories and Output Files

/Inf/

Signed inf and catalog files to enable the CDC serial port on the HDK (used for firmware upgrades, etc - not needed for basic usage). Suitable for Windows 8.1 and older - Windows 10 includes a universal CDC driver. Can be installed on any Windows-supported architecture (including ARM) using pnputil or the "have-disk" method in Device Manager.

Other inf files in this directory are primarily for appearance: they provide "friendly names" for OSVR HDK-related devices in the device manager without changing their behavior from the "in-box" drivers.

/Inf-NSIS-Installer/

This is a simple installer/bootstrap tool that supports installing the inf and cat described above into the system driver store (and onto any matching connected device). It supports x86 and x64, but not ARM or Itanium because it's a native-code-compiled binary.

By default it will pop up some dialog boxes as installers tend to do. For a fully silent install, run with the argument /S (case sensitive), and if you don't want even a UAC prompt either, you should run it as admin/elevated.

Uses dpinst internally, so it will append to the log in %SystemRoot%\DPINST.LOG if you're curious. DPInst, not the NSIS wrapper, is the one that will create the uninstall item in "Programs and Features" aka "Add/Remove Programs".

/Metadata/

Device Metadata (and Device Stage data) - Provides a nicer experience in Devices and Printers. The actual metadata files (cab files in disguise) are generated with Python and Jinja2 from the source files there.

Includes its own standalone NSIS installer, but...

/Combined-Installer/

An NSIS installer for both the INF-based drivers (critically the CDC driver, plus the naming drivers) and device metadata.

As mentioned above, inf drivers get uninstallers courtesy of dpinst. No uninstaller at the moment for the device metadata because it's tiny, harmless, and installed by a somewhat sophisticated device metadata toolkit that peers inside the metadata CAB, uses some raw Win32 API functions, and combines that information to compute the appropriate installation procedure, so figuring out an uninstaller would be a bit of a pain. Not to mention, the device metadata store is designed to handle easy replacement of old metadata by new based on timestamp and every build generates a new timestamp. (Microsoft doesn't really have an established method for getting these installed besides Windows Update or manually copying them. The requirements for the Windows Update route are not fully clear and/or not high enough ROI to the point that you probably don't have as many pretty icons in Devices and Printers as you'd like, even from premium device vendors. But hey, Sensics can move heaven and earth to get a premium experience :D )

License and Vendored Projects

This project: Licensed under the Apache License, Version 2.0.