Descripción de los valores de kernel.printk

19

Entre Debian 5 y 6, el valor sugerido predeterminado para kernel.printk en /etc/sysctl.confse cambió de kernel.printk = 4 4 1 7a kernel.printk = 3 4 1 3. Entiendo que el primer valor corresponde a lo que va a la consola. ¿Para qué son los siguientes 3 valores?

¿Los valores numéricos tienen el mismo significado que los niveles de registro de syslog? ¿O tienen diferentes definiciones?

Me falta algo de documentación en mi búsqueda, o es la única ubicación para resolver esto la fuente del núcleo.

Zoredache
fuente

Respuestas:

21

La configuración de Sysctl está documentada Documentation/sysctl/*.txten el árbol de fuentes del núcleo. En Debian, instale linux-docpara tener la documentación usr/share/doc/linux-doc-*/Documentation/(la mayoría de las distribuciones tienen un paquete similar). De Documentation/sysctl/kernel.txt:

Los cuatro valores en printkSignifican: console_loglevel, default_message_loglevel, minimum_console_loglevely default_console_loglevelrespectivamente.

Estos valores influyen en el printk()comportamiento al imprimir o registrar mensajes de error. Consulte man 2 syslogpara obtener más información sobre los diferentes niveles de registro.

  • console_loglevel: los mensajes con una prioridad superior a esta se imprimirán en la consola
  • default_message_loglevel: los mensajes sin una prioridad explícita se imprimirán con esta prioridad
  • minimum_console_loglevel: valor mínimo (más alto) en el que se puede establecer console_loglevel
  • default_console_loglevel: valor predeterminado para console_loglevel

No encuentro ninguna explicación en prosa clara de para qué default_console_loglevelse utiliza. En la fuente del kernel de Linux , se kernel.printkestablece sysctl console_printk. El default_console_loglevelcampo no parece ser usado en ningún lado.

Gilles 'SO- deja de ser malvado'
fuente
1
Este error de Debian 526855 , que es el origen del cambio, parece sugerir que hay algunas condiciones en las que klogd puede restablecer console_loglevel a default_console_loglevel cuando llama a alguna función del núcleo.
Zoredache
1
@ Zoredache: Ah. Lo hizo en aquel entonces , pero ya no . La configuración solo dejó de usarse en la versión del kernel incluida en el actual establo de Debian, lo que explica por qué los scripts de configuración aún lo admiten.
Gilles 'SO- deja de ser malvado'
4

Descripción de kernel.printkvalores

  • "0" → Mensajes de emergencia, el sistema está a punto de bloquearse o es inestable pr_emerg
  • "1" → Algo malo sucedió y se deben tomar medidas inmediatamente antes_alert
  • "2" → Se produjo una condición crítica como una falla grave de hardware / software pr_crit
  • "3" → Una condición de error, a menudo utilizada por los controladores para indicar dificultades con el hardware pr_err
  • "4" → Una advertencia, que no significa nada serio en sí mismo, pero puede indicar problemas de advertencia
  • "5" → Nada serio, pero notablemente de todos modos. A menudo se usa para informar eventos de seguridad. aviso_pr
  • "6" → Mensaje informativo, por ejemplo, información de inicio en la inicialización del controlador pr_info
  • "7" → Mensajes de depuración pr_debug, pr_devel si se define DEBUG
  • KERN_DEFAULT "d" El nivel de registro predeterminado del kernel
  • KERN_CONT "" "continuación" línea de impresión de registro (solo se realiza después de una línea que no tenía encerrado)
usuario211079
fuente