Descrição dos valores do kernel.printk

19

Entre o Debian 5 e 6, o valor sugerido padrão para kernel.printk in /etc/sysctl.conffoi alterado de kernel.printk = 4 4 1 7para kernel.printk = 3 4 1 3. Eu entendo que o primeiro valor corresponde ao que está indo para o console. Quais são os próximos 3 valores?

Os valores numéricos têm o mesmo significado que os níveis de log do syslog? Ou eles têm definições diferentes?

Estou faltando alguma documentação na minha pesquisa ou é o único local para descobrir isso a fonte do kernel.

Zoredache
fonte

Respostas:

21

As configurações do Sysctl estão documentadas na Documentation/sysctl/*.txtárvore de fontes do kernel. No Debian, instale linux-docpara ter a documentação usr/share/doc/linux-doc-*/Documentation/(a maioria das distribuições possui um pacote semelhante). De Documentation/sysctl/kernel.txt:

Os quatro valores do printksignificam: console_loglevel, default_message_loglevel, minimum_console_loglevele default_console_loglevel, respectivamente.

Esses valores influenciam o printk()comportamento ao imprimir ou registrar mensagens de erro. Veja man 2 syslogpara mais informações sobre os diferentes níveis de log.

  • console_loglevel: mensagens com prioridade mais alta que isso serão impressas no console
  • default_message_loglevel: mensagens sem prioridade explícita serão impressas com esta prioridade
  • minimum_console_loglevel: valor mínimo (mais alto) no qual console_loglevel pode ser configurado
  • default_console_loglevel: valor padrão para console_loglevel

Não encontro nenhuma explicação clara da prosa sobre o que default_console_loglevelé usado. Na fonte do kernel Linux , o kernel.printksysctl define console_printk. O default_console_loglevelcampo não parece ser usado em lugar algum.

Gilles 'SO- parar de ser mau'
fonte
1
Este bug do Debian 526855 , que é a origem da mudança, parecia sugerir que existem algumas condições em que o klogd pode redefinir o console_loglevel para default_console_loglevel quando ele chama alguma função do kernel.
Zoredache
1
@Zoredache: Ah. Isso aconteceu naquela época , mas não mais . A configuração parou de ser usada na própria versão do kernel fornecida pelo atual estável Debian, o que explica por que os scripts de instalação ainda a suportam.
Gilles 'SO- stop be evil'
4

Descrição dos kernel.printkvalores

  • "0" → Mensagens de emergência, o sistema está prestes a falhar ou é instável pr_emerg
  • "1" → Algo ruim aconteceu e uma ação deve ser tomada imediatamente pr_alert
  • "2" → Ocorreu uma condição crítica, como uma falha grave de hardware / software pr_crit
  • "3" → Uma condição de erro, frequentemente usada pelos drivers para indicar dificuldades com o hardware pr_err
  • "4" → Um aviso, que não significa nada sério por si só, mas pode indicar problemas antes da advertência
  • "5" → Nada sério, mas notavelmente, no entanto. Geralmente usado para relatar eventos de segurança. pr_notice
  • "6" → Mensagem informativa, por exemplo, informações de inicialização na inicialização do driver pr_info
  • "7" → Mensagens de depuração pr_debug, pr_devel se DEBUG estiver definido
  • KERN_DEFAULT "d" O nível de log padrão do kernel
  • KERN_CONT "" "continuação" da linha de impressão do log (feita somente após uma linha que não continha)
user211079
fonte