Otras lecturas

Otras lecturas

Lo que quiero hacer es conectar mi PC a mi terminal un DEC vt320 y poder enviarle la consola Linux y poder escribir comandos en el terminal y enviar una respuesta en la pantalla. Quería conectarme a cosas desde telnet pero no sé cómo hacerlo a través de serie. mi conexión serial es /dev/ttyS0

Respuesta1

Parece que Mint 19.3 usa systemd, por lo que, a menos que Mint haya modificado la systemdconfiguración de las distribuciones principales (Ubuntu y, en última instancia, Debian), los siguientes comandos deberían hacer el trabajo.

Para iniciar inmediatamente un puerto serie para acceder al inicio de sesión estilo terminal:

sudo systemctl start serial-getty@ttyS0 

Para hacer que la configuración persista durante los reinicios:

sudo systemctl enable serial-getty@ttyS0

Después de ejecutar el primero de estos comandos, debería aparecer un mensaje de inicio de sesión en la terminal. Si no es así, presione Enter en el terminal una o dos veces: puede ayudar a detectar la velocidad de transferencia de datos a la que está funcionando el terminal.

(La velocidad del puerto serie también se conoce a veces comotasa de baudios, aunque ese término se aplicaría correctamente sólo a conexiones de módem y similares donde se trata de modulación digital a analógica, no a la simple transferencia de datos digitales).

Esta systemdconfiguración predeterminada para terminales conectados en serie incluye la detección automática de la velocidad del puerto serie para velocidades de 115200, 38400 y 9600 bits por segundo. Puedes confirmar esto con el comando systemctl cat serial-getty@ttyS0. Generará el archivo de unidad generado automáticamente para ese puerto serie. Entre otras cosas, debe contener esta línea que inicia el proceso real que administrará la terminal:

ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM

Si la detección automática de velocidad del puerto serie no funciona bien para usted, o si desea especificar un valor de velocidad que no está incluido en la lista predeterminada, le recomendamos crear unanular archivopara este servicio systemd:

sudo systemctl edit [email protected]

Este comando creará el archivo (si es necesario) y lo abrirá en un editor.

Por ejemplo, para bloquear la detección de velocidad del puerto serie en 57600 bps, escribiría las siguientes tres líneas en el archivo de anulación:

[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- \\u' 57600 %I $TERM

La primera línea especifica que queremos anular cosas en la [Service]sección del archivo de servicio generado automáticamente, la segunda especifica que queremos anular su ExecStartlínea y no simplemente agregar otra, y la tercera línea es la nueva ExecStartlínea con la velocidad de puerto deseada y /u otras opciones para el agettyproceso que gestiona el terminal.

El nombre tradicional para este tipo de proceso en el mundo Unix es getty, y Linux normalmente utiliza un mejorado (aalternativa/autobauding) versión para puertos serie: agetty.

Respuesta2

La respuesta más sencilla es simplemente iniciar un servicio de inicio de sesión de terminal en el dispositivo serie, como en la respuesta de telcoM. Eso no cambia laconsola linux. Mover la consola Linux al dispositivo serie es más sencillo de implementar, pero tiene más efectos secundarios.

Simplemente tenga console=ttyS0la línea de comando del kernel, tal como le proporciona un cargador de arranque (probablemente GRUB en su caso).

El generador suministrado por systemd verá eso y habilitará automáticamente un serial-getty@ttyS0servicio. Pero, además, todo lo realconsolaLa salida, del kernel y de los programas escritos en /dev/console, ahora irá a su DEC VT320.

Desafortunadamente, un VT320no soportacolor. (Un VT340 lo hace, y solo 16 de ellos).

Esto es desafortunado porque hoy en día muchos programas simplemente cablean secuencias de control de color ECMA-48, incluidos aquellos que escupen mensajes a /dev/console. Todos los programas que vienen en el paquete systemd lo hacen, siempre que el entornodel proceso #1, que van y leen,no escontener TERM=dumb. Otros programas toman decisiones diferentes, a menudo basadas enlos suyosentornos de proceso, y algunos no toman decisiones basadas en la terminaltipoen absoluto, porque el autor nunca pensó que la salida del programa podría ser un dispositivo en serie con un terminal monocromático real.

Vos tambientambiénTenemos que asegurarnos de que la línea de comando del kernel especifique TERM=dumb, que no es una descripción correcta de un VT320 y es lamentablemente inadecuada.

Otras lecturas

información relacionada