Pourquoi certaines distributions Linux ont-elles encore / dev / ttyS0, ttyS1, etc. alors que les ordinateurs les plus récents n’ont pas un tel port série?

34

Beaucoup de nouveaux ordinateurs portables et de bureau ne disposent pas de ports série à 9 broches / 25 broches. Pourquoi de nombreuses distributions Linux contiennent encore /dev/ttyS0, les dev/ttyS1fichiers de périphériques?

Puisqu'il est udevpossible de créer les fichiers de périphérique de manière dynamique, pourquoi sont /dev/ttyS0-ils /dev/ttyS1toujours créés de manière statique? Chaque fois que je démarre, /dev/ttyS0et /dev/ttyS1sont là - dedans.

Au fait: j'utilise Debian 7.0.

cli__
la source

Réponses:

41

Ces /devnœuds apparaissent car le pilote de port série PC standard est compilé dans le noyau que vous utilisez et recherche des UART . Cela fait /sys/devices/platform/serial8250apparaître (ou quelque chose de compatible), donc udev crée les /devnœuds correspondants .

Ces UART sont probablement l'une des nombreuses fonctionnalités du chipset de votre carte mère. Les UART série dans le jeu de puces sont encore assez courants, même s'il devient de moins en moins courant qu'un connecteur DB-9 soit connecté à ces broches UART IC.

Sur certaines cartes mères, il existe un connecteur d’en-tête pour chaque port série et vous devez acheter un câble adaptateur si vous souhaitez acheminer ce connecteur à l’arrière du PC:

Câble adaptateur pour connecteur DB-9M

D'autres cartes mères utilisant le même jeu de puces risquent même de ne pas exposer le connecteur d'en-tête, même si la fonctionnalité est disponible en silicium, uniquement pour économiser un peu d'espace sur le PCB et quelques centimes pour le connecteur d'en-tête.

Quelques UART en série ajoutent un coût négligeable à un circuit intégré de fabrication en série de puces PC, alors qu’il ajoute quelques dollars au coût de détail final d’une carte mère permettant de faire passer un connecteur DB-9 jusqu’au bord de la carte. Il y a aussi un coût dans l'espace PCB; l'espace au bord de la planche est particulièrement précieux.

Il n'existe pas de méthode standard pour rechercher l'existence d'un périphérique connecté à un port série RS-232.

Contraste USB, où la simple présence d'un port sur la carte mère ne provoque /devpas la création d' un nœud, mais le branchement d'un périphérique dans ce cas, car il existe une négociation assez complexe entre le périphérique et le système d'exploitation hôte. En effet, le périphérique s’annonce au système d’exploitation et udevpeut donc réagir en créant un /devnœud approprié pour le périphérique.

Warren Young
la source
11
Je recommanderais également de mentionner que de nombreuses cartes mères d'ordinateurs portables ont un contrôleur série, il n'est tout simplement pas orienté vers n'importe où, donc il ne peut pas être utilisé sans démonter l'ordinateur portable et souder sur des points de test, de nombreux fabricants l'utilisent pour effectuer des contrôles de base sur la chaîne de production. pour assurer un niveau de base de la fonction dans la carte mère avant l'expédition. Cependant, en ce qui concerne Linux, cela signifie qu’il existe un port série et qu’il l’instancie comme on pourrait s’y attendre pour toute carte dotée d’un contrôleur série.
Vality
@Vality, connaissez-vous des informations utiles à ce sujet? J'ai accès à un ordinateur portable qui sera jugé obsolète demain et qui est donc mûr pour (a) Linux et (b) le bricolage.
Chris H
1
@ChrisH Cela dépend un peu de l'ordinateur portable. Vous aurez besoin de trouver une fiche technique, ou au moins un guide de piratage de la carte mère de l'ordinateur portable. Selon le modèle, certains auront la bonne disposition pour souder facilement sur un en-tête de série Les conseils les moins chers ont juste quelques points de test dispersés sur le conseil. Si vous avez de la chance et que le plus tôt est le cas, vous pouvez simplement souder sur un connecteur, y connecter un câble, probablement couper un petit trou dans votre ordinateur portable pour que la prise puisse y être insérée, puis vous aurez un port. N'oubliez pas que ce sera 5 ou 3,3 volts alors ne l'utilisez pas comme RS232. De quel portable s'agit-il?
Vality
@Vality un netbook acer - je n'ai pas le modèle exact ici - je m'interrogeais vraiment sur les ressources générales, il me faudra un peu de temps avant d'y arriver - merci.
Chris H
Le problème est basique, conservateur, avec une compatibilité ascendante. C'est pourquoi les gens aiment Linux. Vous ne «bougez pas vite et ne cassez pas les choses» dans un noyau. Les choses ne doivent vraiment changer que lorsqu'il existe une raison valable et assez universelle pour que le noyau aille de l'avant.
JakeGould
4

Imaginez que vous exécutiez Linux avec la virtualisation, de nombreux émulateurs dépendent toujours de la sortie de la console sur un port série. C'est une norme pratique. En outre, le serveur sans tête utilise toujours le port série pour la communication.

Patrick
la source
Mais aucune de ces raisons ne justifie la création du nœud de périphérique. Il est créé parce que le périphérique est là, en ce qui concerne le noyau. Si vous désactivez l'UART série sur CMOS, ce ne sera pas le cas.
GnP
1
QEMU est un exemple qui l'utilise si vous souhaitez exécuter la machine virtuelle à l'intérieur de votre terminal: stackoverflow.com/questions/19565116/…
Ciro Santilli a annoncé
0

Il est à noter que de nombreux serveurs (la plupart?) Fournissent toujours un accès série (ttyS0). Je dois me connecter presque tous les jours via une connexion série sur le LAN via iLO / iDRAC. Comme @Patrick l'a noté, je me connecte également à des machines virtuelles via un port série lors de la reconfiguration de la mise en réseau, etc.

David
la source