Archive for December, 2008

Trance vibe vs. Windows Vista x64

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?…

VMWare Player Network driver (and video, SCSI, etc.)

Problem: After installing some operating systems such as Vista* in a virtual machine (i.e. as a ‘guest’ OS) under VMWare Player, they cannot access the internet because they don’t have a driver for VMWare’s virtual network card.

Solutions: This driver (and many others such as SVGA, SCSI, sound) are available in the ‘VMWare Tools’ package. Unfortunately this does not come with the free(beer) VMware Player, only higher-end products such as Server and Workstation that require payment and/or a ‘free’ (revocable at any time; costs your time and one valid email address) license key. They’re also a rather hefty download to scavenge out one lousy driver and copy it over. VMWare Tools includes .iso files, notably ‘windows.iso’ that can be mounted as a CDROM in the guest OS to install the drivers. This is the part you really want.

Windows.iso download direct from VMWare’s site: VMware ESX Server vmxnet Driver Update for Windows NT (.tgz file, use 7-Zip or similar freeware to extract)

This file contains basically an updated copy of Windows.iso (to fix a bug in a particular old version packaged with VMWare ESX Server) and nothing else; no registration or 200MB downloads required. (Despite the ‘for NT’ description, the .iso contains the full set of drivers for other Windows versions.) Score!

* for Vista and maybe others, you may have to explicitly force VMWare Player to present a specific virtual network card interface corresponding to one of the drivers included with VMWare Tools: open the .vmx file for your virtual machine in a text editor, find the network section and ADD the following line for each card:

Ethernet[n].virtualDev = “vmxnet”

replacing [n] with the virtual network card’s number shown in the other lines of settings, e.g. ethernet0. The ‘vmxnet’ driver is included in the Tools. Other choices I have heard of besides ‘vmxnet’ for this field include ‘vlance’ and ‘e1000’, though I don’t know where or if a full list of possible choices is publicly documented anywhere. Of those options, only the ‘e1000’ card seems to have a driver available for Vista x64 (the Tools does not appear to contain 64-bit drivers).