So I have started getting support emails – “Hey, how do I get your hardware to work in Vista?” Seeming invariably to be the 64-bit version. That’s weird, as far as I know there is a 64-bit build of the drivers included…
Of course, you may have correctly guessed that as an IT semi-professional, I
1) don’t let that poisonous crap anywhere near my home/work machines,
2) am not keen on buying a copy of every Microsoft OS just so I can test free give-away software against some obscure bug(s).
Last night I was able to ‘borrow’ a copy of Vista 64 and set up a test machine. And I discovered the cause of the problem! You can thank our good friends at Micro$oft for this: Vista-64 will not allow drivers to run unless the driver’s author is willing to pay for a digital signature, which starts at US$499 per year :-(
There are some apparent (but ugly) workarounds:
If you press the F8 key right as Windows is beginning to boot, you should get a black screen marked ‘Advanced Boot Options’. Select the last option – “Disable Driver Signature Enforcement” – and press enter. This should allow the driver to operate (bypass the microsoft tax) until the next time you reboot. Unfortunately this means that even if it works, you will have to repeat this step EVERY time you start the computer if you want to use the device.
You could try typing in a command prompt: bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS (yes, ‘DDISABLE’ is correct and not a typo). But it appears M$ have disabled this in some later updates.
You could get friendly with hackers and install a sneaky loader on behalf of your customer (sad when forcing a product to work as intended requires “sneaky”) – until you get caught and they not only add your drivers/loader to the global blacklist that gets pushed out to every Vista system with the “security updates”, but revoke your expensive certificate with the CA so you can never program drivers again (or get a new certificate, unless you can find a CA that missed the memo).
You could force your customers to get friendly with hackers to bypass signing more completely – well, until M$ releases a patch around it.
* * *
I wonder if it is possible to hack around on my (hardware developer) end. The hardware is a USB device, the firmware source is published and the device can receive firmware updates. Possibility for special “F***in’ Vista” firmware build: If the device detects a cold-boot, device enumerates as a USB keyboard, sends simulated ‘F8′ keypress and selects the Disable Signing boot option without any user intervention required. Feasible? Legal?…
December 13th, 2008 at 8:51 am
It’s a mess that hurts everyone in the long run. By making it harder to ship drivers, you just get worse drivers. Worse, you get hardware developers bodging their hardware to go through an existing driver for something else.
Exhibit A: the Pantone Huey colorimeter.
Rather than go through the pain of shipping custom native drivers on multiple OSes for a fairly specialist and low volume device, they had this thing present itself as a HID device.
This works on Windows and OSX by exploiting the fact that their current HID drivers allow an application to send custom messages to a HID device.
On Linux, doing this required the ArgyllCMS developer to ship a patched libusb that let him unbind the automatically-assigned Linux HID driver from the device and go at it directly. This was unreliable, several distributions refused to ship it, and a flamewar ensued about how the hell to cope with such crap properly. Currently, the HID driver has to individually blacklist things like this.
(Hi, by the way. I came across your blog whilst looking up ultra-low-input boost converters. Refreshing to find someone blogging about electronics beyond the Arduino level)
January 13th, 2009 at 4:37 pm
Unrelated, but pls chk PM’s @ boards.cexx.org – need redirect fix on index.html page for site…
January 20th, 2009 at 3:06 am
Sorry PC, could have sworn I fixed that when bringing the board back up for public use. Fixed now.