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

12

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

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

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

Ответы:

5

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

Вот решение:

  • Вам не нужно редактировать что-либо, связанное с конфигурацией хоста, при условии, что на нем есть последовательное устройство по умолчанию, указывающее на 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в качестве дополнительного параметра, потому что рассматриваемая система - это raworas от Fedora с запущенным SELinux MLS).

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

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

Сообщество
источник
Я думаю, что serial=tty0это ошибка и должна была быть console=tty0. Я не вижу "серийный" параметр ни в одном из документов ядра. Впрочем, указание нескольких консолей (в данном случае активной виртуальной консоли и последовательной консоли) имеет смысл.
mattdm
2

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

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

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

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

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

На консоли:

  • тип echo 'console="comconsole"' >> /boot/loader.conf
  • загрузить /etc/ttysв vi
  • Измените строку, начинающуюся с ttyu0 (может быть ttyd0 в других версиях FreeBSD)
    • На это изменение линии dialupк vt100и offк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

Питер Олсон
источник
0

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

Райхе
источник
0

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

  1. serial=tty0 не был нужен
  2. Использование Xterm вместо VT100 /etc/inittabработает лучше (вы получите цвет)
Энди Сонг
источник