WinXP LPT1 Port Not Working

Discussions about using Windows guests in VirtualBox.
Post Reply
N3IC
Posts: 6
Joined: 22. Sep 2023, 15:59

WinXP LPT1 Port Not Working

Post by N3IC »

I followed the same advice from viewtopic.php?t=54187, running guest WinXP32 on Windows 11 with VB Version 7.0.10 r158379 (Qt5.15.2)

Just using: VBoxManage modifyvm "WinXP32" --lptmode1 "LPT3" causes no problems, but port not found in Guest. Manually added LPT1 inside WinXP32, but shows error and does not work.

When I add the setting: VBoxManage modifyvm "WinXP32" --lpt1 0x378 7 the Guest VM fails to execute, with the message "A critical error has occurred while running the virtual machine and the machine execution has been stopped."

Any suggestions?

---Robert
scottgus1
Site Moderator
Posts: 20945
Joined: 30. Dec 2009, 20:14
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, Linux

Re: WinXP LPT1 Port Not Working

Post by scottgus1 »

N3IC wrote: 22. Sep 2023, 16:13 VBoxManage modifyvm "WinXP32" --lptmode1 "LPT3"
From the linktd tutorial:
VBoxManage modifyvm <VMname> --lptmode1 <host LPT device name>
Does your host have 3 LPT ports?
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: WinXP LPT1 Port Not Working

Post by mpack »

LPT3 is possible, say if he's using a USB adapter. But then again USB adapters are not real LPT ports.
N3IC
Posts: 6
Joined: 22. Sep 2023, 15:59

Re: WinXP LPT1 Port Not Working

Post by N3IC »

Gents,

First, I didn't know there had been any responses here -- thought I'd receive an email for them. Plus I have to come here and then click "Notifications" to find it. Sorry, I'm not familiar with this platform!

When I look at Device Manager in Win11, it shows:
WCH PCI Express-PARALLEL (LPT3)
then clicking on it and selecting Resources it shows I/O Range DEFC-DEFF, IRQ 0x00000010 (16)

So I tried VBoxManage modifyvm "WinXP32" --lptmode1 "WCH PCI Express-PARALLEL (LPT3)"
and VBoxManage modifyvm "WinXP32" --lpt1 0xDEFC 16

no complaints at the command line, but when bringing up the VM I get:
Parallel#0 could not open 'WCH PCI Express-PARALLEL (LPT3)' (VERR_FILE_NOT_FOUND).
Parallel device 0 cannot attach to host driver (VERR_FILE_NOT_FOUND).
Result Code:
E_FAIL (0X80004005)
Component:
ConsoleWrap
Interface:
IConsole {6ac83d89-6ee7-4e33-8ae6-b257b2e81be8}

Then I tried the same thing except with VBoxManage modifyvm "WinXP32" --lptmode1 "LPT3"
bringing up the VM I get:
"A critical error has occurred while running the virtual machine and the machine execution has been stopped."

I tried VBoxManage modifyvm "WinXP32" --lpt3 0xDEFC 16
but the command line returned "error: Parallel port slot 2 is out of bounds (max 2)"

I got my VM back with VBoxManage modifyvm "WinXP32" --lpt1 off

I interpret this as meaning that the name LPT3 alone is correct as it seems to find what it needs, it then creates a critical error.

This is a PCI plugin parallel port, not a USB interface. I have one of those but I don't even think it can work as a bare parallel port without a printer attached. My limited understanding is that if the host is LPT3 it will actually show up as LPT1 in the guest anyway. I could change the Win11 setting to LPT1 I think (don't remember how it ended up on LPT3 when I installed it but there is an option under Device Manager to change it).

Any suggestions?

Thanks,
---Robert
javispedro
Posts: 59
Joined: 29. Jan 2022, 15:31
Primary OS: openSUSE
VBox Version: OSE other
Guest OSses: Old & New Windows, Linux

Re: WinXP LPT1 Port Not Working

Post by javispedro »

What was the error with what you tried on the original post? Can you also attach log files for this case?

Code: Select all

VBoxManage modifyvm "WinXP32" --lptmode1 "LPT3" 
VBoxManage modifyvm "WinXP32" --lpt1 0x378 7
Everything else you have been trying makes little sense. Quote from the LPT advice thread :

Step 1: Understanding

Configuring an LPT port requires that you supply the host device name, plus I/O base address and IRQ (Interrupt ReQuest) selections for the guest.
[...]
Just because the application simulates hardware doesn't make its own hardware requirements anything special. Hence the base address and IRQ settings for your host LPTx port is totally irrelevant, all you need to know is the device name, e.g. "LPT1" ("/dev/parport0" on Linux I think).
So it makes no sense to pass "--lpt1 0xDEFC" (that's your host's IO address!), or "--lpt3 0xDEFC" (same reason).
N3IC
Posts: 6
Joined: 22. Sep 2023, 15:59

Re: WinXP LPT1 Port Not Working

Post by N3IC »

I see your point (:>)

Changed back to --lpt1 0x378 7 and I found the log. I can't glean any meaning from it, maybe you can -- it's attached zipped to fit here.

Thanks.
Attachments
VBox.zip
(53.8 KiB) Downloaded 373 times
fth0
Volunteer
Posts: 5678
Joined: 14. Feb 2019, 03:06
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Linux, Windows 10, ...
Location: Germany

Re: WinXP LPT1 Port Not Working

Post by fth0 »

VBox.log wrote:
00:00:05.897926 [/Devices/parallel/0/] (level 3)
00:00:05.897927 
00:00:05.897927 [/Devices/parallel/0/Config/] (level 4)
00:00:05.897928   IOBase <integer> = 0x0000000000000378 (888)
00:00:05.897929   IRQ    <integer> = 0x0000000000000007 (7)
00:00:05.897930 
00:00:05.897930 [/Devices/parallel/0/LUN#0/] (level 4)
00:00:05.897931   Driver <string>  = "HostParallel" (cb=13)
00:00:05.897931 
00:00:05.897931 [/Devices/parallel/0/LUN#0/Config/] (level 5)
00:00:05.897932   DevicePath <string>  = "LPT3" (cb=5)
[...]
00:00:05.898167 HM: HMR3Init: Attempting fall back to NEM: VT-x is not available
[...]
00:00:07.375585 drvHostParallelGetWinHostIoPortsSub: Count=0 Type=0x28 Base=0xdefc End=0xdeff Flags=0x131
[...]
00:00:07.434061 !!         VCPU0: Guru Meditation -37 (VERR_NOT_SUPPORTED)
00:00:07.434086 Guest CPUM (VCPU 0) state: 
00:00:07.434094 eax=01240000 ebx=00000000 ecx=00000014 edx=0000037a esi=00000000 edi=0000fff0
00:00:07.434268 CPUM0: f000:ecf0 ec                      in AL, DX
First of all, the parallel port configuration looks correct, and the host's parallel port was reported by the Windows host OS at I/O port 0xdefc. When the VirtualBox BIOS tried to access the virtual control port at 0x037a (0x0378+2), a Guru Meditation -37 (VERR_NOT_SUPPORTED) happens.

Unfortunately, I cannot deduce the real cause for the Guru. The port access got intercepted, and VirtualBox normally should access the physical port 0xdefe (0xdefc+2) instead.

As a wild guess: Perhaps it plays a role that Hyper-V is active on the host ...
N3IC
Posts: 6
Joined: 22. Sep 2023, 15:59

Re: WinXP LPT1 Port Not Working

Post by N3IC »

Not that I can say I understand any of this, but I went to "turn windows features on or off" and found all of the Hyper-V settings. None of those checkboxes are enabled.
scottgus1
Site Moderator
Posts: 20945
Joined: 30. Dec 2009, 20:14
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, Linux

Re: WinXP LPT1 Port Not Working

Post by scottgus1 »

The Windows Features box isn't conclusive. Do you see a green turtle in the VM's status bar? If so, host Hyper-V is enabled. See viewtopic.php?t=99390
N3IC
Posts: 6
Joined: 22. Sep 2023, 15:59

Re: WinXP LPT1 Port Not Working

Post by N3IC »

Wow, this is getting quite complicated! Indeed I do have the green turtle.

It looks like quite a few steps to deactivate Hyper-V (which I had not heard of prior to this thread). Most troubling are various sections that state that the registry has to be changed on every boot, I guess via a batch file in the startup path.

I am running Win11 Pro so it seems it will require all of the posted steps. I'll note that my WinXP VM works perfectly fine other than I can't get the parallel port to run. Plus I don't know for sure if disabling Hyper-V will fix my LPT problem. My question is: What negative ramifications (if there are any) will come from disabling Hyper-V?

Now I'm thinking that perhaps it would be better to pursue dual-booting to either Win11 or a non-VM WinXP, although then I wouldn't have easy file transfers between the two. Or just keep around an old WinXP machine alongside the newer Win11.

Thanks for the advice!
fth0
Volunteer
Posts: 5678
Joined: 14. Feb 2019, 03:06
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Linux, Windows 10, ...
Location: Germany

Re: WinXP LPT1 Port Not Working

Post by fth0 »

N3IC wrote: 19. Jan 2024, 00:48 I don't know for sure if disabling Hyper-V will fix my LPT problem.
I don't know it either. But it would be interesting to know, so that other users with the same problem could profit. Perhaps you could try it for a test, if you prefer not to disable Hyper-V in the end.
N3IC wrote: 19. Jan 2024, 00:48 What negative ramifications (if there are any) will come from disabling Hyper-V?
Your Windows 11 host would be missing some of the stronger Windows security features. If you need/want them or not is a highly debatable topic. For example, some gamers disable them for performance reasons, and people with the need for the strongest security don't. In consequence, I won't try to persuade you to either side. ;)
klaus
Oracle Corporation
Posts: 1139
Joined: 10. May 2007, 14:57

Re: WinXP LPT1 Port Not Working

Post by klaus »

The parallel port passthrough code on Windows host was disabled with VirtualBox 7.0.0. Since then it gives this not so great diagnostics. On Linux it probably will still work (because it doesn't need such horrible hacks), without making any promises. It was never officially supported...
N3IC
Posts: 6
Joined: 22. Sep 2023, 15:59

Re: WinXP LPT1 Port Not Working

Post by N3IC »

If I downgraded to VirtualBox 6.1.50 on Win11 do you think the LPT configurations above will work? If so, will I lose my guest WinXP VM (it is all set up and I'd rather not have to go to the trouble of remembering how I got it created and configured)?
scottgus1
Site Moderator
Posts: 20945
Joined: 30. Dec 2009, 20:14
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, Linux

Re: WinXP LPT1 Port Not Working

Post by scottgus1 »

Downgrading to 6.1.50 should not kill your XP VM. That said, a backup is always a good idea.
klaus
Oracle Corporation
Posts: 1139
Joined: 10. May 2007, 14:57

Re: WinXP LPT1 Port Not Working

Post by klaus »

Keep in mind that 6.1.50 is the very final update of VirtualBox 6.1 which is past end of life since December 2023. There will be no fixes for it any more, no matter how serious the bugs are.

If someone would have an idea how to do parallel port passthrough safely on Windows we'd gladly accept a contribution. On Linux this is reasonably simple with a handful of ioctls, but on Windows we couldn't find a reasonable equivalent which works without kernel level trickery (and that's what we dropped for 7.0 and it won't come back).
Post Reply