LINUX.ORG.RU

Последовательные порты на VirtualBox

 , ,


0

1

В продолжение к Программирование последовательных портов (комментарий).

Установил tty0tty, который запускается при помощи systemd как модуль ядра.

Имеется виртуальная машина Booter, на которой запускается fdd (Floppy-диск с простым загрузчиком, написанным на nasm).

При помощи команд

VBoxManage modifyvm Booter --uart1 0x3F8 4 --uart-mode1=/dev/tnt0
VBoxManage modifyvm Booter --uart2 0x2F8 3 --uart-mode2=/dev/tnt1

устанавливаются настройки для последовательных портов виртуальной машины.

Имеется программа на nasm, устанавливающая системный стек, запускающая основной код и уходящая в бесконечный цикл (простой bootloader).

Проблема:

  1. при первом запуске виртуальной машины программа успешно выполняется и уходит в бесконечный цикл;
  2. при закрытии виртуальной машины появляется сообщение «Powering VM off», которое задерживается на 50%, после чего виртуальная машина «подвисает», но в конечном итоге закрывается через некоторое время;
  3. повторный запуск этой же виртуальной машины приводит к зависанию хостовой системы (работает только курсор либо полное зависание).

Проблема появилась после того, как COM-порты виртуальной машины, привязанные к raw-файлам socat псевдотерминалов были привязаны к host-устройствам /dev/tnt*.

Сама программа выполняет пересылку байта данных из COM1 в COM2.

С чем может быть связано такое поведение?

UPD1: подключение COM1=/dev/tnt0 COM2=/dev/tnt1 для гостевой системы Linux (UART) приводит к самопроизвольным действиям в UEFI Boot menu -> UEFI Shell.

UPD2: в UEFI Shell выводятся последовательности символов, которые со времен все больше напоминают строковые константы меню VirtualBox Manager (https://imgur.com/a/GbJ0wTh).



Последнее исправление: Inqognitoo (всего исправлений: 2)