среда, 29 октября 2014 г.

Serial console для сервера

В моем домашнем сервере нет видеокарты (и ставить ее туда не планирую). Для управления сервером используется SSH, а на случай проблем с сетью решил добавить поддержку serial console.

Доступен только один последовательный порт, но если вы хотите узнать сколько последовательных портов поддерживается и какие у них названия, нужно выполнить команду:

$ grep ttyS /var/log/dmesg
[    1.107765] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.296739] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

Настраивать буду поддержку serial console в загрузчике, ядре и init.

Настройка Grub2

В файл /etc/default/grub нужно добавить поддержку serial

GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600"
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"

и обновить конфигурацию grub

$ sudo update-grub

Настройка init

В файл /etc/inittab нужно добавить строку

S0:2345:respawn:/sbin/getty -L ttyS0 9600 vt100

и перезагрузить init

$ sudo telinit q

Для тестирования нужно подключиться через последовательный порт к серверу и перезагрузить его. Если на терминале установлены правильные настройки (9600 8n1), то мы должны увидеть лог загрузки.

Особенности конфигурации

Если последней опцией ядра указано "console=ttyS0,9600", то лог загрузки системы (вывод от init) будет только на ttyS0. В это время на первом терминале ничего выводиться не будет. Это может создать впечатление, что сервер завис, особенно если запустится проверка дисков.

2 комментария:

  1. В моей версии убунту нет /etc/inittab. Как настроить в этом случае?
    uname -a
    Linux ubuntu14 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

    ОтветитьУдалить