Descrizione dei valori kernel.printk


19

Tra Debian 5 e 6, il valore suggerito predefinito per kernel.printk in è /etc/sysctl.confstato modificato da kernel.printk = 4 4 1 7a kernel.printk = 3 4 1 3. Capisco che il primo valore corrisponde a ciò che sta succedendo alla console. A cosa servono i prossimi 3 valori?

I valori numerici hanno lo stesso significato dei livelli di registro syslog? O hanno definizioni diverse?

Mi sto perdendo un po 'di documentazione nella mia ricerca, o è l'unica posizione per capire questo sorgente del kernel.

Risposte:


21

Le impostazioni di Sysctl sono documentate Documentation/sysctl/*.txtnella struttura dei sorgenti del kernel. Su Debian, installa linux-docper avere la documentazione usr/share/doc/linux-doc-*/Documentation/(la maggior parte delle distribuzioni ha un pacchetto simile). Da Documentation/sysctl/kernel.txt:

I quattro valori in printkdenotano: console_loglevel, default_message_loglevel, minimum_console_loglevele default_console_loglevelrispettivamente.

Questi valori influenzano il printk()comportamento durante la stampa o la registrazione dei messaggi di errore. Vedi man 2 syslogper maggiori informazioni sui diversi loglevels.

  • console_loglevel: i messaggi con una priorità superiore a questa verranno stampati sulla console
  • default_message_loglevel: i messaggi senza priorità esplicita verranno stampati con questa priorità
  • minimum_console_loglevel: valore minimo (più alto) su cui è possibile impostare console_loglevel
  • default_console_loglevel: valore predefinito per console_loglevel

Non trovo alcuna chiara spiegazione in prosa di ciò che default_console_loglevelviene utilizzato. Nel sorgente del kernel Linux , kernel.printkimposta sysctl console_printk. Il default_console_loglevelcampo non sembra essere usato da nessuna parte.


1
Questo bug Debian 526855 , che è l'origine della modifica, sembra suggerire che ci sono alcune condizioni in cui klogd può ripristinare console_loglevel su default_console_loglevel quando chiama alcune funzioni del kernel.
Zoredache,

1
@Zoredache: Ah. Lo fece allora , ma non più . L'impostazione ha smesso di essere utilizzata solo nella versione del kernel fornita dall'attuale stabile Debian, il che spiega perché gli script di installazione lo supportano ancora.
Gilles 'SO- smetti di essere malvagio'

4

Descrizione dei kernel.printkvalori

  • "0" → Messaggi di emergenza, il sistema sta per arrestarsi in modo anomalo o è pr_emerg instabile
  • "1" → È successo qualcosa di brutto e occorre immediatamente prendere pr_alert
  • "2" → Si è verificata una condizione critica come un grave errore hardware / software pr_crit
  • "3" → Una condizione di errore, spesso utilizzata dai driver per indicare difficoltà con l'hardware pr_err
  • "4" → Un avvertimento, che non significa nulla di grave da solo, ma potrebbe indicare problemi prima dell'inizio
  • "5" → Niente di grave, ma in particolare. Spesso utilizzato per segnalare eventi di sicurezza. pr_notice
  • "6" → Messaggio informativo, ad es. Informazioni di avvio sull'inizializzazione del driver pr_info
  • "7" → Messaggi di debug pr_debug, pr_devel se DEBUG è definito
  • KERN_DEFAULT "d" Loglevel predefinito del kernel
  • KERN_CONT "" "continua" riga della stampa del registro (eseguita solo dopo una riga che non aveva racchiuso)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.