Qemu - 将主机输入重定向到裸机内核的访客 UART
Qemu - Redirect host input to guest UART for bare metal kernel
我正在用 Rust 从头开始为 64 位 ARM 设备编写内核。出于测试目的,我使用 Qemu virt
machine.
目前,我可以通过 UART 从来宾向主机控制台写入字符。现在我想做相反的事情,即将字符从主机控制台发送到来宾 UART 端口。有没有办法做到这一点?我应该向 Qemu 添加一些参数吗?
I 运行 Qemu virt
机器具有以下参数:
qemu-system-aarch64 -M virt -cpu cortex-a57 -nographic -serial pty -S -kernel target/aarch64-unknown-none/debug/cortex-a57
它给了我一个新的 pty,我可以用 screen /dev/pts/mypty
附加它。然后我 运行 程序在 Qemu 控制台中点击 c
。
我想使用相同的 pty(或新的?)向来宾写入数据。
QEMU 总是将访客 UART 的输入和输出重定向到同一个地方;这适用于所有“-serial stdio”、“-nographic”(隐含的“-serial mon:stdio”)和“-serial pty”。所以你不需要做任何额外的事情。如果 UART 输入不工作,那么问题可能是您的访客代码中的错误。
只需读取相同的 TTY,因为 Qemu 会将所有输入重定向到同一个地方。
我正在用 Rust 从头开始为 64 位 ARM 设备编写内核。出于测试目的,我使用 Qemu virt
machine.
目前,我可以通过 UART 从来宾向主机控制台写入字符。现在我想做相反的事情,即将字符从主机控制台发送到来宾 UART 端口。有没有办法做到这一点?我应该向 Qemu 添加一些参数吗?
I 运行 Qemu virt
机器具有以下参数:
qemu-system-aarch64 -M virt -cpu cortex-a57 -nographic -serial pty -S -kernel target/aarch64-unknown-none/debug/cortex-a57
它给了我一个新的 pty,我可以用 screen /dev/pts/mypty
附加它。然后我 运行 程序在 Qemu 控制台中点击 c
。
我想使用相同的 pty(或新的?)向来宾写入数据。
QEMU 总是将访客 UART 的输入和输出重定向到同一个地方;这适用于所有“-serial stdio”、“-nographic”(隐含的“-serial mon:stdio”)和“-serial pty”。所以你不需要做任何额外的事情。如果 UART 输入不工作,那么问题可能是您的访客代码中的错误。
只需读取相同的 TTY,因为 Qemu 会将所有输入重定向到同一个地方。