Tengo una computadora ARM mini2440 con una pantalla pequeña y actualmente la tengo iniciando Debian Squeeze. Me estoy comunicando con él a través de una conexión en serie usando minicom
. Cuando la cosa arranca, me da un aviso de inicio de sesión sobre la serie y en la pantalla pequeña. Si conecto un teclado USB, puedo iniciar sesión y usar el terminal de pantalla pequeña.
Estoy tratando de entender la idea de terminales o consolas en Linux. ¿Cómo sabe el sistema que debe darme un aviso de inicio de sesión a través de la conexión en serie? ¿Puedo redirigir la salida de un programa llamada desde la sesión en serie a la pantalla? ¿Puedo hacer que la pantalla refleje lo que veo en serie? Estoy muy confundido acerca de qué procesos manejan esto y por qué el sistema de inicio de sesión se diseñó de esta manera.
Agradecería enormemente cualquier descripción general o referencias útiles. Gracias
Respuesta aceptada:
El sistema le permite iniciar sesión en serie porque tiene una línea como esta en /etc/inittab
:
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
Eso dice ejecutar a a getty en ttyS0 en los niveles de ejecución 2 y 3, y reaparecer cuando exista. 9600 es, por supuesto, los bits por segundo, y vt100 es el tipo de terminal. También notará gettys en tty1–6, esas son las consolas virtuales kernel VGA (que probablemente estén conectadas a la pantalla pequeña).
Puede escribir en la consola VGA ejecutando su programa en ella o, alternativamente, abrirla (generalmente después de comentar las líneas de inittab que ejecutan getty allí). También puede usar las bibliotecas de búfer de cuadros (o la interfaz de búfer de cuadros del kernel directamente). Incluso podría iniciar X en él, supongo.
No estoy seguro de cuál es la forma más fácil de duplicar la salida en ambos ttys.