Beschreibung der kernel.printk-Werte

19

Zwischen Debian 5 und 6 wurde der vorgeschlagene Standardwert für kernel.printk in /etc/sysctl.confvon kernel.printk = 4 4 1 7auf geändert kernel.printk = 3 4 1 3. Ich verstehe, dass der erste Wert dem entspricht, was zur Konsole geht. Was sind die nächsten 3 Werte für?

Haben die numerischen Werte dieselbe Bedeutung wie die Syslog-Protokollebenen? Oder haben sie unterschiedliche Definitionen?

Fehlt bei meiner Suche eine Dokumentation oder ist dies der einzige Ort, an dem die Kernelquelle ermittelt werden kann.

Zoredache
quelle

Antworten:

21

Die Sysctl-Einstellungen sind Documentation/sysctl/*.txtim Kernel-Quelltextbaum dokumentiert . Installieren Sie unter Debian, um linux-docdie Dokumentation zu haben usr/share/doc/linux-doc-*/Documentation/(die meisten Distributionen haben ein ähnliches Paket). Von Documentation/sysctl/kernel.txt:

Die vier Werte in printkbezeichnen: console_loglevel, default_message_loglevel, minimum_console_loglevelund default_console_logleveljeweils.

Diese Werte beeinflussen das printk()Verhalten beim Drucken oder Protokollieren von Fehlermeldungen. Sehen Sie man 2 syslogfür weitere Informationen über die verschiedenen Loglevel.

  • console_loglevel: Nachrichten mit einer höheren Priorität werden auf der Konsole gedruckt
  • default_message_loglevel: Nachrichten ohne explizite Priorität werden mit dieser Priorität gedruckt
  • minimum_console_loglevel: minimaler (höchster) Wert, auf den console_loglevel gesetzt werden kann
  • default_console_loglevel: Standardwert für console_loglevel

Ich finde keine klare Erklärung, wofür default_console_loglevelverwendet wird. In der Linux-Kernelquelle wird die kernel.printksysctl gesetzt console_printk. Das default_console_loglevelFeld scheint nirgendwo gebraucht zu werden.

Gilles 'SO - hör auf böse zu sein'
quelle
1
Dieser Debian-Fehler 526855 , der der Ursprung der Änderung ist, schien darauf hinzudeuten, dass es einige Bedingungen gibt, unter denen klogd console_loglevel auf default_console_loglevel zurücksetzen könnte, wenn eine Kernelfunktion aufgerufen wird.
Zoredache
1
@ Zoredache: Ah. Damals schon , aber nicht mehr . Die Einstellung wurde nur in der Kernel-Version des aktuellen Debian-Stables nicht mehr verwendet, was erklärt, warum die Setup-Skripte sie immer noch unterstützen.
Gilles 'SO - hör auf, böse zu sein',
4

Beschreibung der kernel.printkWerte

  • "0" → Notfallmeldungen, System steht kurz vor dem Absturz oder ist instabil pr_emerg
  • "1" → Es ist etwas Schlimmes passiert und es muss sofort eine Aktion ausgeführt werden
  • "2" → Ein kritischer Zustand ist aufgetreten, z. B. ein schwerwiegender Hardware- / Softwarefehler
  • "3" → Eine Fehlerbedingung, die häufig von Treibern verwendet wird, um auf Probleme mit der Hardware pr_err hinzuweisen
  • "4" → Eine Warnung, die für sich genommen nichts Ernstes bedeutet, aber auf Probleme bei der Warnung hinweisen kann
  • "5" → Nichts Ernstes, aber vor allem trotzdem. Wird häufig zum Melden von Sicherheitsereignissen verwendet. pr_notice
  • "6" → Informationsmeldung zB Startinformation bei Treiberinitialisierung pr_info
  • "7" → Debug-Meldungen pr_debug, pr_devel wenn DEBUG definiert ist
  • KERN_DEFAULT "d" Das Standard-Kernel-Loglevel
  • KERN_CONT Fortsetzung der Protokollausdruckzeile (nur nach einer Zeile ohne Beilage)
user211079
quelle