O Linux diz que uma porta serial está em uso, mas não está


12

No linux CrunchBang (variante Debian), tenho uma porta COM ativada ttyS0, que estou tentando usar com um dispositivo NFC. A libnfc respondeu que não podia ver nenhum dispositivo NFC, então tentei abrir diretamente a porta COM. Para isso, usei:

sudo cu -l /dev/ttyS0 -s 9600

No entanto, este comando retorna:

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

Não sei o que poderia estar usando essa conexão. Para descobrir, tentei ler todos os processos abertos e filtrar o uso de ttyS0:

ps -ef | grep tty

mas para este comando, não aparece nada que esteja usando ttyS0. Eu também tentei pegar todos os arquivos abertos e filtrar para bloquear ttyS0:

lsof | grep tty

mas isso não retorna nada usando ttyS0.

Como é possível cudizer que a linha está em uso, mas ambas pse lsofnão retornam nada usando essa linha?


E quanto ao lsof / dev / ttyS0
Ciclamino

@Ciclamino Isso não muda - tty é uma substring de /dev/ttyS0. No entanto, isso oculta todos os outros ttys.

Eu tenho o mesmo problema. minicomfunciona bem, mas cue se screenrecusa a conversar /dev/ttyUSB0. Fui aconselhado a adicionar o meu usuário para o uucpe dialoutgrupos e log que não ajudou.
Vorac 31/10/2015

Respostas:


12

Provavelmente não há uso real da linha, mas um problema de permissão. Uma maneira rápida e suja de testar para mim era executar:

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

e tente novamente cu. Se começar a funcionar, você precisará cuidar do respectivo udevarquivo e das permissões / grupos de usuários. Para o meu dispositivo, era assim (sendo membro do plugdevgrupo):

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

2

Os privilégios de dispositivos seriais são concedidos aos membros do dialoutgrupo. Para se conectar /dev/ttyS0, adicionei o usuário atual ao grupo usando:

sudo adduser <username> dialout


1

Parece que isso é um bug cu. Resolvi isso alterando o grupo de proprietários /dev/ttyUSB0usando o seguinte comando:

chown root:root /dev/ttyUSB0
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.