Porta seriale
La porta seriale è un semplice meccanismo di comunicazione di basso livello tra computer.
vantaggi:
- configurazione semplice una volta (se hai l'hardware)
- affidabile, poiché la trasmissione dei dati dipende solo da semplici fili e API del kernel, che ha meno probabilità di essere influenzata dal panico rispetto al sottosistema TCP / IP.
Svantaggi:
- la maggior parte dei laptop moderni non ha più la porta seriale (esposta?) per risparmiare spazio. Ma i desktop e le macchine virtuali lo fanno ancora.
- è necessario anche un secondo computer con porta seriale per ricevere i dati, ma questo è praticamente il caso di tutte le schede di sviluppo integrate come Raspberry Pi.
- limitato dalla lunghezza del cavo seriale del livello fisico, a differenza delle reti TCP / IP che sono illimitate. Ciò può tuttavia essere risolto con un dispositivo che si interfaccia tra seriale e TCP / IP. Ma ci sono dispositivi che si convertono tra i due.
La porta seriale si presenta così:
e su RPI è disponibile tramite GPIO.
Quindi, se si dispone dell'hardware richiesto, connettersi dal secondo computer al computer principale con:
screen /dev/ttyS0 115200
Questo in realtà ti dà una shell.
Quindi sulla macchina principale, avvia l'operazione che va nel panico.
Quando si verifica il panico, il dump del panico viene trasmesso in streaming alla seconda macchina e puoi vedere tutto scorrendo verso l'alto sul terminale.
Altri metodi
Esistono anche altri metodi che superano i limiti hardware sopra menzionati, a costo di essere più complessi e meno affidabili. Metodi notevoli:
- netdump: trasmette il panico su TCP / IP. Si basa sul sottosistema TCP / IP non corrotto.
- kdump: sembra essere il meccanismo sottostante di linux-crashdump menzionato in: https://askubuntu.com/a/104793/52975 Avvia un secondo kernel Linux per esaminare il kernel bloccato. Che cosa potrebbe andare storto?! :-)
Vedi anche questa grande risposta: https://unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic
Step debugging
Alla fine, ottenere l'output di panico richiede che alcune funzionalità del kernel funzionino e qualsiasi funzionalità del kernel potrebbe essere danneggiata dal panico.
Ma chi ha bisogno di panico se puoi usare GDB sul kernel? Se sei quel hardcore, dai un'occhiata a:
Ogni problema cade quando hai piena visibilità (e abbastanza tempo!).