dmesg出力が/ dev / tty1に表示されるのはなぜですか?

dmesg出力が/ dev / tty1に表示されるのはなぜですか?

これはまだ私と関係があります。昨日のテーマだから、警告があったり、私の端末にログが表示されることがあります/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/ptsLFSシステムに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

ベストアンサー1

コンソールログレベルを下げると、コンソール出力を無効にできます。たとえば、コンソールログレベルを0に下げてすべての出力を無効にするには、次の手順を実行します。

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

kernel.printk4つのパラメータがあります。

  1. コンソールに表示されるメッセージを制御するコンソールログレベル(最も関心のあるメッセージ)
  2. ログレベルが設定されていないすべてのメッセージのデフォルトのメッセージログレベル。
  3. 最小コンソールログレベルが許可され、コンソールログレベルを最小値に制限します。
  4. デフォルトのコンソールログレベル(現在のコードでは使用されていません)

/etc/sysctl.confまたは にそのまま置くことができます/etc/sysctl.d/

dmesgを使用してこれを行うこともできますdmesg

# dmesg -n1

からman dmesg

-n, --console レベル評価:メッセージがコンソールに記録されるレベルを設定します。レベルはレベル番号またはレベル名の略語です。たとえば、-n 1または-nalertは、緊急(緊急)メッセージを除くすべてのメッセージがコンソールに表示されないようにします。すべてのレベルのメッセージはまだ/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より斑点より多くの情報を知りたいです。

おすすめ記事