gpt4 book ai didi

qemu - 如何使用 -nographic 和 -monitor 运行 qemu 但仍然能够将 Ctrl+C 发送到 guest 并使用 Ctrl+A X 退出?

转载 作者:行者123 更新时间:2023-12-04 18:37:18 24 4
gpt4 key购买 nike

我刚刚发现,如果您使用 -monitor telnet::45454,server,nowait -nographic 运行 QEMU ,然后 Ctrl-C 杀死 QEMU VM 而不是在 guest 上生成 SIGINT:How to pass Ctrl-C to the guest when running qemu with -nographic? | Unix & Linux Stack Exchange

但是,我不想删除 -monitor因为自动化监控命令很方便,例如它允许我创建一个帮助脚本:

echo 'savevm my_snap_id' |  telnet localhost 45454

有没有办法同时保留我的 Ctrl-C-monitor-nographic 合作?

完整的 QEMU 命令:
qemu-system-x86_64 -append 'root=/dev/vda console=ttyS0' -kernel 'bzImage' -drive file='rootfs.ext2.qcow2,if=virtio,format=qcow2' -nographic -monitor telnet::45454,server,nowait

在 QEMU 2.10.1、Ubuntu 17.10 上,完整的 QEMU 命令:
./x86_64-softmmu/qemu-system-x86_64 \
-append "root=/dev/sda console=ttyS0 nokaslr printk.time=y" \
-drive file="${dir}/out/x86_64/buildroot/images/rootfs.ext2.qcow2,format=qcow2" \
-kernel "${dir}/out/x86_64/buildroot/images/bzImage" \
-nographic \

如果我添加:
-chardev stdio,id=s1,signal=off \
-serial none -device isa-serial,chardev=s1

然后 Ctrl+C开始按预期工作,但 Ctrl+A X退出 QEMU 不起作用,这有时很烦人:我可以使用 telnetquit ,但它需要更多的打字/自动化。

http://lists.nongnu.org/archive/html/qemu-discuss/2018-04/msg00006.html

最佳答案

添加 -serial mon:stdio并删除其他 -serial选项

以下内容满足我的所有要求:

./x86_64-softmmu/qemu-system-x86_64 \
-append 'root=/dev/vda nopat nokaslr norandmaps printk.devkmsg=on printk.time=y console=ttyS0' \
-drive file="${dir}/out/x86_64/buildroot/images/rootfs.ext2.qcow2,if=virtio,format=qcow2" \
-kernel "${dir}/out/x86_64/buildroot/images/bzImage" \
-nographic \
-monitor telnet::45454,server,nowait \
-serial mon:stdio

或者对于 aarch64:
./aarch64-softmmu/qemu-system-aarch64 \
-M virt \
-append 'root=/dev/vda nokaslr norandmaps printk.devkmsg=on printk.time=y' \
-cpu cortex-a57 \
-drive file="${dir}/out/aarch64/buildroot/images/rootfs.ext2.qcow2,if=virtio,format=qcow2" \
-kernel "${dir}/out/aarch64/buildroot/images/Image" \
-monitor telnet::45454,server,nowait \
-nographic \
-serial mon:stdio \

在 QEMU 9d2a09063922757ec3640d93f6b35921ab95b1c2 上测试
(发布 v2.12.0-rc2)。

关于qemu - 如何使用 -nographic 和 -monitor 运行 qemu 但仍然能够将 Ctrl+C 发送到 guest 并使用 Ctrl+A X 退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49716931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com