如何以编程方式将键盘事件发送到QEMU来宾?

时间:2017-01-23 12:51:46

标签: c qemu

让我们说我有一些预先存在的iso(例如,alpine linux)。我用

开始
qemu-system-x86_64 -enable-kvm -cdrom alpine-virt-3.5.0-x86_64.iso

此时,我想执行一些设置(并避免手动执行)。

我想,一种方法是使用xdotool,但这不太方便,因为整个Xorg会话将忙于一个QEMU来宾。

也许有更好的方法?可以通过QMP或QEMU C API完成吗?

1 个答案:

答案 0 :(得分:0)

一种可能的方法是让控制台串口并告诉qemu将来宾系统的串口重定向到主机的stdio:

qemu-system-x86_64 -enable-kvm -cdrom alpine-virt-3.5.0-x86_64.iso -append "console=ttyS0" -serial stdio

然后,您可以尝试在qemu-process的stdio上进行自定义设置。或者,您也可以使用侦听套接字并连接到它:-serial tcp::12345,server

毫无疑问,您应该努力使用可能用于自动设置的现有机制,例如Debian GNU / Linux等的预置文件,因为这样做可能非常容易出错。