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

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

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

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

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

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

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

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

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

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

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

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

Отредактируем /etc/inittab и добавим:
s0:2345:respawn:/sbin/getty -L 115200 ttyS0 vt102
прямо за блоком:
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
Теперь запустим:
# init q
Чтобы заставить sysvinit перечитать его настройки и породить getty на /dev/ttyS0 .

Чтобы разрешить вход пользователю 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.18-6-686 root=/dev/sda1 ro console=ttyS0,115200n8 console=tty0
Теперь, при следующей перезагрузке вы сможете подключиться прямо к вашему компьютеру через последовательную консоль!

Комментариев нет: