пятница, 18 сентября 2009 г.

Как настроить консоль на последовательном порту в Ubuntu

Перевод статьи: How-To set up a serial console on Ubuntu

Этот урок проведёт вас через этапы, необходимые для настройки консоли на последовательном порту в Ubuntu Linux.

В отличие от других дистрибутивов, Ubuntu использует upstart вместо sysvinit и поэтому есть некоторые отличия этого урока от большинства уроков, которые вы можете найти в Интернете, описывающих настройку последовательной консоли.

Последовательная консоль становится необходимой, если она запущена на "безголовом" сервере (то есть не имеющим клавиатуры и экрана) или если вы не можете подключиться к серверу из-за неполадок в сети.

В этом уроке мы настроим последовательную консоль на сервере, компьютере к которому мы хотим получить доступ. Настройка клиента последовательной консоли описана в другой статье.

1. Проверка последовательных устройств

Чтобы найти устройства, доступные на компьютере, вы можете запустить:
$ dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Из выведенного можно определить, что имеется один последовательный интерфейс (/dev/ttyS0). Возможно на вашем компьютере будет более одного интерфейса. В этом уроке будем считать, что мы используем первое устройство (ttyS0). Если вы используете второе устройство, вам нужно заменить ttyS0 на ttyS1.

2. Настройка последовательной консоли на сервере

На сервере мы настроим:
  • Последовательную консоль на ttyS0
  • Отправку загрузочных сообщений на последовательную консоль
  • Заставим Grub выводить сообщения на последовательную консоль
2.1. Последовательная консоль

Для настройки последовательной консоли нам потребуется создать новый файл /etc/event.d/ttyS0, чтобы порождать getty на последовательном устройстве. getty позаботится о выводе приглашения для ввода имени пользователя и пароля.

Отредактируем /etc/event.d/ttyS0 и добавим:
# ttyS0 - getty
#
# Служба сопровождает getty на ttyS0 начиная с момента
# запуска системы и до её остановки.
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /sbin/getty -L 115200 ttyS0 vt102
Чтобы разрешить вход пользователю root (если вы включили учётную запись пользователя root на вашем компьютере) через последовательную консоль, вам нужно отредактировать файл /etc/securetty и добавить:
ttyS0
2.2. Заставим grub выводить сообщения в ttyS0

grub можно настроить на вывод сообщений в последовательную консоль. Отредактируйте меню grub и добавьте:
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
В разделе до различных ядер. Это приведёт к тому, что grub будет отображаться на последовательной консоли и вы сможете управлять grub через последовательную консоль или загружаться с использованием другого ядра.

Если используется ttyS1, замените --unit=0 на --unit=1.

Также, чтобы сообщения о загрузке выводились на последовательную консоль, вам нужно добавить к строке вашего ядра следующее:
console=ttyS0,115200n8 console=tty0
Тогда строка ядра будет выглядеть следующим образом:
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=uuuuuu-iii3-dddd-uuuu-iiiiiddddd ro quiet splash console=ttyS0,115200n8 console=tty0
Теперь, при следующей перезагрузке вы сможете подключиться прямо к вашему компьютеру через последовательную консоль!

1 комментарий:

Алексей Гаврилов комментирует...

https://help.ubuntu.com/community/SerialConsoleHowto
свежие изменения

Configuring upstart (Karmic and newer)
1) Create a file called /etc/init/ttyS0.conf containing the following:

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc or RUNLEVEL=[12345]
stop on runlevel [!12345]

respawn
exec /sbin/getty -L 115200 ttyS0 vt102