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

Hon*_*nza 14 linux embedded tty linux-kernel embedded-linux

在我的嵌入式系统上,我通常使用/ dev/ttyS0作为主控制台.这是通过传递内核参数来实现的,console=/dev/ttyS0并且当init它参与时,getty会在inittab例如由中指定的同一设备上触发.ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100.

是否有可能在不重启的情况下更改这些设置并将控制台切换到另一个终端ttyS1,ttyUSBx甚至是一些伪tty?

Chr*_*ton 6

看起来您可能实际上并不想在另一台设备上使用控制台日志消息,但只是建议将它们重定向到那里以阻止它们干扰主串行设备上的二进制传输.

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

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

建议您可以通过写入proc节点来完成此操作:

echo "6" > /proc/sys/kernel/printk
Run Code Online (Sandbox Code Playgroud)

在他们的例子中将它设置为6.我怀疑将其设置为0或1可以用于您的目的 - 如果出现问题,您的二进制传输可能无论如何都会失败.

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