Eu tenho um problema com o Handbrake / ffmpeg. Após aproximadamente 5 minutos de transcodificação, o computador trava. Tenho certeza de que é um pânico do kernel porque o caps-lock começa a piscar.
Existem algumas perguntas lógicas sobre o que fazer e outras sobre erros específicos, mas estou realmente procurando uma coisa: o que aconteceu antes de tudo morrer ?!
Eu verifiquei /var/log/kern.log
e tudo o que vejo ao longo do tempo sou eu colocando um DVD e, alguns minutos depois, o sistema inicializando. Sem erros, sem aviso de pânico.
Existe alguma maneira de forçar o pânico a ser registrado? Tenho certeza de que posso reproduzir isso (isso aconteceu 100% das vezes que tentei recentemente), por isso, embora prefira "apenas funcionou", estou feliz o suficiente para reiniciar algumas vezes, se isso puder encontre a causa do pânico.
Respostas:
Todos os logs do sistema no Ubuntu são gerenciados pelos
rsyslog
quais mantém sua configuração em/etc/rsyslog.conf
e/etc/rsyslog.d/
.Para mais informações sobre como configurar
rsyslog
e as opções possíveis, visite orsyslog.conf man page
.Ao abrir,
/etc/rsyslog.d/50-default.conf
você pode ver que uma das linhas contém*.*;auth,authpriv.none -/var/log/syslog*
Significando que o arquivo que você está procurando neste caso é um dos grandes
/var/log/syslog
logs que você provavelmente terá.Você pode ver que o nome do arquivo também começa com a
-
, isso significa que o arquivo é armazenado em cache antes da gravação, é ótimo, mas pode deixar um log incorreto. O que você quer é que o log seja gravado assim que houver um problema. Remova o traço e reinicie ou recarreguersyslog
e, em seguida, deixe o computador travar novamente, verifique/var/log/syslog
.fonte
Se realmente é um pânico do kernel, não será gravado em um log por métodos normais. Como o kernel caiu nesse momento, escrever no sistema de arquivos é uma operação arriscada - não é mais possível confiar em grande parte do kernel; portanto, escrever nos logs pode realmente estar espalhando porcaria aleatória sobre o seu gerenciador de inicialização!
Em vez disso, você pode despejar o conteúdo da memória no seu swap e depois depurá-lo mais tarde. Isso é conhecido como travamento do kernel / core dump.
O Wiki do Ubuntu tem um CrashdumpRecipe que pode ser útil - embora pareça um pouco desatualizado, acho que não deveria ter mudado muito.
fonte
linux-crashdump
; este pacote ainda está disponível em todas as versões.Porta serial
A porta serial é um mecanismo simples de comunicação de baixo nível entre computadores.
Vantagens:
Desvantagens:
A porta serial fica assim:
e no RPI está disponível através do GPIO.
Em seguida, se você tiver o hardware necessário, conecte-se do segundo computador ao computador principal com:
Isso realmente lhe dá uma concha.
Em seguida, na máquina principal, inicie a operação que entra em pânico.
Quando o pânico acontece, o despejo de pânico é transmitido para a segunda máquina e você pode ver tudo rolando a tela para cima no terminal.
Outros métodos
Existem também outros métodos que superam as limitações de hardware mencionadas acima, ao custo de serem mais complexas e menos confiáveis. Métodos notáveis:
Veja também esta ótima resposta: https://unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic
Depuração de etapas
Por fim, obter saída de pânico exige que algumas funcionalidades do kernel funcionem, e qualquer funcionalidade do kernel pode ser corrompida pelo pânico.
Mas quem precisa de pânico se você pode usar o GDB no kernel? Se você é tão hardcore, dê uma olhada:
Todo problema cai quando você tem visibilidade total (e tempo suficiente!).
fonte