#1 Le 20/05/2009, à 09:58
- Zed973
Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Salut
J'utilise deux programmes avec mon port série.
Le premier programme un microcontroleur.
Le second est "screen" avec lequel j'essaie de communiquer avec la "puce".
Le probléme est qu'aprés avoir utilisé
screen /dev/ttyS0 9600
je ne peux plus utiliser le premier programme (le programmateur) : il me dit que le port est occupé, même si le programme screen est fermée. Il faut carrément un redémarrage, une déconnexion/connexion ne suffit pas a "clarifier" mont port série.
Que puis je faire?
Merci
Dernière modification par Zed973 (Le 01/06/2009, à 10:37)
Linux depuis 2007. Ubuntu Mate 23.10
Ravi.
Hors ligne
#2 Le 25/05/2009, à 16:11
- Zed973
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Pas d'idées???:/
Linux depuis 2007. Ubuntu Mate 23.10
Ravi.
Hors ligne
#3 Le 01/06/2009, à 10:36
- Zed973
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Une autre approche du problémé : d'autres programmes me disent que je n'ai plus le driot d'utiliser le port serie
Achaque fois j'ai utulisé "screen" avant"..:(:(
Linux depuis 2007. Ubuntu Mate 23.10
Ravi.
Hors ligne
#4 Le 01/06/2009, à 11:29
- Zed973
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
J'avance doucement
je découvre le programme setserial
zed@direct:~$ sudo setserial -g /dev/ttyS0
[sudo] password for zed:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
Qui a une idée pour le "fermer"?
Linux depuis 2007. Ubuntu Mate 23.10
Ravi.
Hors ligne
#5 Le 01/06/2009, à 14:48
- gilbert
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Salut,
essaies de compiler et exécuter ça...
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(int argc, char* argv) {
int fd;
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NONBLOCK);
if (fd < 0) {
perror("/dev/ttyS0");
exit(1);
}
close(fd);
return 0;
}
Simplement moi-même..
Hors ligne
#6 Le 02/06/2009, à 16:37
- Zed973
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Merci
C'est sensé faire quoi, fermer mon port??
Linux depuis 2007. Ubuntu Mate 23.10
Ravi.
Hors ligne
#7 Le 02/06/2009, à 18:46
- gilbert
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Salut,
oui ça ne fait rien d'autre que d'ouvrir et fermer le port... si ça ne fonctionne pas.. alors tu as un programme qui maltraite ton port série :-) Sinon c'est simplement un problème de configuration dans ton screen ou ailleurs...
Simplement moi-même..
Hors ligne
#8 Le 02/06/2009, à 18:47
- 0xdeadbeef
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
On dirait que le programme screen rend la main en laissant le port série dans une mauvaise config matérielle.
Je pense aux lignes de contrôle de flux RTS/CTS/DTR/DSR.
Tu pourrais utiliser des ioctl pour examiner l'état de ces lignes, pour ensuite les forcer à ce qui te convient.
#include <unistd.h>
#include <termios.h>
.
.
int fd = open ("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY | O_NONBLOCK);
int status;
ioctl (fd, TIOCMGET, &status);
.
.
Dans status tu récupéreras l'état des lignes.
Utilise des masques pour récupérer les états individuels (et les visualiser) dans les deux cas distincts:
- un programme utilisant /dev/ttyS0 proprement vient de rendre la main
- le programme screen vient de rendre la main
Ensuite TIOCMSET pour affecter les états..
Tu n'as pas dit si tu avais accès au code du programme screen (et donc à sa modification). Tu peux préciser stp?
#9 Le 18/07/2009, à 15:05
- Zed973
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Salut gilbert
zed@zed-desktop:~/Bureau/c/programmation$ ./testserie
/dev/ttyS0: Device or resource busy
Je ne sias qui bloque.
Je vais essayer le programme d'0xdeadbeef.
Merci les gars...
Linux depuis 2007. Ubuntu Mate 23.10
Ravi.
Hors ligne
#10 Le 19/08/2009, à 23:42
- Zed973
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Tu n'as pas dit si tu avais accès au code du programme screen (et donc à sa modification). Tu peux préciser stp?
Au fait : non. J'execute screen depuis un terminal.
Linux depuis 2007. Ubuntu Mate 23.10
Ravi.
Hors ligne
#11 Le 04/12/2009, à 00:05
- Zed973
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Svp , c'est quoi :
TIOCMSET
Linux depuis 2007. Ubuntu Mate 23.10
Ravi.
Hors ligne
#12 Le 26/01/2023, à 16:45
- tuxonrub
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
pkill screen
dans un terminal (juste tuer ton screen)
tu peux tester et mettre résolu
Buno
Hors ligne
#13 Le 26/01/2023, à 16:53
- xubu1957
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Bonjour,
Réponse pour une demande de 2009 !
Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci. Membre de Linux-Azur
Hors ligne
#14 Le 13/02/2023, à 22:31
- Zed973
Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(
Poo, vous me faites rajeunir!!!!
Linux depuis 2007. Ubuntu Mate 23.10
Ravi.
Hors ligne