1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
"info chardev" not showing the real port in use
With Qemu 2.1.2
==============
pharidos@uks2:~/work/tplaf/☸ qemu-system-x86_64 -hda /space/pharidos/Disks/Blank_disk.qcow2 -serial telnet::0,server,nowait -nographic
QEMU 2.1.2 monitor - type 'help' for more information
(qemu) info chardev
parallel0: filename=null
serial0: filename=telnet:0.0.0.0:44189,server <====<<< serial console is using port 44189
compat_monitor0: filename=stdio
(qemu)
With Qemu 2.5.0
==============
pharidos@kvm:~/$ qemu-system-x86_64 -hda /space/pharidos/Disks/Blank_disk.qcow2 -serial telnet::0,server,nowait -nographic
QEMU 2.5.0 monitor - type 'help' for more information
(qemu) info chardev
parallel0: filename=null
serial0: filename=disconnected:telnet::0,server <====<<< serial console port not shown
compat_monitor0: filename=stdio
(qemu)
Also on quickly connecting to the ports via the netcat tool (hoping that it would make qemu to change its state from disconnected)
I see the following error "Error in getpeername: Transport endpoint is not connected"
pharidos@uks2:~/$ qemu-system-x86_64 --enable-kvm -hda Sisk.qcow2 -serial telnet::0,server,nowait -serial telnet::0,server,nowait -nographic
QEMU 2.5.0 monitor - type 'help' for more information
(qemu) info chardev
parallel0: filename=null
serial1: filename=disconnected:telnet::0,server
serial0: filename=disconnected:telnet::0,server
compat_monitor0: filename=stdio
(qemu)
# COnnect quickly to the serial ports via netcat
pharidos@kvm:~/$ netstat -tupan 2>/dev/null | grep "LISTEN.* $(pgrep -f qemu)/qemu" | cut -d: -f2 | cut -d' ' -f1
45814
42522
pharidos@kvm:~/$ ports=$(netstat -tupan 2>/dev/null | grep "LISTEN.* $(pgrep -f qemu)/qemu" | cut -d: -f2 | cut -d' ' -f1)
pharidos@kvm:~/$ for p in $ports; do echo | nc -w0 kvm $p >/dev/null; done
# Check the port status again. We see the the error "Error in getpeername: Transport endpoint is not connected"
(qemu) info chardev
parallel0: filename=null
serial1: filename=Error in getpeername: Transport endpoint is not connected
serial0: filename=Error in getpeername: Transport endpoint is not connected
compat_monitor0: filename=stdio
(qemu)
Seems like this has been fixed in recent versions of QEMU again:
$ qemu-system-x86_64 -serial telnet::0,server,nowait -nographic
QEMU 3.1.93 monitor - type 'help' for more information
(qemu) info chardev
parallel0: filename=null
serial0: filename=disconnected:telnet:0.0.0.0:41346,server
compat_monitor0: filename=stdio
Yes. This was fixed some time back and I can confirm it working with qemu 2.8
QEMU 2.8.1 monitor - type 'help' for more information
(qemu) info chardev
parallel0: filename=vc
serial0: filename=telnet:127.0.0.1:35293,server <-> 127.0.0.1:52820
compat_monitor0: filename=stdio
|