Как подключить последовательный терминал к экземпляру KVM?

Возможно, я не понимаю, что KVM способен, но способность добавлять / удалять оборудование на виртуальной машине, по-видимому, подразумевает, что я могу добавить последовательный порт, который затем будет действовать как терминал.

Итак, мои вопросы:

  1. Какие настройки лучше всего подходят для гостевого дистрибутива FreeBSD? (Здесь очень много!)
  2. Как получить доступ к указанному терминалу с моего Linux-хоста?

Теперь я могу ответить на свой вопрос, исходя из комментария Штефана и двух связанных статей:

Вот решение:

  • Вам не нужно редактировать что-либо, связанное с конфигурацией хоста, если у него есть серийное устройство по умолчанию, указывающее на pty.
  • Убедитесь, что для параметра загрузки для вашего ядра добавлено следующее: serial=tty0 console=ttyS0,115200n8 . Обычно достигается путем редактирования /boot/grub/menu.lst
  • Настройте /etc/inittab и добавьте строку T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100 чтобы запустить getty и дать вам приглашение для входа.

Я могу подтвердить, что это работает для меня с использованием системы fedora (хотя мне пришлось установить enforcing=0 в качестве дополнительного параметра, потому что система, о которой идет речь, является fedora rawhide, использующей SELinux MLS).

Я думаю, что оттуда я, вероятно, смогу решить, как сделать то же самое для freebsd.

Спасибо, Стефан!

В ответ на то, как настроить вашу машину FreeBSD, есть два основных случая для получения серийного номера. Если вы устанавливаете FreeBSD только с последовательным интерфейсом, потребуются последовательные инструкции загрузчика. Если у вас уже есть консоль и вы просто хотите иметь последовательный доступ, следуйте инструкциям после установки.

Серийный загрузчик

  • Нажмите 2 на экране параметров загрузки FreeBSD, чтобы выйти в приглашение загрузчика.
  • тип set console=comconsole
    • если вы потеряете интерактивность в этой точке, проверьте, действительно ли скорость виртуальной скорости tty равна 9600
  • тип autoboot

Это должно обеспечить выполнение остальной части установки через последовательный интерфейс. Если вы хотите продолжить серийный доступ после установки FreeBSD, перед перезагрузкой в ​​конце установки вы захотите перейти в командную строку.

Послеустановочный сериал

На консоли:

  • type echo 'console="comconsole"' >> /boot/loader.conf
  • загрузить /etc/ttys в vi
  • Измените строку, начинающуюся с ttyu0 (может быть ttyd0 в других версиях FreeBSD)
    • На этой линии измените dialup на vt100 и vt100 on
  • после перезагрузки последовательный терминал должен показать процесс загрузки и завершить приглашение для входа в систему
    • Примечание: настройка console="comconsole" в /boot/loader.conf может привести к тому, что сообщения загрузки появятся только на последовательном интерфейсе. Просто измените /etc/ttys если вы не хотите, чтобы загрузочный журнал был серийным.

Рекомендации

http://www.freebsd.org/doc/handbook/serialconsole-setup.html

http://www.freebsd.org/doc/handbook/term.html

Ну, вы должны эмулировать последовательный порт в эмуляторе, конечно, и иметь доступ к нему на хосте. Гостевая ОС должна помещать что-то на свой «серийный последовательный порт», например, приглашение для входа, например, getty_ps. Теперь мне лично не пришлось использовать его таким образом. В основном эмулированный последовательный порт гостевой ОС используется для отладки информации (Haiku по-прежнему использует это по умолчанию), а затем он захватывается эмулятором (например, VMware) в виде простого текстового файла, чтобы иметь доступную информацию об отладке. Попробуем здесь что-то запустить на эмулируемой последовательной консоли в qemu.

Ответ OP работает, но когда я попытался с моим env (хост Linux, клиент Linux)

  1. serial=tty0 не нужен
  2. используя xterm вместо vt100 в /etc/inittab работает лучше (вы получаете цвет)