Каков вариант использования QEMU chardev pty
Я новичок в QEMU и играю с нимchardev
с. Я столкнулся с опцией под названием-chardev pty,id=id
. Поэтому я попытался создать виртуальную машину с-chardev pty,id=pty0
и получил сообщение.
char device redirected to /dev/pts/9 (label pty0)
Поэтому я попытался отправить на него некоторые данные:
root@super-pc:~# cat /dev/pts/9
и не увидел никакого результата.
Каков вариант использования этого чардева?
1 ответ
Это старый вопрос, но для людей, которые находят здесь путь через Google:
Настройка chardev сама по себе не особенно полезна, но если вы свяжете его с последовательным устройством...
-chardev pty,id=char0 -serial chardev=char0
...затем вы настроили виртуальный последовательный порт, который соединяет последовательное устройство на вашей виртуальной машине с соответствующим устройством pty на хосте.
Например, если я загружаю виртуальную машину Linux следующим образом:
qemu-system-x86_64 -enable-kvm -smp 1 -m 1024 \
-drive if=virtio,format=qcow2,file=fedora.cow \
-netdev user,id=net0 \
-device virtio-net-pci,netdev=net0 \
-serial mon:stdio \
-chardev pty,id=char0 \
-serial chardev:char0
Затем внутри виртуальной машины/dev/ttyS0
является последовательной консолью и подключен к устройству PTY, созданному-chardev pty
вариант. Предполагая, что при загрузке виртуальной машины я вижу:
char device redirected to /dev/pts/9 (label char0)
Затем на хосте я могу подключить программу последовательной связи к:
$ picocom /dev/pts/9
И внутри виртуальной машины, если я запустил:
echo hello world > /dev/ttyS1
Я буду в выводе изpicocom
:
hello world
Если я запущу оболочку на/dev/ttyS1
внутри виртуальной машины:
bash < /dev/ttyS1 > /dev/ttyS1 2> /dev/ttyS1
Тогда я смогу взаимодействовать с этой оболочкой/dev/pts/9
на хосте.