Page 1 of 2

Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 24. Jul 2019, 18:01
by eelstrebor1

ModEdit; related ticket: #18789: serial port problems with VB 6.0.10

After upgrading from 5.2 to 6.0, none of of my Windows guests (Win 10 and Win 7) will finish booting unless I disable the serial ports. Is this a bug? Ubuntu 18.04 host.

Windows 10 guest virtualbox log:

Your message contains 168386 characters. The maximum number of allowed characters is 60000.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 24. Jul 2019, 18:06
by scottgus1
Try that log again, zipped & attached with the forum's Upload Attachment tab.
Also if you get a Virtualbox error, use the Copy button to paste the exact error message you get.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 24. Jul 2019, 18:09
by eelstrebor1
no error messages

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 24. Jul 2019, 18:59
by eelstrebor1
I was able to get /dev/ttyS0 (COM1) to work with the Windows guests by changing from Host Device to Raw file. I still can't get the guests to boot when /dev/ttyS4 (user defined port) is enabled.
user@server1:~$ dmesg | grep ttyS
[ 0.931848] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 0.953693] 0000:04:01.0: ttyS4 at I/O 0xd150 (irq = 16, base_baud = 115200) is a 16550A

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 24. Jul 2019, 19:09
by scottgus1
The only thing I can recommend is to look at the manual, section 3.10. Also hunt up any mentions of serial port usage in the Linux Hosts forum.

Raw file does not seem like it will work to establish serial communication. I have also read on the forum that you need to have an actual device called by the name you are trying to connect the guest to. Silly question, of course, but does your host actually have a serial port it calls '/dev/ttyS4'? There is no correlation between what the host calls the device and the COM# you can tell the guest to put on the device.

If there is no error message when the guest fails to boot, what actually happens? Does the guest window just disappear without any indication of what happened?

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 24. Jul 2019, 19:15
by eelstrebor1
scottgus1 wrote:....... Silly question, of course, but does your host actually have a serial port it calls '/dev/ttyS4'? There is no correlation between what the host calls the device and the COM# you can tell the guest to put on the device.

Yes, there is a /dev/ttyS4 on the host. It worked as COM2 Host Device in VB 5.2.

scottgus1 wrote:If there is no error message when the guest fails to boot, what actually happens? Does the guest window just disappear without any indication of what happened?

No error message. I get the boot splash and then just locks up.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 24. Jul 2019, 19:17
by mpack
The log shows that the host device name being used is "/dev/ttyS0". So, same question that Scottgus asked, but different label.
scottgus1 wrote:Silly question, of course, but does your host actually have a serial port it calls '/dev/ttyS0'?

Mind you, it looks to me like you are configuring two serial ports in the guest, one ttyS0, the other ttyS4. Please zip up the VM ".vbox" file and attach it here.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 24. Jul 2019, 20:11
by eelstrebor1
user@server1:~$ lspci | grep 9835 #/dev/ttyS4
04:01.0 Serial controller: MosChip Semiconductor Technology Ltd. PCI 9835 Multi-I/O Controller (rev 01)

Turns out that it's an intermittent issue. Upon first launch I get an error message (see below) then when I close the error message and try to launch again Windows 10 completes the boot up and I can log in. It does the same thing with Win7. But, Windows10 Device Manager shows a yellow triangle next to this com port. Can't find a Windows 10 driver to update the driver without having to register with a service.
Failed to open a session for the virtual machine Win10Pro.

Failed to open host device '/dev/ttyS4' (VERR_DEV_IO_ERROR).

Result Code: NS_ERROR_FAILURE (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 25. Jul 2019, 12:27
by mpack
vbox file wrote:
<UART>
<Port slot="0" enabled="true" IOBase="0x3f8" IRQ="4" path="/dev/ttyS0" hostMode="RawFile"/>
<Port slot="1" enabled="true" IOBase="0xd150" IRQ="16" path="/dev/ttyS4" hostMode="HostDevice"/>
</UART>

Like I said, you have two serial ports enabled, which you did not mention. And I still see no substantial answer to the question of whether ttyS0 actually exists on the host.

And what's with that nonsense IOBase of 0xd150? and IRQ16 for the second enabled port? The second emulated serial port should have IOBase=0x2F8, IRQ=3. The settings of your host are irrelevant - it's a VM you are configuring, not your host.

I did wonder if the I/O error might be caused by hooking the port as a USB device while also configuring it as a serial port: happily that isn't the case.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 25. Jul 2019, 20:48
by eelstrebor1
mpack wrote:Like I said, you have two serial ports enabled, which you did not mention. And I still see no substantial answer to the question of whether ttyS0 actually exists on the host.

I did mention it above. Take a look at my posted dmesg output.

mpack wrote:And what's with that nonsense IOBase of 0xd150? and IRQ16 for the second enabled port? The second emulated serial port should have IOBase=0x2F8, IRQ=3. The settings of your host are irrelevant - it's a VM you are configuring, not your host.

Take a look at my posted dmesg output above. It shows a non-standard irq and i/o address for /dev/ttyS4.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 26. Jul 2019, 10:23
by mpack
eelstrebor1 wrote:[two ports]I did mention it above. Take a look at my posted dmesg output.

So you did. My bad.

eelstrebor1 wrote:Take a look at my posted dmesg output above. It shows a non-standard irq and i/o address for /dev/ttyS4.

Yes, and I told you that the settings of your host hardware are not relevant. The VM is using emulated hardware. There is absolutely no advantage in making the emulated values match the actual hardware of the host. It will only ensure that the guest OS can't use the emulated port. Please put it back to the standard values.

The only host feature that you must get right is the name of the host device that will be used by the emulation.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 19. Aug 2019, 02:55
by eelstrebor1
Still no-joy. When the serial ports are enabled on VB 6.x the guest will not fully boot but freezes. It only has problems with legacy serial ports. Everything works fine with VB 5.2 (and earlier) with the same settings. I don't know what the developers will need to resolve this issue.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 16. Nov 2019, 20:36
by eelstrebor1
Still no change. None of my Windows guests will boot in virtualbox 6.x with the legacy (not USB) serial ports enabled. Windows guests will boot with the serial ports disabled. Yes, extensions were upgraded with 6.x

Ubuntu 18.04, kernel 5.3.10-050310-generic.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 18. Nov 2019, 04:27
by scottgus1
There's a post somewhere on the forum tonight, I think it's Socratis', and I can't find it again, that shows there were changes in 6.0 to the serial code. See the changelog. Maybe something got broken?

Try downgrading to the latest version of 5.2.# that worked with your serial device. (Going backwards almost certainly would require an uninstall-reboot-reinstall, and so would going from 5.2 to 6.0) Then upgrade until serial doesn't work any more. Once you can pin it down to version x.y.z works but the next doesn't that may help the developers. Put the info in your bugtracker ticket.

Re: Windows guests with SerialPorts won't boot in 6.x (#18789)

PostPosted: 18. Nov 2019, 05:53
by eelstrebor1
I've already tried every VB 6.x. None of the Windows guests on any VB 6.x will boot with the legacy serial ports (/dev/ttyS#) enabled. It's been 3 months since I've reported this and it still doesn't work. At some point support for VB 5.2 will end and then what?