Porta serial
A porta serial é um mecanismo simples de comunicação de baixo nível entre computadores.
Vantagens:
- configuração simples uma vez (se você tiver o hardware)
- confiável, uma vez que a transmissão de dados depende apenas de uma API de fios e kernel simples, que é menos provável de ser afetada pelo pânico do que o subsistema TCP / IP.
Desvantagens:
- a maioria dos laptops modernos não tem mais a porta serial (exposta?) para economizar espaço. Mas desktops e máquinas virtuais ainda funcionam.
- você também precisa de um segundo computador com porta serial para receber os dados, mas esse é o caso de basicamente todas as placas de desenvolvimento incorporadas, como o Raspberry Pi.
- limitado pelo comprimento do cabo serial da camada física, diferentemente das redes TCP / IP que são ilimitadas. No entanto, isso pode ser resolvido com um dispositivo que faz interface entre serial e TCP / IP. Mas existem dispositivos que se convertem entre os dois.
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:
screen /dev/ttyS0 115200
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:
- netdump: transmite o pânico pelo TCP / IP. Confia no subsistema TCP / IP não sendo corrompido.
- kdump: parece ser o mecanismo subjacente do linux-crashdump mencionado em: https://askubuntu.com/a/104793/52975 Inicializa um segundo kernel do Linux para examinar o kernel travado. O que poderia dar errado?! :-)
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!).