Как переключить консоль ядра Linux после процесса загрузки?

В моей встроенной системе я обычно использую /dev/ttyS 0 в качестве основной консоли. Это достигается передачей параметра ядра console=/dev/ttyS0, а при выполнении init, getty запускается на том же устройстве, что указано в inittab, например. ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100.

Есть ли возможность изменить эти настройки без перезагрузки и переключить консоль на другой терминал, например ttyS1, ttyUSBx или даже на псевдо-tty?

Ответ 1

Похоже, что вам действительно не нужны сообщения журнала консоли на другом устройстве, но они предлагают только перенаправить их туда, чтобы помешать им помешать двоичным передачам на основном последовательном устройстве.

Если это так, вы можете решить свою проблему путем динамической настройки уровня журнала консоли.

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

Предлагает, что вы можете сделать это, написав proc node:

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

В приведенном примере будет установлено значение 6. Я подозреваю, что установить его на 0 или 1 будет работать для ваших целей - если что-то пойдет не так, ваша двоичная передача, вероятно, все равно потерпит неудачу.

Записи журнала все равно должны быть восстановлены dmesg независимо от этой настройки.