Каков вариант использования 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на хосте.

Другие вопросы по тегам