Примечание: ответ объединяет несколько решений с разных сайтов; на данный момент у меня нет возможности их проверить.
SysVinit
Пред- systemd Linux может использовать SysVinit в / и /etc/inittab на нерест getty на различных терминалах. Пример строки может выглядеть так (взято из этого старого руководства):
s0:2345:respawn:/sbin/getty -L 115200 ttyS0 vt102
Выскочка
Если ваша ОС использует upstart , процедура отличается. Например, есть следующее руководство:
Создайте файл с именем /etc/init/ttyS0.conf содержащий следующее:
# 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 RUNLEVEL=[12345]
stop on runlevel [!12345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102
Попроси upstart запустить getty
sudo start ttyS0
Systemd
Согласно этому сайту systemd решение может быть таким простым, как
Чтобы использовать последовательную консоль, просто используйте console=ttyS0 в командной строке ядра, и systemd автоматически запустит getty для нее.
Вы, вероятно, настроите свой GRUB2 для этого. Проанализируйте, что говорит Arch Wiki, и при необходимости настройте его на свой дистрибутив:
Чтобы grub включил последовательную консоль, откройте /etc/default/grub в редакторе. Измените строку GRUB_CMDLINE_DEFAULT чтобы запустить консоль на /dev/ttyS0 . Обратите внимание, что в приведенном ниже примере мы установили две консоли; один на tty0 и один на последовательном порту.
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,38400n8"
Теперь нам нужно сообщить grub, где находится консоль и какую команду запустить, чтобы включить последовательную консоль (обратите внимание, как указано выше для ядра Linux, можно добавить несколько терминалов ввода / вывода в grub, например, GRUB_TERMINAL="console serial" включит оба дисплей и серийный номер):
## Serial console
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=38400 --unit=0 --word=8 --parity=no --stop=1"
Перестройте файл grub.cfg с помощью следующей команды:
grub-mkconfig -o /boot/grub/grub.cfg
После перезагрузки getty будет прослушивать /dev/ttyS0 , ожидая 38400 бод, 8 бит данных, без проверки на четность и один стоп-бит. Когда Arch загружается, systemd автоматически запускает сеанс getty для прослушивания на том же устройстве с теми же настройками.
Оба сайта согласны с тем, что если вы не хотите, чтобы GRUB2 слушал на последовательном устройстве, а хотели только прослушать getty после загрузки, вам понадобится что-то вроде
systemctl enable serial-getty@ttyS0.service
systemctl start serial-getty@ttyS0.service
По запросу, по требованию
В случае возникновения каких-либо проблем помните, что getty - это просто программа, ее можно запустить по требованию или из rc.local . Обратитесь к man getty за подробностями. Я думаю, что ваша первая попытка может быть как
sudo getty -L 115200 ttyS0 vt102
(Изменить) Это отзыв от OP, он может помочь пользователям с подобными проблемами:
Я должен был сделать sudo su -c "…" чтобы он работал правильно.