qemu serial console
Juergen Lock
nox at jelal.kn-bremen.de
Tue Apr 11 18:46:26 UTC 2006
In article <200604110015.k3B0FJIk022680 at saturn.kn-bremen.de> I wrioe:
>In article <200604051404.k35E4QJw050394 at lurza.secnetix.de> you write:
>>Hi,
>>
>>I'm running the current version of qemu from the ports
>>collection (i.e. 0.8.0_5) with RELENG_6 (i.e. 6.1-BETA4)
>>on i386. Host and guest are both FreeBSD.
>>
>>Since the server is headless, I have to run qemu with
>>the -nographic switch. Basically that shouldn't be a
>>problem, because we're not using graphical applications.
>>
>>However, for out-of-band management, there must be a way
>>to connect to the console of the guest system. According
>>to the docs, "-serial stdio" should do the trick. But it
>>does not, it's simply dead (no output). Then I tried
>>"-serial file:foo", just to see if anything appears, but
>>the file is just one byte which is zero. :-(
>>
>>In the guest, I have enabled it in /etc/ttys:
>>
>> ttyd0 "/usr/libexec/getty std.9600" vt100 on secure
>>
>>And /dev/ttyd0 exists:
>>
>> crw------- 1 root wheel 0, 55 Apr 5 15:57 ttyd0
>>
>>And the getty is indeed running:
>>
>> 417 ?? I 0:00.02 /usr/libexec/getty std.9600 ttyd0
>>
>>But the tty is reported as "??". Shouldn't that be "d0"?
>>
>>There are no error messages in any log file or dmesg.
>>The virtual serial port is detected fine in the guest:
>>
>> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
>> sio0: type 16450
>>
>>Am I doing anything wrong? What do I miss?
>
>Try
> ttyd0 "/usr/libexec/getty 3wire.9600" vt100 on secure
You can also try the following patch (files/patch-hw-serial.c),
which I just submitted on qemu-devel:
Index: qemu/hw/serial.c
@@ -356,6 +356,7 @@
s->irq = irq;
s->lsr = UART_LSR_TEMT | UART_LSR_THRE;
s->iir = UART_IIR_NO_INT;
+ s->msr = UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS;
register_savevm("serial", base, 1, serial_save, serial_load, s);
@@ -440,6 +441,7 @@
s->irq = irq;
s->lsr = UART_LSR_TEMT | UART_LSR_THRE;
s->iir = UART_IIR_NO_INT;
+ s->msr = UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS;
s->base = base;
s->it_shift = it_shift;
More information about the freebsd-emulation
mailing list