Skip to content

Install Driver On Raspberry Pi 2

Jordan Rhee edited this page Mar 16, 2016 · 18 revisions

General information for Pi:

  1. Install Windows 10 IoT Core on Raspberry Pi
  2. Windbg setup (Kernel Debugger)
  3. Using SSH to operate PI remotely
  4. Using Windows file sharing to transfer files to and from your device

Installation of ROS driver in Full Driver Mode

  1. Build the driver and demos

  2. Copy roskmd.sys, rosumd.dll, and ros.inf from render-only-sample\ARM\Debug to c:\data on device

  3. Copy DolphinUniversal_1.0.0.0_ARM_Debug.appx and DolphinUniversal_1.0.0.0_ARM_Debug.cer from render-only-sample\demos\AppPackages\DolphinUniversal\DolphinUniversal_<version>\ to c:\data on device

  4. Copy Microsoft.VCLibs.ARM.Debug.14.00.appx from render-only-sample\demos\AppPackages\DolphinUniversal\DolphinUniversal_<version>\Dependencies\ARM\ to c:\data on device

  5. If your build number is less than 14288, unzip render-only-sample\scripts\Firmware.zip to c:\efiesp on the device, replacing the existing files.

  6. Copy iotshell.exe and iotshellext.dll from render-only-sample\scripts to c:\data on the device.

  7. SSH into device and run

     cd \data
     Devcon dp_add ros.inf
    
  8. Install DolphinUniversal and set it as the default application. You can do this either through the Windows Device Portal or from the command line:

     CertMgr.exe /add DolphinUniversal_1.0.0.0_ARM_Debug.cer /r localMachine /s root
     mindeployappx /Add /PackagePath:Microsoft.VCLibs.ARM.Debug.14.00.appx
     mindeployappx /Add /PackagePath:DolphinUniversal_1.0.0.0_ARM_Debug.appx
     iotstartup add headed 08cf3077-2a0c-4939-adab-9a8ef519b297_5nhc2nv1kqb5j!App
    
  9. If you are running build 10586 (aka. TH2), run

     sfpcopy iotshellext.dll c:\windows\system32\iotshellext.dll
    

    If you are running build 14269 (aka. RS1) or later, run

     sfpcopy iotshell.exe c:\windows\system32\iotshell.exe
    

Reboot the machine: shutdown /r /t 0

After the initial driver installation, follow the procedure here to update the driver during development.

Render Only Mode

By default, the driver is configured as a full display driver. To configure it in render-only mode, add the following registry keys and reboot

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RenderOnlySample /v RenderOnly /t REG_DWORD /d 1
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers /v DisableAutoAcpiPostDeivce /t REG_DWORD /d 1
reg add HKLM\SOFTWARE\Microsoft\XAML /v ForceWARP /t REG_DWORD /d 1

How to work around a non-booting system

If a failure in the driver is preventing the system from booting fully, you can use the following debugger commands to prevent the driver from loading. The system will then fall back to WARP and boot fully.

  1. Set a breakpoint on load of roskmd.sys

     sxe ld:roskmd.sys
    
  2. When the debugger breaks in at load of roskmd.sys, set the flag that tells roskmd to fail DriverEntry(), and continue:

     ed roskmd!RosKmdGlobal::s_bDoNotInstall 1
     g
    

How to uninstall

Follow the instructions above to prevent roskmd from loading, then run

devcon dp_delete oemN.inf

where oemN.inf is the name that Windows assigned the driver when you installed it. If ROS is the only driver you installed, it will be called oem0.inf. To see a list of all 3rd party driver packages on the system, run

devcon dp_enum