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

7

No CrunchBang linux (variante do Debian), eu tenho uma porta COM no ttyS0 , que estou tentando usar com um dispositivo NFC. A libnfc respondeu que não podia ver nenhum dispositivo NFC, então eu 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

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

ps -ef | grep tty

mas para este comando, nada aparece usando ttyS0 . Eu também tentei pegar todos os arquivos abertos e filtrar por um bloqueio em ttyS0 :

lsof | grep tty

mas isso não retorna nada usando ttyS0 .

Como é possível que cu diga que a linha está em uso, mas os dois ps e lsof não retornam nada usando essa linha?

    
por Zyerah 08.08.2014 / 18:47

2 respostas

8

Provavelmente, não há uso real da linha, mas um problema de permissão. 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 ele começar a funcionar, você precisa cuidar do respectivo arquivo udev e das permissões / grupos de usuários. Para o meu dispositivo, era assim (sendo membro do grupo plugdev ):

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

Parece que este é um bug em cu . Eu resolvi isso alterando o grupo de proprietários de /dev/ttyUSB0 usando o seguinte comando:

chown root:root /dev/ttyUSB0
    
por 25.06.2017 / 18:58