如何在启动过程后切换linux内核控制台?

在我的embedded式系统上,我通常使用/ dev / ttyS0作为主控制台。 这是通过传递内核参数console=/dev/ttyS0 ,当init接受它的一部分时, getty将在例如inittab指定的同一个设备上被触发。 ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100

有没有可能改变这些设置而不重新启动,并切换到另一个terminal如ttyS1ttyUSBx甚至一些伪tty?

看来,也许你实际上不希望在另一台设备上的控制台日志消息,但只建议在那里重定向他们,以阻止他们干扰主要串行设备上的二进制传输。

如果是这种情况,您可以通过动态调整控制台日志级别来解决您的问题。

http://tuxthink.blogspot.com/2012/07/printk-and-console-log-level.html

建议您可以通过写入一个proc节点来做到这一点:

 echo "6" > /proc/sys/kernel/printk 

在他们的例子中将它设置为6。 我怀疑将其设置为0或1将为您的目的工作 – 如果出现错误,您的二进制传输可能失败了。

无论此设置如何,日志条目仍应可由dmesg检索。