Tty

為什麼 dmesg 輸出顯示在 /dev/tty1 上

  • May 20, 2022

這仍然與我昨天的執行緒有關,所以有警報或者它只是顯示在我的終端上的日誌/dev/tty1。當然這很煩人,因為它顯示在我的 bash 提示符中,所以每當我想輸入一些東西時,我的輸入都會被該輸出覆蓋。它可能會定期列印出來3 second。所以你可以看到它有多煩人

我的終端看起來像這樣:

root@LFS:# echo "Hey get out of there"clocksource: timekeeping watchdog on CPU0: acpi_pm wd-wd readback delay of 643744ns
clocksource: wd-tsc-wd read-back delay of 182144ns, clock-skew test skipped!
clocksource: timekeeping watchdog on CPU0: acpi_pm wd-wd readback delay of 643744ns
clocksource: wd-tsc-wd read-back delay of 182144ns, clock-skew test skipped!
clocksource: timekeeping watchdog on CPU0: acpi_pm wd-wd readback delay of 643744ns
clocksource: wd-tsc-wd read-back delay of 182144ns, clock-skew test skipped!
...

我懷疑這不是因為clocksource,而是因為dmesg輸出。因為當我指揮dmesg. 它顯示相同。但是,每當我使用/dev/pts沒有煩人的輸出或定期發出警報時,我都會在我的 LFS 系統中登錄 SSH 時對其進行測試。

那麼如何防止dmesg日誌顯示到/dev/tty1

更新:內部/proc/cmdline

root@LFS:~# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.16.9-lfs-11.1 root=/dev/sda1 ro

您可以通過降低控制台日誌級別來禁用控制台輸出。例如,通過將控制台日誌級別降低到 0 來禁用所有輸出:

# sysctl kernel.printk='0 4 0 5'

kernel.printk接受四個參數:

  1. 控制台日誌級別,控制哪些消息將顯示在控制台上(這是你最關心的);
  2. 尚未設置日誌級別的任何消息的預設消息日誌級別;
  3. 允許的最低控制台日誌級別,它將控制台日誌級別限制在最低限度;
  4. 預設控制台日誌級別(目前未在程式碼中使用)。

您可以將其保留在/etc/sysctl.conf/etc/sysctl.d/中。

您還可以使用 dmesg 來執行此操作dmesg

# dmesg -n1

來自man dmesg

-n, –console-level level:設置消息記錄到控制台的級別。級別是級別編號或級別名稱的縮寫。例如,-n 1 或 -n alert 可防止除緊急(恐慌)消息之外的所有消息出現在控制台上。所有級別的消息仍然寫入 /proc/kmsg,因此 syslogd(8) 仍然可以準確控制核心消息出現的位置。當使用 -n 選項時,dmesg 不會列印或清除核心環形緩衝區。對於所有支持的級別,請參見 –help 輸出。

您還可以通過傳遞在核心命令行上調整它loglevel=N,請參閱Documentation/admin-guide/kernel-parameters.txt. 該選項quiet也是可用的——它實際設置的級別取決於CONFIG_CONSOLE_LOGLEVEL_QUIET, 在編譯時設置的值。


每個控制台的日誌級別

順便說一句,在我將每個控制台的控制台日誌級別合併到核心中之後,人們將能夠直接減少或增加特定類別控制台的日誌級別,而不是使用 sysfs 中的控制項影響整個系統:

% ls -l /sys/class/console/ttyS/
total 0
lrwxrwxrwx 1 root root    0 May 20 14:40 subsystem -> ../../../../class/console/
-r--r--r-- 1 root root 4096 May 20 14:41 effective_loglevel
-r--r--r-- 1 root root 4096 May 20 14:41 effective_loglevel_source
-r--r--r-- 1 root root 4096 May 20 14:41 enabled
-rw-r--r-- 1 root root 4096 May 20 14:41 loglevel
-rw-r--r-- 1 root root 4096 May 20 14:40 uevent

該格式仍有一些變化,但當它在接下來的幾個核心版本中合併時,它可能看起來與此類似。kernel.printk也可能會被棄用,以支持更精細的控制。

Documentation/admin-guide/per-console-loglevel.rst有關更多資訊,請參閱更新檔

引用自:https://unix.stackexchange.com/questions/703292