Linux カーネル default_console_loglevel の意味

Linux カーネル default_console_loglevel の意味

default_console_loglevelLinuxのポイントは何ですか?私は通常のデフォルトとして説明しますconsole_loglevel。しかし、これが意味するところは、どこでも説明されたことを見たことがありません。

さらに、私と私が確認した他のほとんどのシステムでは、4つのログ変数の値は次のとおりです。

 [root@localhost printk]# cat /proc/sys/kernel/printk
4   4   1   7

何も変更しなかったので、console_loglevel(4)は(7)と同じでなければなりませdefault_consolle loglevelんが、そうではありません。それでは、用途/意味は正確に何ですかdefault_console_loglevel

答え1

短い答え:loglevel=4カーネルコマンドラインで設定されているか(確認)cat /proc/cmdline実行されるecho 4 > /proc/sys/kernel/printkinitスクリプト(またはそれに対応するスクリプト)があります。

どちらの場合もdefault_console_loglevel上書きされます。


長い答え:

を読むと、/proc/sys/kernel/printk4つの数字が返されます。これはカーネルで定義されています。printkhint console_printk[4]配列の要素として初期化済みコンパイル時に(printkc)、しかしこの配列は実行時に修正することができます。

この値は次のとおりです。

  • console_loglevel(またはconsole_printk[0])。

  • default_message_loglevel(またはconsole_printk[1])。

  • minimum_console_loglevel(またはconsole_printk[2])。

  • default_console_loglevel(またはconsole_printk[3])。

console_loglevelconsole_printk[0])が最も重要です。現在のコンソールメッセージの優先順位の値。

これは、いつでもprintkカーネルコードで呼び出しが行われることを意味します(これは次にも適用されます)。pr_warn、、pr_infoなど。)、実行時にその優先順位を比較し、現在の優先順位より厳密に低い場合はconsole_loglevelコンソールに印刷されます。たとえば、5に設定した場合(例:KERN_警告)、KERN_ERR値が4()以下の優先順位のみがコンソールに直接印刷されます。

この値は変更する必要がある唯一の値なので、たとえばを使用して書き込むときは、この値を5にecho 5 > /proc/sys/kernel/printk設定します。console_loglevel

console_loglevelCONSOLE_LOGLEVEL_DEFAULT(or)とまったく同じで、コンパイル時に初期化されます。したがって、起動時のデフォルト値です。これはカーネルコンパイル時の設定(Kconfig)によって設定されます。default_console_loglevelconsole_printk[3]default_console_loglevelconsole_loglevelCONFIG_CONSOLE_LOGLEVEL_DEFAULT

このランタイムを構成可能にする(カーネルを再コンパイルする必要はありません)、このブート時間のデフォルト値を設定する別のメカニズムがあります。 (ここで数字は)カーネルコマンドラインの一部として渡されるとに初期化されます。これは変更されないため、この場合は自動的に無視され上書きされます。loglevel=xxconsole_loglevelxdefault_console_loglevel

完全性のために、他の2つの値は次のとおりです。

  • default_message_loglevel(または):指定された優先順位のないコマンドのデフォルト値console_printk[1]printkこれはCONFIG_MESSAGE_LOGLEVEL_DEFAULTKconfig()を介して設定されます。コンパイル後は変更できません。

  • minimum_console_loglevel(またはconsole_printk[2]):最小優先順位の値。 1にハードコードされており、変更できません。


注:この回答は4年間の回答のない質問に対する回答であり、質問の作成者にとっては役に立たない可能性があります。しかし、私の最初のGoogle検索結果なので、他の人にも役立つことを願っています。

関連情報