Onde as informações do kernel são registradas?

2

No meu computador de desenvolvimento eu compilei um módulo do kernel que eu quero usar em um sistema Ubuntu. É um módulo de teste simples por enquanto que apenas printk é uma mensagem.

No meu computador de desenvolvimento, posso testar se isso funciona por cat /var/log/messages

No meu computador Ubuntu eu insmod ed o .ko e tentei isso, mas não há /var/log/messages . Uma pesquisa no google me disse que ela havia sido renomeada para /var/log/syslog , mas procurando em /var/log isso não parece existir. Por que eu não tenho um log?

O que eu vejo é o seguinte:

Xorg.0.log
Xorg.0.log.old
apt
dmesg
dmesg.0
dmesg.1.gz
dmesg.2.gz
dmesg.3.gz
dmesg.4.gz
dpkg.log
dpkg.lob.1
dpkg.log.2.gz
lastlog
lightdm
pm-powersave.log
pm-powersave.log.1
pm-powersave.log.2.gz
pm-powersave.log.3.gz
pm-powersave.log.4.gz
samba
udev
unattended-upgrades
    
por Zephyr 02.08.2016 / 20:11

1 resposta

4

/var/log/messages não é usado no Ubuntu (ele foi removido pelo Natty). Usamos /var/log/syslog para isso. Tudo logado para 'mensagens' naquela época também estava logado em 'syslog' então nos livramos de um deles.

Eu tenho um syslog e um kern.log em /var/log/ . Eu esperaria que o último tivesse algo relacionado ao kernel.

Existe um método melhor: o daemon journald tem tudo o que foi registrado.

Você pode listar as mensagens do kernel com:

$ journalctl -f _TRANSPORT=kernel

Isso deve mostrar-lhe qualquer coisa relacionada ao kernel e você pode clicar nos resultados, se necessário. Mas há muitas opções para refinar seus resultados (veja o link ou journalctl --help ) .

Outros exemplos (do link):

Sem argumentos, todos os registros coletados são mostrados não filtrados:

journalctl

Com uma correspondência especificada, todas as entradas com um campo correspondente à expressão são mostradas:

journalctl _SYSTEMD_UNIT = avahi-daemon.service

Se dois campos diferentes forem correspondidos, apenas as entradas correspondentes às duas expressões ao mesmo tempo serão exibidas:

journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097

Se duas correspondências se referirem ao mesmo campo, todas as entradas correspondentes a qualquer das expressões serão mostradas:

journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service

Se o separador "+" for usado, duas expressões podem ser combinadas em um OR lógico. O seguinte mostrará todas as mensagens do processo de serviço Avahi com o PID 28097 e todas as mensagens do serviço D-Bus (de qualquer um dos seus processos):

 journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service

Mostrar todos os registros gerados pelo executável do D-Bus:

journalctl /usr/bin/dbus-daemon

Mostrar todos os registros do kernel da inicialização anterior:

journalctl -k -b -1

Mostrar uma exibição de registro ao vivo de um serviço do sistema apache.service:

journalctl -f -u apache
    
por Rinzwind 02.08.2016 / 20:32