Page 1 of 1

Parallel port passthrough

Posted: 18. Oct 2012, 17:57
by RossM
Hi, I'm trying to setup parallel port passthrough using a 32-bit Windows XP guest on VirtualBox 4.2.0 (Windows 7 64-bit). I have a PCIe expansion card with a parallel port on the host machine (PCIe to Multi Mode Parallel Port). It's on LPT1, I/O Range 2010-2017, 2000-2007. I've tried enabling the port in VirtualBox with these commands:
vboxmanage modifyvm "Windows XP" --lptmode1 LPT1
vBoxManage modifyvm "Windows XP" --lpt1 0x2010

I've tried both port bases 0x2000 and 0x2010, but still have no luck in getting the port to work. The host's LPT1 port is set to "Never use an interrupt". The guest, however the guest's LPT1 port is set to I/O Range 0378-037F, 0778-077F. Could the I/O range mismatch cause the problem? If so, how to change the port range on the guest?

Can VirtualBox passthrough these types of I/O expansion parallel ports to the guest?

Thanks,
Ross

Re: Parallel port passthrough

Posted: 19. Oct 2012, 11:26
by mpack
The host IO Address range of your LPTx is not relevant to the VM. The address range specified in the VM config is the recipe for the simulated (guest) LPT. This must match what the guest driver expects. All VBox needs to know about the host LPT is its device name. The host OS will worry about physical IRQs and I/O addresses etc.

I.e. stick to a base address of 0x3F8 and IRQ 4. Provide a host device name.

The manual is very light on info on how to do this, but I would try :-

Code: Select all

VBoxManage modifyvm <vmname> --lpt1 0x3F8 4
VBoxManage modifyvm <vmname> --lptmode1 <host device name here - preferably in UNC form>

Re: Parallel port passthrough

Posted: 19. Oct 2012, 16:18
by RossM
I've tried (host port is back to LPT5)

VBoxManage modifyvm "Windows XP" --lpt1 0x3F8 4
VBoxManage modifyvm "WIndows XP" --lptmode1 LPT5:

(I've also tried "lpt5", "lpt5:" and "LPT5")

But unfortunately no luck. I've trying to use in-house software to talk to a Wiggler on the parallel port. It works fine on 32-bit hosts with a port. However, my host is 64-bit and didn't have a motherboard-based port, so I added the PCIe port. When I try the tool on the 32-bit guest OS, I don't get any communication out the port (I'm using a scope to look for bit activity). It seems like it's just not talking to the host's port.

Do I have the UNC form wrong possibly?

Thanks,
Ross

Re: Parallel port passthrough

Posted: 19. Oct 2012, 17:01
by mpack
I didn't realize you were talking about using a Wiggler. That makes a big difference. In fact you probably don't have a problem with the LPT port at all, just with the Wiggler.
RossM wrote:Do I have the UNC form wrong possibly?
Well, you haven't used the UNC form, so I guess that counts as wrong - but it probably doesn't matter since I doubt the Wiggler is assigned a UNC device name anyway.
RossM wrote:I've trying to use in-house software to talk to a Wiggler on the parallel port.
Even on physical hardware, Wigglers are notoriously fussy about the hardware details of the printer ports they're attached to (rather, the PC software that talks to the Wiggler is extremely fussy). I've never heard of anyone successfully using one with a VM, or with USB/LPT adapters etc.

You might be better off dual booting a 32bit OS on your host... and like I said there are no guarantees even then. I know people who keep ancient machines going precisely for problems like this. In the long term you should be looking for alternatives to the Wiggler - though I can't say I've had a lot of success with that either.

Re: Parallel port passthrough

Posted: 23. Nov 2012, 18:43
by Colinofski
please can someone tell me where you are typing in the commands?? Just under command prompt?

Re: Parallel port passthrough

Posted: 23. Nov 2012, 19:04
by mpack
On a Windows host, yes, we mean the command prompt (Cmd.exe). Remember to include "C:\Program Files\Oracle\VirtualBox" on your executable path, otherwise Cmd will not find the VBoxManage executable.