2008-09-30 15 views
7

Estoy desarrollando un sistema integrado que actualmente arranca Linux con salida de consola en el puerto serial 1 (usando el parámetro de arranque de la consola desde el gestor de arranque). Sin embargo, eventualmente usaremos este puerto serie. ¿Cuál es la mejor solución para la salida de la consola del kernel?/dev/null? ¿Se puede poner de alguna manera para que potencialmente tengamos acceso a ella?¿Dónde envía la consola del kernel en un sistema integrado?

Respuesta

3

Si solo desea leer los mensajes kernel printk desde la consola, y no ejecutar realmente getty o shell, puede usar netconsole. Usted puede proporcionar la siguiente opción de cargador de arranque del kernel (o modprobe netconsole):

[email protected]/eth1,[email protected]/12:34:56:78:9a:bc 

donde 4444 es el puerto local, 10.0.0.1 es la IP local, eth1 es la interfaz local para enviar los mensajes de . 9353 es el puerto remoto, 10.0.0.2 es la dirección IP remota para enviar los mensajes a, y el último argumento es su dirección MAC del sistema remoto (por ejemplo: su escritorio).

A continuación, para ver los mensajes corren:

netcat -u -l -p 9353 

Usted puede leer más sobre esto en Documentation/networking/netconsole.txt

+0

gracias por la respuesta. En el producto final, supongo que podría enviar netconsole a 127.0.0.1 y luego leer desde el puerto en un shell si era necesario – MattSmith

3

Puede acceder a la memoria intermedia de mensajes printk desde un shell mediante dmesg. El buffer del kernel es de tamaño finito y sobrescribirá las entradas más antiguas con las más recientes, por lo que necesitaría verificar dmesg periódicamente o conectar netconsole como lo sugiere @bmdhacks.

Si no hay consola, perderá toda información grabada por un fallo del kernel. Incluso el uso de netconsole puede no ser de ayuda, si el núcleo se muere y comienza a reiniciarse antes de que TCP logre entregar la salida al socket remoto. En general, modificamos kernel/panic.c: panic() para guardar el contenido del registro y otro estado en un área de flash NOR, por lo que habrá al menos cierta información disponible para la depuración post mortem.

Cuestiones relacionadas