Linux mi dice che una porta seriale è in uso, ma non lo è


9

Su CrunchBang linux (variante Debian), ho una porta COM su ttyS0, che sto cercando di utilizzare con un dispositivo NFC. libnfc ha risposto che non poteva vedere alcun dispositivo NFC, quindi ho provato ad aprire direttamente la porta COM. Per questo, ho usato:

sudo cu -l /dev/ttyS0 -s 9600

Tuttavia, questo comando restituisce:

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

Non so cosa potrebbe mai essere usando questa connessione. Per scoprirlo, ho provato a leggere tutti i processi aperti e il filtraggio per l'uso di ttyS0:

ps -ef | grep tty

ma per questo comando, nulla si mostra che sta usando ttyS0. Ho anche provato ad afferrare tutti i file aperti e il filtraggio per un blocco ttyS0:

lsof | grep tty

ma questo non restituisce nulla usando ttyS0.

Com'è possibile il cu dice che la linea è in uso, ma entrambi ps e lsof non restituire nulla usando quella linea?


Che dire di lsof / dev / ttyS0
Ciclamino

@Ciclamino che non lo cambia - tty è una sottostringa di /dev/ttyS0. Ciò, tuttavia, nasconde tutti gli altri tty.
Zyerah

Ho lo stesso problema. minicom funziona bene, ma cu e screen rifiutare di parlare con /dev/ttyUSB0. Mi è stato consigliato di aggiungere il mio utente al uucp e dialout gruppi e logout che non hanno aiutato.
Vorac

Risposte:


9

Probabilmente non esiste un vero uso della linea, ma un problema di autorizzazione. modo rapido e sporco per provare per me era quello di eseguire:

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

e riprovare cu. Se inizia a funzionare, è necessario prendersi cura dei rispettivi udev file e le autorizzazioni utente / gruppi. Per il mio dispositivo sembrava questo (essere membro in plugdev gruppo):

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

2

Sembra che questo sia un bug in cu. Ho risolto questo cambiando il gruppo proprietario di /dev/ttyUSB0 usando il seguente comando:

chown root:root /dev/ttyUSB0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.