我通过以下方式运行QEMU版本3.0.0:
x86_64-softmmu/qemu-system-x86_64 -m 2560 -hda img.qcow2 -serial pty -serial pty
我的主机是Ubuntu Desktop 16.04,而我的来宾是全新(即默认配置)的Ubuntu Server 18.04。两者都是x86-64。
启动后,QEMU立即打印:
qemu-system-x86_64: -serial pty: char device redirected to /dev/pts/18 (label serial0)
qemu-system-x86_64: -serial pty: char device redirected to /dev/pts/19 (label serial1)
此外,info qtree
的输出(在QEMU的监视器中)为:
[...]
dev: isa-serial, id ""
index = 1 (0x1)
iobase = 760 (0x2f8)
irq = 3 (0x3)
chardev = "serial1"
wakeup = 0 (0x0)
isa irq 3
dev: isa-serial, id ""
index = 0 (0x0)
iobase = 1016 (0x3f8)
irq = 4 (0x4)
chardev = "serial0"
wakeup = 0 (0x0)
isa irq 4
[...]
因此serial0
和serial1
似乎应该完全相同。
根据{{3}},/dev/ttyS1
应该用于iobase为0x2f8
的串行端口,因此从上面的输出中我推断出serial1
应该通过{{1}使用}。
我可以正常工作,来宾中的/dev/ttyS1
和主机中的/dev/ttyS0
。
但是,我没有在来宾中使用/dev/pts/18
,在我看来,来宾中根本没有/dev/ttyS1
。
在来宾内部,serial1
的输出(根据this site应该显示现有的串行端口):
dmesg | grep ttyS
我想念什么?为什么访客内部似乎不存在[ 7.147289] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
?
答案 0 :(得分:1)
我发现了我的错误。
由于来宾启动需要花费很多时间(至少在我的计算机上),所以我总是立即使用loadvm after_startup_snapshot
。
我现在试图让来宾进行启动,/dev/ttyS1
的重定向工作正常。