Description des valeurs kernel.printk

19

Entre Debian 5 et 6, la valeur par défaut suggérée pour kernel.printk dans a /etc/sysctl.confété changée de kernel.printk = 4 4 1 7à kernel.printk = 3 4 1 3. Je comprends que la première valeur correspond à ce qui va à la console. Quelles sont les 3 prochaines valeurs?

Les valeurs numériques ont-elles la même signification que les niveaux du journal syslog? Ou ont-ils des définitions différentes?

Suis-je manquant de documentation dans ma recherche, ou est le seul emplacement pour comprendre cela la source du noyau.

Zoredache
la source

Réponses:

21

Les paramètres Sysctl sont documentés Documentation/sysctl/*.txtdans l'arborescence des sources du noyau. Sur Debian, installez linux-docpour avoir la documentation usr/share/doc/linux-doc-*/Documentation/(la plupart des distributions ont un paquet similaire). De Documentation/sysctl/kernel.txt:

Les quatre valeurs dans printkdésignent: console_loglevel, default_message_loglevel, minimum_console_loglevelet default_console_loglevelrespectivement.

Ces valeurs influencent le printk()comportement lors de l'impression ou de la journalisation des messages d'erreur. Voir man 2 syslogpour plus d'informations sur les différents niveaux de journalisation.

  • console_loglevel: les messages avec une priorité plus élevée que celle-ci seront imprimés sur la console
  • default_message_loglevel: les messages sans priorité explicite seront imprimés avec cette priorité
  • minimum_console_loglevel: valeur minimale (la plus élevée) à laquelle console_loglevel peut être définie
  • default_console_loglevel: valeur par défaut pour console_loglevel

Je ne trouve aucune explication en prose claire de ce qui default_console_loglevelest utilisé. Dans la source du noyau Linux , le kernel.printksysctl définit console_printk. Le default_console_loglevelchamp ne semble être utilisé nulle part.

Gilles 'SO- arrête d'être méchant'
la source
1
Ce bogue Debian 526855 , qui est à l'origine du changement, semblait suggérer qu'il existe certaines conditions dans lesquelles klogd peut réinitialiser console_loglevel à default_console_loglevel lorsqu'il appelle une fonction du noyau.
Zoredache
1
@Zoredache: Ah. C'était le cas à l'époque , mais plus . Le paramètre a seulement cessé d'être utilisé dans la version très noyau livrée par l'écurie Debian actuelle, ce qui explique pourquoi les scripts de configuration le supportent toujours.
Gilles 'SO- arrête d'être méchant'
4

Description des kernel.printkvaleurs

  • "0" → Messages d'urgence, le système est sur le point de planter ou est instable pr_emerg
  • "1" → Quelque chose de grave s'est produit et une action doit être prise immédiatement pr_alert
  • "2" → Une condition critique s'est produite comme une grave panne matérielle / logicielle pr_crit
  • "3" → Une condition d'erreur, souvent utilisée par les pilotes pour indiquer des difficultés avec le matériel pr_err
  • "4" → Un avertissement, qui ne signifie rien de grave en soi mais pourrait indiquer des problèmes pr_warning
  • "5" → Rien de grave, mais notamment quand même. Souvent utilisé pour signaler des événements de sécurité. pr_notice
  • "6" → Message d'information, par exemple informations de démarrage lors de l'initialisation du pilote pr_info
  • "7" → Messages de débogage pr_debug, pr_devel si DEBUG est défini
  • KERN_DEFAULT "d" Le niveau de journalisation du noyau par défaut
  • KERN_CONT "" "suite" ligne d'impression du journal (uniquement effectuée après une ligne sans encadrement)
user211079
la source