Wednesday, April 10, 2013

PCIe Parallel Port Passthrough w/ VMware Workstation 9

My neighbor Dave works for Jackson Kayak they are a small shop out of Sparta, TN and their infrastructure is very minimal since they don't really have a dedicated IT Pro. The other day they asked me where to find a hardware capable of running Windows 98. Needless to say I was a little surprised. After further inquiry it turns out they use a legacy app to control the ovens that they use to mold their kayaks. It only runs on Win98, and it requires a serial port to connect to the oven. I suggested compatibility mode but they swore that hey had tried it and that it was a no go. No problem I thought, we can pass a USB serial adapter through to a Win98 VM in Workstation and all will be well. I grabbed one of these bad boys, then tested the drivers in the guest OS and it worked great, then I called the application integrator and the plot thickened...

It turns out the application wont even install until you hook up one of those sentinel type dongles. It's basically a hardware license token that proves you are a legit user, and this particular one requires using a parallel port. Parallel ports were once the de facto standard for connecting to another technology that many still consider to be the Spawn of Satan and have now been widely replaced by USB. Ok, I think to myself, time for another dongle. Wrong. Those dongles dont actually expose a LPT port, they per this forum they just add a "usb print support" driver and have a little embedded chipset that communicates with the parallel port. That means a no go for the parallel port dongle. So I picked up one of these PCIe Cards instead.

All signs were pointing to success here and I thought that I was on the home stretch. I had all my drivers installed so I spun up my Win98 VM and attempted to pass the parallel port through in workstation (you have to actually add the parallel port before you boot it up, but you can connect it afterwards). Immediately I got a friendly error:

The "LPT1" device is used by another program. Failed to connect virtual device parallel0.

Scouring the internet I found tons of suggestions... I disabled my print spooler, I changed the LPT port assigned to the PCIe Card. Until finally, I tried something really intelligent, I right clicked on the VMware Workstation executable and ran it as Administrator. Voila! New Error! Wait... what?

Yep another error, but at least it was different, that means we are getting somewhere. This time I got the following error:

Cannot open VMparport driver for LPT1: The system cannot find the file specified Failed to connect virtual device parallel0.

Good times. So I broke out my Google Fu and started searching again. This thread was particularly useful. Apparently Workstation doesn't install the necessary parallel port drives if you dont have a parallel port on your computer when you install Workstation. I removed my Win98 VM from inventory, completely reinstalled Workstation, and rebooted. I then re-added my Win98 VM and attempted to connect my parallel port... success! The thing actually ended up working for the little authentication dongle too, so I was able to help a friend and learn a few new things, a good day overall. As always thanks for reading, and happy parallel porting.