дальнейшее чтение

дальнейшее чтение

Я хочу подключить свой ПК к терминалу DEC vt320 и вывести на него консоль Linux, а также вводить команды в терминал и отправлять ответ на экран. Я хотел подключиться к чему-то через telnet, но не знаю, как это сделать через последовательный порт. Мое последовательное соединение — /dev/ttyS0

решение1

Похоже, что Mint 19.3 использует systemd, поэтому, если Mint не изменил systemdконфигурацию родительских дистрибутивов (Ubuntu и, в конечном счете, Debian), следующие команды должны справиться с задачей.

Чтобы немедленно запустить последовательный порт для входа в систему в терминальном стиле:

sudo systemctl start serial-getty@ttyS0 

Чтобы конфигурация сохранялась после перезагрузки:

sudo systemctl enable serial-getty@ttyS0

После запуска первой из этих команд на терминале должно появиться приглашение на вход. Если этого не произошло, нажмите Enter на терминале один или два раза: это может помочь определить скорость передачи данных, на которой работает терминал.

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

Эта systemdконфигурация по умолчанию для последовательно подключенных терминалов включает автоматическое определение скорости последовательного порта для скоростей 115200, 38400 и 9600 бит в секунду. Вы можете подтвердить это с помощью команды systemctl cat serial-getty@ttyS0. Она выведет автоматически сгенерированный файл блока для этого последовательного порта. Среди прочего, он должен содержать эту строку, которая запускает фактический процесс, который будет управлять терминалом:

ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM

Если автоматическое определение скорости последовательного порта не работает должным образом или если вы хотите указать значение скорости, которое не включено в список по умолчанию, вам следует создатьпереопределить файлдля этой службы systemd:

sudo systemctl edit [email protected]

Эта команда создаст файл (при необходимости) и откроет его в редакторе.

Например, чтобы заблокировать определение скорости последовательного порта на уровне 57600 бит/с, вам нужно записать следующие три строки в файл переопределения:

[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- \\u' 57600 %I $TERM

Первая строка указывает, что мы хотим переопределить данные в [Service]разделе автоматически сгенерированного файла службы, вторая указывает, что мы хотим переопределить его ExecStartстроку, а не просто добавить еще одну, а третья строка — это новая ExecStartстрока с желаемой скоростью порта и/или другими параметрами для agettyпроцесса, который управляет терминалом.

Традиционное название такого процесса в мире Unix — getty, а в Linux обычно используется расширенное (аальтернатива/аutobauding) версия для последовательных портов: agetty.

решение2

Самый простой ответ — просто запустить службу терминального входа на последовательном устройстве, как в ответе telcoM. Это не меняетLinux-консоль. Перенос консоли Linux на последовательное устройство проще осуществить, но он имеет больше побочных эффектов.

Просто введите его console=ttyS0в командной строке ядра, как это предусмотрено загрузчиком (в вашем случае, вероятно, GRUB).

Генератор, предоставляемый systemd, увидит это и автоматически включит serial-getty@ttyS0службу. Но, кроме того, все фактическиеконсольВывод из ядра и программ, пишущих в /dev/console, теперь будет поступать на ваш DEC VT320.

К сожалению, VT320не поддерживаетцветной. (VT340 поддерживает, и их всего 16.)

Это не повезло, потому что многие программы в настоящее время просто жестко подключают последовательности управления цветом ECMA-48, включая те, которые выдают сообщения в /dev/console. Все программы, входящие в пакет systemd, делают это, пока средапроцесса №1, которые они идут и читают,несодержат TERM=dumb. Другие программы принимают другие решения, часто основанные наихсреды процесса, а некоторые не принимают решений на основе терминальныхтипвообще, потому что автор никогда не думал, что выход программы может быть последовательным устройством с настоящим монохромным терминалом.

Так что вытакженеобходимо убедиться, что в командной строке ядра указано TERM=dumb, что не является правильным описанием VT320 и является крайне неадекватным.

дальнейшее чтение

Связанный контент