Puerto serial
El puerto serie es un simple mecanismo de comunicación de bajo nivel entre computadoras.
Ventajas:
- configuración simple una vez (si tiene el hardware)
- confiable, ya que la transmisión de datos solo depende de una API de kernel y cables simple, que es menos probable que se vea afectada por el pánico que, por ejemplo, el subsistema TCP / IP.
Desventajas:
- La mayoría de las computadoras portátiles modernas ya no tienen el puerto serie (¿expuesto?) para ahorrar espacio. Pero las computadoras de escritorio y las máquinas virtuales aún lo hacen.
- También necesita una segunda computadora con puerto serie para recibir los datos, pero este es el caso de básicamente todas las placas de desarrollo integradas como la Raspberry Pi.
- limitado por la longitud del cable serie de la capa física, a diferencia de las redes TCP / IP que son ilimitadas. Sin embargo, esto puede solucionarse con un dispositivo que interactúe entre serie y TCP / IP. Pero hay dispositivos que convierten entre los dos.
El puerto serie se ve así:
y en el RPI está disponible a través de GPIO.
Luego, si tiene el hardware requerido, conéctese desde la segunda computadora a la computadora principal con:
screen /dev/ttyS0 115200
Esto realmente te da una concha.
Luego, en la máquina principal, inicie la operación que entra en pánico.
Cuando ocurre el pánico, el volcado de pánico se transmite a la segunda máquina, y puede verlo todo desplazándose hacia arriba en el terminal.
Otros metodos
También hay otros métodos que superan las limitaciones de hardware mencionadas anteriormente, a costa de ser más complejas y menos confiables. Métodos notables:
- netdump: transmite el pánico a través de TCP / IP. Se basa en que el subsistema TCP / IP no esté dañado.
- kdump: parece ser el mecanismo subyacente de linux-crashdump mencionado en: https://askubuntu.com/a/104793/52975 Inicia un segundo kernel de Linux para examinar el kernel bloqueado . ¡¿Qué podría salir mal?! :-)
Vea también esta gran respuesta: https://unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic
Paso de depuración
En última instancia, obtener resultados de pánico requiere que algunas funciones del núcleo funcionen, y cualquier funcionalidad del núcleo podría corromperse por el pánico.
Pero, ¿quién necesita el pánico si puede usar GDB en el núcleo? Si eres así de duro, mira:
Cada problema cae una vez que tiene visibilidad completa (¡y suficiente tiempo!).