Linux консоль изменена, печать ОК, читать NOK

Я работаю на небольшой встроенной платформе Linux в офисе, где мне нужно сменить консоль по умолчанию с ttyS0 на другую ttySx. TtyS0 включен и является консолью по умолчанию. Я включил другой ttyS, успешно проверил его, я дал ему ID=4, что означает, что теперь я могу видеть его как /dev/ttyS4.

Поэтому я изменил cmdline из:

CMDLINE=...console=ttyS0,921600n8 console=tty0...

в

CMDLINE=...console=ttyS4,921600n8 console=tty0...

Уарты подключены к чипам FTDI. С console=ttyS0 я могу успешно читать / писать в этой оболочке. С console=ttyS4 я могу видеть, что печатает ядро, но все, что я пишу, игнорируется linux.

Поэтому я проверил TX/RX нового ttyS4. Я открыл сеанс замазки на этом com-порту. Входя через ssh, чтобы получить доступ к файловой системе Linux, я сделал несколько тестов:

echo 1234 > /dev/ttyS4        
echo 1234 > /dev/console

Обе вышеупомянутые команды успешно печатают "1234" в окне замазки, соответствующем ttyS4.

Затем:

cat /dev/console             
cat /dev/ttyS4

Обе приведенные выше команды cat успешно отображают то, что я печатаю и вводю в окне замазки. Это означает, что электрические соединения, а также драйвер для ttyS4 работают хорошо. Однако, если я попытаюсь получить доступ к файловой системе в этом окне замазки, я не смогу. Ввод enter просто выведет новую пустую строку, больше ничего. Это похоже на то, что новая консоль = ttyS4 не пересылает данные, которые я пишу, в linux.

Я вижу новое console=ttyS4,921600n8 console=tty0 когда я набираю cat /proc/cmdline

Любая помощь приветствуется.

1 ответ

Решение

Консоли - это просто устройства ввода и вывода. Если вы хотите использовать их для входа в оболочку, запустите getty на них.

С SysVinit вы можете сделать это, отредактировав /etc/inittab и скопировать или раскомментировать строку там:

4:2345:respawn:/sbin/getty 38400 tty4

С помощью systemd вы можете запустить

systemctl enable console-getty.service getty@tty4.service
Другие вопросы по тегам