Linux me dit qu'un port série est en cours d'utilisation, mais ce n'est pas le cas

12

Sur CrunchBang linux (variante Debian), j'ai un port COM sur ttyS0lequel j'essaie d'utiliser avec un périphérique NFC. libnfc a répondu qu'il ne pouvait voir aucun périphérique NFC, j'ai donc essayé d'ouvrir directement le port COM. Pour cela, j'ai utilisé:

sudo cu -l /dev/ttyS0 -s 9600

Cependant, cette commande renvoie:

cu: open (/dev/ttyS0): Permission denied
cu: /dev/ttyS0: Line in use

Je ne sais pas ce qui pourrait éventuellement utiliser cette connexion. Pour le savoir, j'ai essayé de lire tous les processus ouverts et le filtrage pour l'utilisation de ttyS0:

ps -ef | grep tty

mais pour cette commande, rien ne s'affiche qui utilise ttyS0. J'ai également essayé de saisir tous les fichiers ouverts et de filtrer pour un verrouillage sur ttyS0:

lsof | grep tty

mais cela ne renvoie rien en utilisant ttyS0.

Comment est-il possible cuque la ligne soit utilisée, mais les deux pset lsofne retournent rien en utilisant cette ligne?


la source
Qu'en est-il de lsof / dev / ttyS0
Ciclamino
@Ciclamino Cela ne change rien - tty est une sous-chaîne de /dev/ttyS0. Cela cache cependant tous les autres ttys.
J'ai le même problème. minicomfonctionne bien, mais cuet screenrefuser de parler /dev/ttyUSB0. On m'a conseillé d'ajouter mon utilisateur au uucpet des dialoutgroupes et connectez - vous que n'a pas aidé.
Vorac

Réponses:

12

Il n'y a probablement pas d'utilisation réelle de la ligne, mais un problème d'autorisation. moyen rapide et sale de tester pour moi était d'exécuter:

ls -la /dev/ttyUSB0
sudo chmod 666 /dev/ttyUSB0

et réessayez cu. S'il commence à fonctionner, vous devez prendre soin du udevfichier respectif et des autorisations / groupes d'utilisateurs. Pour mon appareil, cela ressemblait à ceci (être membre d'un plugdevgroupe):

> cat /etc/udev/rules.d/42-CP210x.rules 
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SUBSYSTEMS=="usb",
ACTION=="add", MODE="0666", GROUP="plugdev"
IljaBek
la source
2

Les privilèges des périphériques série sont accordés aux membres du dialoutgroupe. Pour me connecter, /dev/ttyS0j'ai ajouté l'utilisateur actuel au groupe en utilisant:

sudo adduser <username> dialout

alealmuna
la source
1

Il semble que ce soit un bug cu. J'ai résolu cela en changeant le groupe de propriétaires en /dev/ttyUSB0utilisant la commande suivante:

chown root:root /dev/ttyUSB0
Sous
la source