【发布时间】:2017-03-15 16:39:35
【问题描述】:
我正在办公室开发一个小型嵌入式 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 上成功读/写。 使用 console=ttyS4 我可以看到内核打印的内容,但我写的任何内容都会被 linux 忽略。
所以我检查了新 ttyS4 的 TX/RX。我在这个 com 端口上打开了一个 putty 会话。通过 ssh 登录以访问 linux 文件系统我做了一些测试:
echo 1234 > /dev/ttyS4
echo 1234 > /dev/console
以上两个命令都成功在ttyS4对应的putty窗口上打印“1234”。
然后:
cat /dev/console
cat /dev/ttyS4
以上两个 cat 命令都成功显示了我在腻子窗口上输入的内容和 ENTER。 这意味着 ttyS4 的电气连接和驱动程序运行良好。 但是,如果我尝试在这个 putty 窗口中访问文件系统,我就不能。输入 enter 只会打印一个新的空行,没有别的。 好像新的console=ttyS4没有把我写的数据转发到linux。
当我输入 cat /proc/cmdline 时,我可以看到新的 console=ttyS4,921600n8 console=tty0
任何帮助表示赞赏。
【问题讨论】:
-
你有在这个控制台上运行的 getty 吗?
-
不,这就是问题所在,我不知道我必须在新定义的控制台上手动启动 getty。我刚刚在 /etc/inittab 中添加了该条目,并且可以正常工作。感谢您的反馈。
标签: linux console kernel tty cmdline-args