La question:
J'ai branché un périphérique (modem GSM) via un port série (RS-232) et j'ai besoin de savoir avec quel fichier du /dev/
système de fichiers cet appareil était bloqué pour pouvoir communiquer avec lui. Malheureusement, il n'y a pas de fichier nouvellement créé /dev/
ni rien en dmesg
sortie. Donc, cela semble être une question difficile.
Contexte:
Je n'avais jamais travaillé avec un appareil série. Hier, quand un besoin est apparu, j'ai essayé de le rechercher sur Google, mais je n'ai rien trouvé d'utile. J'ai passé quelques heures à chercher et je veux partager une réponse trouvée car elle pourrait être utile à quelqu'un.
devices
tty
serial-port
Salut ange
la source
la source
Réponses:
Malheureusement , les ports série sont non-plugnplay, si le noyau ne sait pas quel appareil est branché. Après avoir lu un HowTo tutoriel , j'ai eu l'idée de travailler.
Le
/dev/
répertoire des systèmes d'exploitation similaires à Unix contient des fichiers nommés ttySn (n étant un nombre) . La plupart d'entre eux ne correspondent pas aux appareils existants. Pour trouver ceux qui le font, lancez une commande:Ci-dessus, un exemple de sortie de mon PC. Vous pouvez voir l'initialisation de quelques ports série:
ttyS0
,ttyS1
,ttyS4
,ttyS5
.L'un d'eux aura une tension positive sur un périphérique branché. Ainsi, en comparant le contenu du fichier
/proc/tty/driver/serial
avec et sans le périphérique branché, nous pouvons facilement trouver le ttyS associé à notre périphérique. Alors maintenant:(débrancher) un appareil
Ensuite, vérifiez la différence entre les deux fichiers. Ci-dessous une sortie de mon PC:
En comparant les trois nombres avec la sortie dmesg, nous pouvons déterminer lequel est le port:
Par conséquent, notre appareil est
/dev/ttyS0
, mission accomplie!la source
dmesg
devrait avoir un message sur l'affectation de irq à un périphérique série. Et si ce n'était pas le cas, je supposerais un problème matériel. C'est juste une hypothèse, et peut-être fausse, mais si je déboguais un tel problème, je commencerais la recherche en pensant que le port série aurait dû être initialisé.