VirtualBox

Ticket #3636 (closed defect: duplicate)

Opened 5 years ago

Last modified 5 years ago

Problems with serial -> pipe on Windows host

Reported by: TKreuzer Owned by:
Priority: major Component: uart
Version: VirtualBox 2.1.4 Keywords: serial
Cc: Guest type: other
Host type: Windows

Description

I experienced the following problems with the serial port:

I am using ReactOS, which outputs debugging information on COM1 as plain text. So I setup a VM with COM1 as host pipe. When capturing this debugging info from the pipe, there are often characters missing. It gets worse if large amounts of text are sent on the port quickly. I tried different clients: One client I wrote myself, putty, IO Ninja. Always the same, although putty seemed to show the best results of all 3. The described method works flawlessly on VMware and QEMU with a pipe and on real hardware using a real serial cable or serial to usb. Reducing the guests BAUD rate improved the output but never to a satisfactory result.

The code of interest in ReactOS:

#define SER_LSR(x) ((PUCHAR)(x)+5) #define SER_THR(x) ((PUCHAR)(x)+0) #define SR_LSR_TBE 0x20

while ((READ_PORT_UCHAR(SER_LSR(ComPortBase)) & SR_LSR_TBE) == 0)

;

WRITE_PORT_UCHAR(SER_THR(ComPortBase), ByteToSend);

So it checks the Bit 5 (Empty Transmitter Holding Register) of the Line Status Register and waits until it's set. Then outputs the char on the data port.

I suspect that there is a buffer overrun, when VBox can't get all the data into the pipe quickly enough.

Change History

comment:1 Changed 5 years ago by TKreuzer

Just found an equal bugreport: #1548

comment:2 Changed 5 years ago by attoparsec

  • Status changed from new to closed
  • Resolution set to duplicate
Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use