¿Por qué algunas distribuciones de Linux todavía tienen / dev / ttyS0, ttyS1, etc., a pesar de que las computadoras más nuevas no tienen un puerto en serie?


34

Muchas computadoras portátiles y de escritorio nuevas no tienen puertos seriales de 9 pines / 25 pines. ¿Por qué muchas distribuciones de Linux todavía contienen /dev/ttyS0, dev/ttyS1los ficheros de dispositivos?

Puesto que udevpuede crear los archivos de dispositivo de forma dinámica, por eso están /dev/ttyS0, /dev/ttyS1siendo creada de forma estática? Cada vez que arranque, /dev/ttyS0y estoy /dev/ttyS1allí.

Por cierto: estoy usando Debian 7.0.

Respuestas:


41

Estos /devnodos aparecen porque el controlador de puerto serie de PC estándar se compila en el kernel que está utilizando y está buscando UART . Eso hace /sys/devices/platform/serial8250que aparezca (o algo compatible), por lo que udev crea los /devnodos correspondientes .

Estos UART son probablemente una de las muchas características del conjunto de chips de su placa base. Los UART serie en el conjunto de chips son bastante comunes aún, aunque cada vez es menos común que un conector DB-9 se conecte a estos pines IC UART.

En algunas placas base, hay un conector de encabezado para cada puerto serie, y debe comprar un cable adaptador si desea enrutar ese conector a la parte posterior de la PC:

Encabezado de 10 pines al cable adaptador DB-9M

Es posible que otras placas base que usan el mismo conjunto de chips ni siquiera expongan el conector del encabezado, a pesar de que la función está disponible en silicio, solo para ahorrar un poco de espacio en la PCB y algunos centavos para el conector del encabezado.

Unos pocos UART seriales agregan un costo insignificante a un IC de conjunto de chips de PC producido en masa, mientras que agrega algunos dólares al costo minorista final de una placa base para ejecutar un conector DB-9 en el borde de la placa. También hay un costo en el espacio de PCB; El espacio en el borde del tablero es especialmente valioso.

No hay una forma estándar de investigar la existencia de un dispositivo conectado a un puerto serie RS-232.

Contraste USB, donde la mera presencia de un puerto en la placa base no hace /devque se cree un nodo, pero enchufar un dispositivo sí, porque hay una negociación bastante compleja entre el dispositivo y el sistema operativo host. En efecto, el dispositivo se anuncia al sistema operativo, por lo que udevpuede reaccionar creando un /devnodo apropiado para el dispositivo.


11
También recomendaría mencionar que muchas placas base para computadoras portátiles tienen un controlador en serie, simplemente no se dirigen a ningún lado, por lo que no se pueden usar sin desmontar la computadora portátil y soldar en los puntos de prueba, muchos fabricantes usan esto para hacer algunas comprobaciones básicas en la línea de producción para garantizar un nivel básico de función en la placa base antes del envío. Sin embargo, en lo que respecta a Linux, esto significa que hay un puerto serie y lo instancia como se podría esperar para cualquier placa con un controlador serie.
Vality

@Vality, ¿conoce alguna información útil sobre esto? Accedo a una computadora portátil que se considerará obsoleta mañana y, por lo tanto, está lista para (a) Linux y (b) retoques.
Chris H

1
@ChrisH Bueno, depende un poco de la computadora portátil, necesitará encontrar una hoja de datos, o al menos una guía de pirateo para la placa base de la computadora portátil, dependiendo del modelo, algunos tendrán el diseño correcto para soldar en un encabezado en serie fácilmente, aunque algunos los tableros más baratos solo tienen algunos puntos de prueba dispersos sobre el tablero. Si tiene suerte y antes es el caso, puede simplemente soldar en un encabezado, conectarle un cable, probablemente cortar un pequeño agujero en su computadora portátil para que encaje el zócalo y luego tendrá un puerto. Recuerde que será de 5 o 3.3 voltios, así que no lo use como RS232. ¿Qué laptop es?
Vality

@Vality un acer netbook - no tengo el modelo exacto aquí - Solo me preguntaba acerca de los recursos generales realmente, pasará un tiempo antes de que llegue a él - gracias.
Chris H

El problema es básico, conservador, compatibilidad con versiones anteriores. Por eso a la gente le gusta Linux. No se "mueve rápido y rompe cosas" en un núcleo. Las cosas solo necesitan cambiar cuando hay una razón válida, y bastante universal, para que el núcleo avance.
JakeGould

4

Imagine que ejecuta Linux bajo virtualización, muchos de los emuladores aún dependen de la salida de la consola al puerto serie. Es un estándar conveniente. Además, el servidor sin cabeza todavía usa el puerto serie para la comunicación.


Pero ninguno de esos son motivos por los que se crea el nodo del dispositivo. Se crea porque el dispositivo está allí, en lo que respecta al núcleo. Si desactiva el UART serial en CMOS, no lo será.
GnP

1
QEMU es un ejemplo que lo usa si desea ejecutar la VM dentro de su terminal: stackoverflow.com/questions/19565116/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

0

Vale la pena mencionar que muchos servidores (¿la mayoría?) Todavía proporcionan acceso en serie (ttyS0). Necesito conectarme a través de una conexión Serial-over-LAN a través de iLO / iDRAC casi a diario. Como señaló @Patrick, también me conecto a máquinas virtuales a través del puerto serie al reconfigurar redes, etc.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.