Perché alcune distribuzioni Linux hanno ancora / dev / ttyS0, ttyS1, ecc., Anche se i computer più recenti non dispongono di tale porta seriale?


34

Molti nuovi laptop e desktop non dispongono di porte seriali a 9 pin / 25 pin. Perché molte distribuzioni Linux contengono ancora /dev/ttyS0, dev/ttyS1file di dispositivo?

Dal momento che udevpuò creare i file di dispositivo in modo dinamico, perché sono /dev/ttyS0, /dev/ttyS1ancora creati in modo statico? Ogni volta che avvio, /dev/ttyS0e /dev/ttyS1sono lì.

A proposito: sto usando Debian 7.0.

Risposte:


41

Questi /devnodi appaiono perché il driver della porta seriale standard del PC è compilato nel kernel che stai usando e sta trovando gli UART . Ciò fa /sys/devices/platform/serial8250apparire (o qualcosa di compatibile), quindi udev crea i /devnodi corrispondenti .

Questi UART sono probabilmente una delle molte funzionalità del chipset della scheda madre. Gli UART seriali nel chipset sono ancora abbastanza comuni, anche se sta diventando sempre meno comune per un connettore DB-9 da collegare a questi pin IC UART.

Su alcune schede madri è presente un connettore di intestazione per ogni porta seriale e devi acquistare un cavo adattatore se desideri instradare quel connettore sul retro del PC:

Cavo adattatore da 10 pin a DB-9M

Altre schede madri che utilizzano lo stesso chipset potrebbero non esporre nemmeno il connettore dell'intestazione, anche se la funzione è disponibile in silicone, puramente per risparmiare un po 'di spazio PCB e pochi centesimi per il connettore dell'intestazione.

Alcuni UART seriali aggiungono costi trascurabili a un chip chipset per PC prodotto in serie, mentre aggiungono qualche dollaro al costo finale al dettaglio di una scheda madre per eseguire un connettore DB-9 sul bordo della scheda. C'è anche un costo nello spazio PCB; lo spazio sul bordo della tavola è particolarmente prezioso.

Non esiste un modo standard per verificare l'esistenza di un dispositivo collegato a una porta seriale RS-232.

USB a contrasto, in cui la semplice presenza di una porta sulla scheda madre non provoca la /devcreazione di un nodo, ma il collegamento di un dispositivo avviene, poiché esiste una negoziazione abbastanza complessa tra il dispositivo e il sistema operativo host. In effetti, il dispositivo si annuncia al sistema operativo, quindi udevpuò reagire creando un /devnodo appropriato per il dispositivo.


11
Consiglierei anche di menzionare, molte schede madri per laptop -do- hanno un controller seriale, non è diretto da nessuna parte quindi non può essere utilizzato senza smontare il laptop e saldare sui punti di prova, molti produttori lo usano per fare alcuni controlli di base sulla linea di produzione per garantire un livello base di funzionalità nella scheda madre prima della spedizione. Tuttavia, per quanto riguarda Linux, ciò significa che esiste una porta seriale e la crea un'istanza come ci si aspetterebbe da qualsiasi scheda con un controller seriale.
Valità,

@Valità, conosci qualche informazione utile su questo - accedo a un laptop che sarà considerato obsoleto domani ed è quindi maturo per (a) Linux e (b) armeggiare.
Chris H,

1
@ChrisH Beh, dipende in qualche modo dal laptop, dovrai trovare una scheda tecnica, o almeno una guida di hacking per la scheda madre del laptop, a seconda del modello, alcuni avranno il layout corretto per saldare facilmente su un'intestazione seriale anche se alcuni schede più economiche hanno solo alcuni punti di prova sparsi sulla scheda. Se sei fortunato e nel caso precedente puoi semplicemente saldare su un'intestazione, collegare un cavo ad esso, probabilmente tagliare un piccolo foro nel tuo laptop per adattarlo alla presa, avrai una porta. Ricorda che saranno 5 o 3,3 volt, quindi non usarlo come RS232. Che laptop è?
Valità,

@Vality un acbook netbook - non ho il modello esatto qui - Mi stavo solo chiedendo davvero delle risorse generali, ci vorrà un po 'prima che io ci riesca - grazie.
Chris H,

Il problema è la compatibilità di base, conservativa e retroattiva. Ecco perché alla gente piace Linux. Non "muovi velocemente e rompi cose" in un kernel. Le cose devono davvero cambiare solo quando c'è una ragione valida, e abbastanza universale, per far avanzare il kernel.
Jake Gould

4

Immagina di eseguire Linux sotto virtualizzazione, molti emulatori fanno ancora affidamento sull'output della console sulla porta seriale. È uno standard conveniente. Inoltre, il server senza testa utilizza ancora la porta seriale per la comunicazione.


Ma nessuno di questi sono motivi per cui viene creato il nodo del dispositivo. È creato perché il dispositivo è lì, per quanto riguarda il kernel. Se disabiliti l'UART seriale su CMOS non lo sarà.
GnP,

1
QEMU è un esempio che lo utilizza, se si desidera eseguire la VM all'interno del vostro terminale: stackoverflow.com/questions/19565116/...
Ciro Santilli新疆改造中心法轮功六四事件

0

Vale la pena ricordare che molti (la maggior parte?) Server forniscono ancora l'accesso seriale (ttyS0). Ho bisogno di connettermi su una connessione seriale-LAN attraverso iLO / iDRAC quasi ogni giorno. Come notato da @Patrick, durante la riconfigurazione della rete, mi collego alle macchine virtuali anche tramite porta seriale, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.