Welcome to Pete Brown's 10rem.net

First time here? If you are a developer or are interested in Microsoft tools and technology, please consider subscribing to the latest posts.

You may also be interested in my blog archives, the articles section, or some of my lab projects such as the C64 emulator written in Silverlight.

(hide this)

Installing Unsigned Drivers on Windows 8 64 bit (or: how to get STM ST-Link working)

Pete Brown - 07 January 2013

I recently did some work on my MikroElektronika ARM development board. This was the first time I fired up the board on my Windows 8 system. Everything in the IDE worked fine until I tried to do some deploying and debugging on the board itself. It was then that I realized the board's driver wasn't correctly installed. I looked in the device manager and, sure enough, the board had the little exclamation point next to it. It was recognized, just not available.

The first thing I did was reinstall the driver using the Mikroelektronika installer. Everything appeared to work, but the driver never actually installed. In fact, the directly the installer created was empty.

I install a lot of really strange hardware the average user will never see. Because of that, I've noticed a number of device driver installers not handling failure at all - they simply complete and return "success" regardless of what happens. People, fix your installers!

So, I unpacked the driver installer and tried to manually install it. Windows then told me it couldn't install the driver because it's unsigned. Aha!

With Windows 7, we started requiring all 64 bit drivers to be signed. Before that, it was a recommendation. With Windows 7, however, it was relatively easy for a power user to bypass this requirement and install unsigned drivers. With Windows 8, we've raised the bar to help make sure manufacturers only give you trusted, verified code. This helps prevent malicious folks from offering you drivers. (How many times have you searched for a driver and found 300 shady-looking sites that purport to have the driver? Yeah, like I'd install that.)

Now, that said, there are still some manufacturers who haven't yet signed their drivers. For those, this post will describe how to install anyway. Again, this is a workaround for the OEM not properly signing stuff. You should only run into this when testing beta stuff for them. If you run into it with production drivers, let the OEM know.

Rebooting in Advanced Mode

With previous versions of Windows, the advanced startup options required you to press a function key as the computer is booting. With Windows 8 and UFE boot, the boot (especially on a machine with a fast SSD), boot time is just too short to be able to press that key. Instead, Windows 8 handles the advanced boot from within Windows. One of the advanced boot options is the one to let you install unsigned drivers.

For me, the easiest way to get to the advanced boot menu is to shut down from the command prompt. Using Windows + X (or right-click the bottom left of the screen), get the power user menu. From that menu, choose "Command Prompt (Admin)" as shown here:

image

Then, at the administrator command prompt, type shutdown /r /o. The /r is for reboot, the /o is for the advanced boot options.

image

Now, I can't screenshot the advanced boot menu on this PC without a remote desktop session or something. Windows + Print Screen doesn't work there. So, here's the progression.

First, Windows will prompt you asking for what kind of action you want to take. Select the following:

  1. Troubleshoot
  2. Then Advanced Options
  3. Then Startup Settings

Then press the restart button. Your PC will then reboot. Once it reboots, you'll get the Advanced Startup Options menu. From that, you want to pick the "Disable driver signature enforcement" option. On my desktop machine, that is #7.

Windows will then boot normally, but with the option in place.

Installing the unsigned driver

Once you pick the option to allow unsigned drivers, then you can perform the installation as usual (using the installer or the .inf). Don't worry, it'll stick around after another reboot - it's not a safe mode, just a lifting of a restriction.

You'll still receive a warning, but this time, you get the option to perform the install anyway.

image

As long as you are sure the driver is from a trusted publisher, and that you're using the latest driver, go ahead and install it. If you are unsure at this point, then unsigned driver installs are not for you.

Once I did this, my STLink programmer (that's what the MikroElektronika programmer shows up as) showed up just fine, and began working:

image

That's all there is to it.

If you run into this, I highly encourage you to inform the OEM about the unsigned driver issue, and encourage them to sign their driver. If they then release a properly signed version, be sure to update directly to that so you no longer have any exceptions to the driver policy on your machine. This will certainly make future updates smoother for you.

Also, there are "tips" out there to permanently enable the advanced boot options. I discourage you from using this on a day-to-day machine as it will both promote bad practices and also make your boot time that much longer.

       
posted by Pete Brown on Monday, January 7, 2013
filed under:        

11 comments for “Installing Unsigned Drivers on Windows 8 64 bit (or: how to get STM ST-Link working)”

  1. Petesays:
    @VJ

    Windows RT (the ARM version of Windows) will run only Windows Store apps. You can create those in C++, JavaScript, or .NET. There's no backwards compatibility with Windows 7 as it is a completely new processor architecture.

    Windows 8 (the version that runs on intel architecture processors) will also run windows store apps, but it will run WPF, Silverlight, Windows Forms, and more on the desktop side. Anything you can run on Windows 7 should run here.

    Pete
  2. VJsays:
    @Pete


    Thanks for your reply !
    So you mean surface with windows 8 pro will support wpf, SL, windows forms etc, right http://www.microsoft.com/Surface/en-US/surface-with-windows-8-pro/home

    Do you have any information when it's going to be out as on microsoft sites it says it will come in early 2013, if you can tell me tentative that of it's launch it would be great, as i have to inform my management about this.

    Also one more query Will there be future versions coming for WPF 4.0 or Microsoft would stop further new versions development and support for WPF? As there are various blog on net stating about no future development in WPF anymore and kind of rumor is there, WPF is dead if you can put some light on it that would be great.



    Thank You
    Regards
    VJ
  3. Petesays:
    @VJ

    Surface with Windows 8 Pro runs all the x86/64 Windows Store apps as well as just about everything Windows 7 does. So yes, it's a great combination of tablet plus laptop replacement.

    I don't have a release date yet, on the pro above and beyond what the official sites say.

    WPF: WPF 4.5 was released this past fall. We don't have any futures information to share for any of the products at this point. Keep in mind that WPF is part of .NET and .NET is also part of the Windows Store development platform for Windows. As such, WPF typically benefits from any improvements made to .NET itself (good examples are the asynchronous stuff and TPL from .NET 4.5).

    Pete
  4. Petesays:
    @VJ

    Actually, just today we announced Feb 9 for the Surface with Windows 8 Pro release date.
    http://blogs.technet.com/b/microsoft_blog/archive/2013/01/22/growing-the-surface-family-surface-windows-8-pro-availability-confirmed.aspx

    Pete
  5. VJsays:
    @Pete

    Thank You very much for sharing the information.
    Very Helpful at this point of time. I believe Microsoft would continue its support for WPF for future versions by adding some more advance stuff in the stack.


    Thanks

    VJ
  6. Frank Kokotsays:
    @Pete
    Hi;
    I have same board stmeasymxprov7 and am having same problem win8-64. I'm in test mode build 9200 as I see on your instructions. I get all the way to installing the driver - st_link_v2_usb_driver (exe file). this install runs to completion but I never got the option to install unsigned driver. I started the session with the option 7 - allow unsigned drivers, but after completion I still get 'driver not available' for STM_32 usb. I have turned off whatever protections I can find, but still no go. Can you tell me the installer used for success or perhaps I'm missing something...

    Regards
    Frank
  7. Kensays:
    Thanks so much for this solution. I was pulling my hair out trying to install an unsigned driver for a legacy Sharp network printer and it would not work. I even called Sharp's local dealer's tech guy. While they had experienced similar problems and had gotten the drivers installed, he could not recall how they had accomplished the installs. Your instructions were great!

Comment on this Post

Remember me