Qemu - Перенаправляет ввод хоста в гостевой UART для ядра без операционной системы

Я пишу ядро ​​с нуля на Rust для 64-битных устройств ARM. Для тестирования я использую машину Qemu virt.

В настоящее время я могу писать символы с гостевой консоли на хост-консоль через UART. Теперь я хотел бы сделать обратное, т.е. отправить символы с консоли хоста на гостевой порт UART. Есть ли способ сделать это? Стоит ли добавить какие-то аргументы в Qemu?

Я запускаю машину Qemu virt со следующими аргументами:

qemu-system-aarch64 -M virt -cpu cortex-a57 -nographic -serial pty -S -kernel target/aarch64-unknown-none/debug/cortex-a57

Это дает мне новый элемент, который я могу прикрепить с помощью screen /dev/pts/mypty. Затем я запускаю программу, нажав c в консоли Qemu. Я хотел бы использовать тот же pty (или новый?) Для записи данных гостю.


person ney    schedule 17.04.2020    source источник


Ответы (2)


QEMU всегда перенаправляет вход и выход для гостевого UART в одно и то же место; это верно для всех '-serial stdio', '-nographic' (который неявно выполняет '-serial mon: stdio') и '-serial pty'. Так что ничего лишнего делать не нужно. Если вход UART не работает, проблема, скорее всего, связана с ошибкой в ​​вашем гостевом коде.

person Peter Maydell    schedule 21.04.2020

Просто прочтите тот же TTY, поскольку Qemu перенаправляет весь ввод в одно и то же место.

person Atilla Birer    schedule 22.04.2020