web-dev-qa-db-fra.com

Linux me dit qu'un port série est utilisé, mais ce n'est pas

Sur Crunchbang Linux (Variante Debian), j'ai un port COM sur ttyS0, Que j'essaie d'utiliser avec un périphérique NFC. LibnFC a répondu qu'il ne pouvait voir aucun appareil NFC, donc j'ai essayé directement d'ouvrir le port COM. Pour cela, j'ai utilisé:

Sudo cu -l /dev/ttyS0 -s 9600

Cependant, cette commande revient:

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

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

ps -ef | grep tty

mais pour cette commande, rien ne montre que cela utilise ttyS0. J'ai également essayé de saisir tous les fichiers ouverts et filtrage pour une serrure sur ttyS0:

lsof | grep tty

mais cela ne renvoie rien en utilisant ttyS0.

Comment est-il possible le cu dit que la ligne est utilisée, mais les deux ps et lsof ne renvoient rien en utilisant cette ligne?

11
user218544

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

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

et réessayer cu. Si cela commence à fonctionner, vous devez prendre soin du fichier udev respectif et des autorisations/groupes de l'utilisateur. Pour mon appareil, il ressemblait à ceci (membre du groupe plugdev group):

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

Les privilèges de périphériques série sont accordés aux membres du groupe dialout. Se connecter à /dev/ttyS0 J'ai ajouté l'utilisateur actuel au groupe en utilisant:

Sudo adduser <username> dialout

2
alealmuna

Il semble que c'était un bogue dans cu. J'ai résolu cela en changeant le groupe de propriétaires de /dev/ttyUSB0 Utilisation de la commande suivante:

chown root:root /dev/ttyUSB0
1
SuB