On Monday 10 June 2013 15:28:32 Peter Wu wrote: > On Monday 10 June 2013 14:58:07 Gerd Hoffmann wrote: > > On 06/10/13 10:42, Peter Wu wrote: > > > On Monday 10 June 2013 07:56:01 Gerd Hoffmann wrote: > > >> On 06/08/13 23:49, Peter Wu wrote: > > >>> When QEMU starts, it always changes the serial port parameters > > >>> including > > >>> baud rate. This confused my guest which thought it was outputting at > > >>> 9600 > > >>> baud while it was in fact changed to 115200. > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> After this patch, I can use `-serial /dev/ttyS0,baud=9600` to override > > >>> the > > >>> default baud rate of 115200. > > >> > > >> > > >> > > >> I think we should just flip the default to 9600. IIRC this is the > > >> power-on default baud rate of the 8250 uart family, so this should be > > >> the qemu default too. If a guest wants to use a higher baudrate it has > > >> to reprogram the uart anyway (and qemu will apply the guest changes to > > >> the host uart). > > > > > > > > > > > > FWIW, when I tried MODE.COM in ms-dos to change the baud rate, `stty -F > > > /dev/ttyS0 -a` still reported 115200 baud. This is on Linux 3.9 if that > > > matters. > > > > > > > > Hmm, with a linux guest changing the baudrate works just fine. Any > > chance mode.com takes a shortcut in case it thinks the rate didn't > > change? Does setting the speed first to 4800, then to 9600 work? > > I can confirm that a Linux guest can correctly control the speed. At home I > only have a USB serial, but that shouldn't matter. > 1. stty -F /dev/ttyUSB0 reports 9600 > 2. Start QEMU using: > qemu-system-x86_64 -enable-kvm -m 1G -serial /dev/ttyUSB0 \ > -cdrom ubuntu-12.04.1-desktop-amd64.iso > 3. stty -F /dev/ttyUSB0 reports 115200 before booting the live CD > 4. After boot, both the guest and host report 9600 again > 5. Changing it using stty -F /dev/ttyS0 from the guest is also visible on > both sides. > > On ms-dos I observe with 1.4.1 and 1.5.0 that the baud rate *is* changed > correctly with my USB serial converter. I will have to check with the > serial printer again whether I made a mistake before. I did actually have > to use `stty -F /dev/ttyS0 raw 9600` to avoid characters being eaten which > caused the serial printer to spit out empty lines or hang.
Aha, I just checked that machine again and realised something. The serial cable has only four pins connected to a printer (DB9-DB25), namely RX, TX, DTR and RTS. The remaining cables are cut (originally it was a null modem cable, but that did not work with the printer). So, what is the likely issue here? Having a printer instead of a serial console or the hardware (cables) missing some lines? FYI, when I set the speed and options manually after starting QEMU, the printer(s) work(s) as expected, otherwise I get garbage out. Regards, Peter