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