Linux console changed, print OK, read NOK

Linux console changed, print OK, read NOK

我正在办公室的小型嵌入式 linux 平台上工作,我必须将默认控制台从 ttyS0 更改为另一个 ttySx。 ttyS0 已启用并且是默认控制台。 我启用了另一个 ttyS,成功探测到它,我给它 ID=4,这意味着现在我可以正确地看到它 /dev/ttyS4.

所以我修改了命令行:

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

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

uart 连接到 FTDI 芯片。 使用 console=ttyS0 我可以在 shell 上成功 read/write。 使用 console=ttyS4 我可以看到内核打印的内容,但是 linux.

忽略了我写的任何内容

所以我检查了新ttyS4的TX/RX。我已经在这个 com 端口上打开了一个 putty 会话。通过 ssh 登录以访问 linux 文件系统 我做了一些测试:

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

以上两个命令都成功地在对应于 ttyS4 的 putty window 上打印了“1234”。

然后:

cat /dev/console             
cat /dev/ttyS4

以上两个 cat 命令都成功显示了我在 putty 上输入和输入的内容 window。 这意味着 ttyS4 的电气连接和驱动程序运行良好。 但是,如果我尝试访问此 putty window 中的文件系统,我不能。输入 enter 只会打印一个新的空行,没有别的。 就像新的 console=ttyS4 没有将我写入的数据转发到 linux.

当我输入 cat /proc/cmdline

时,我可以看到新的 console=ttyS4,921600n8 console=tty0

感谢任何帮助。

控制台只是输入和输出设备。如果您想将它们用于 shell 登录,请在它们上启动 getty

使用 SysVinit,您可以通过编辑 /etc/inittab 并复制或取消注释行来完成此操作:

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

使用systemd,您可以运行

systemctl enable console-getty.service getty@tty4.service