Использование другой консоли для процесса возрождения в inittab на встроенном устройстве
Я подключен к моему встроенному устройству через последовательный порт и хотел бы запустить свои пользовательские двоичные файлы при загрузке и иметь возможность видеть сгенерированный вывод.
Мой файл /etc/inittab содержит:
console::respawn:/sbin/getty -L 115200 ttyAPP3 vt100
console::respawn:/usr/bin/mybinary
С этой конфигурацией я вижу вывод mybinary в консоли последовательного порта, но трудно / невозможно подключиться (ввести логин и пароль) к getty из-за интерференции сгенерированного вывода.
Я попытался переключить вывод в inittab на другой неиспользуемый tty (tty10) следующим образом:
console::respawn:/sbin/getty -L 115200 ttyAPP3 vt100
tty10::respawn:/usr/bin/mybinary
И теперь я могу подключиться, но как я могу увидеть вывод, сгенерированный в /dev/tty10?
Я старался cat /dev/tty10
но ничего не показано.
1 ответ
Я знаю, что вопрос старый, но у него нет ответов на все, чтобы громко плакать.
Помните, что TTY - это одновременно и устройство вывода, и устройство ввода. Следя за ним, вы читаете ввод с терминала, что означает клавиатуру, а НЕ экран.
Я не знаю, есть ли параллель в других * никсах, но в системах Linux есть символьные устройства /dev/vcsX и /dev/vcsaX (узлы c,7,0+X и c,7,128+X соответственно) для каждого / dev Устройство /ttyX - это зеркала данных, которые в настоящее время находятся на выходе устройства TTY (т. е. экранная часть TTY, а не клавиатурная часть). Это даст вам то, что вы ищете. Устройства vcsaX предоставят вам пару байтов displaybyte + attributebyte (т.е. цвет текста переднего плана / фона - см. Другие ссылки для получения дополнительной информации о байтах текстовых атрибутов) для каждого символа на экране, в то время как устройства vcsX выдают только байты display для каждого символа., Конечно, это необработанный поток / дамп, поэтому, если количество строк и / или столбцов вашего терминала не совпадает со счетчиком TTY, который вы сбрасываете, вам нужно будет проанализировать данные и переформатировать их для соответствия.
tl;dr: используйте "cat /dev/vcs10"
Надеюсь, это поможет.