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 systemd
configuració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 systemd
configuració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 ExecStart
línea y no simplemente agregar otra, y la tercera línea es la nueva ExecStart
línea con la velocidad de puerto deseada y /u otras opciones para el agetty
proceso 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=ttyS0
la 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@ttyS0
servicio. 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
- https://unix.stackexchange.com/a/447098/5132
- https://unix.stackexchange.com/a/475043/5132
- Jonathan de Boyne Pollard (2018).Páginas de manual para dispositivos terminales virtuales del kernel de Linux. Propuestas.
- Jonathan de Boyne Pollard (2018).
linux-console
.Guía de comida. Softwares. - Jonathan de Boyne Pollard (2018).
linux-vt
.Guía de comida. Softwares.
- Jonathan de Boyne Pollard (2018).