在我的嵌入式系统上,我通常使用 /dev/ttyS0 作为主控制台。这是通过传递内核参数来实现的console=/dev/ttyS0
,当init
它发挥作用时,getty
在例如指定的同一设备上触发inittab
。ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
.
是否有可能在不重新启动的情况下更改这些设置并将控制台切换到另一个终端,例如ttyS1
,ttyUSBx
甚至是一些伪 tty?
在我的嵌入式系统上,我通常使用 /dev/ttyS0 作为主控制台。这是通过传递内核参数来实现的console=/dev/ttyS0
,当init
它发挥作用时,getty
在例如指定的同一设备上触发inittab
。ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
.
是否有可能在不重新启动的情况下更改这些设置并将控制台切换到另一个终端,例如ttyS1
,ttyUSBx
甚至是一些伪 tty?
似乎您实际上并不希望在另一台设备上显示控制台日志消息,而只是建议将它们重定向到那里以阻止它们干扰主串行设备上的二进制传输。
如果是这种情况,您可以通过动态调整控制台日志级别来解决您的问题。
http://tuxthink.blogspot.com/2012/07/printk-and-console-log-level.html
建议您可以通过写入 proc 节点来执行此操作:
echo "6" > /proc/sys/kernel/printk
在他们的示例中将其设置为 6。我怀疑将其设置为 0 或 1 会满足您的目的 - 如果出现问题,您的二进制传输可能无论如何都会失败。
无论此设置如何,dmesg 仍应可检索日志条目。