2017-01-23 81 views
1

假設我有一些預先存在的iso(例如,高山linux)。我開始與如何以編程方式將鍵盤事件發送給QEMU客人?

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

在這一點上,我想進行一些設置(並避免手動)。

我想這樣做的一種方法是使用xdotool,但它不會很方便,因爲整個Xorg會話將佔用一個QEMU來賓。

也許有更好的辦法嗎?它可以通過QMP或QEMU C API完成嗎?

回答

0

一種可能的方式將是對串行控制檯,並告訴QEMU重定向客戶系統的串行端口到標準輸入輸出的主機:

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

那麼你可以嘗試在做你的自定義安裝qemu進程的stdio。或者,您也可以使用偵聽套接字並連接到它:-serial tcp::12345,server

最後,您應該努力使用可能的現有機制來進行自動設置,例如用於Debian GNU/Linux等的預定義文件,因爲這樣做可能很容易出錯。