Linux sagt mir, dass eine serielle Schnittstelle verwendet wird, aber nicht

11

Unter CrunchBang Linux (Debian-Variante) habe ich einen COM-Port ttyS0, den ich mit einem NFC-Gerät verwenden möchte. libnfc antwortete, dass keine NFC-Geräte angezeigt werden konnten, daher habe ich versucht, den COM-Port direkt zu öffnen. Dafür habe ich verwendet:

sudo cu -l /dev/ttyS0 -s 9600

Dieser Befehl gibt jedoch Folgendes zurück:

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

Ich weiß nicht, was diese Verbindung möglicherweise verwenden könnte. Um dies herauszufinden, habe ich versucht, alle offenen Prozesse zu lesen und nach folgenden Elementen zu filtern ttyS0:

ps -ef | grep tty

Für diesen Befehl wird jedoch nichts angezeigt, das verwendet wird ttyS0. Ich habe auch versucht, alle geöffneten Dateien abzurufen und nach einer Sperre zu filtern ttyS0:

lsof | grep tty

dies gibt aber nichts mit zurück ttyS0.

Wie ist es möglich, cudass die Zeile verwendet wird, aber beide psund lsofnichts über diese Zeile zurückgeben?


quelle
Was ist mit lsof / dev / ttyS0
Ciclamino
@Ciclamino Das ändert nichts - tty ist ein Teilstring von /dev/ttyS0. Das verbirgt jedoch alle anderen ttys.
Ich habe das gleiche Problem. minicomfunktioniert gut, aber cuund screenweigern sich zu sprechen /dev/ttyUSB0. Ich wurde geraten , meinen Benutzer des hinzuzufügen uucpund dialoutGruppen und ausloggen das hat nicht geholfen.
Vorac

Antworten:

12

Es gibt wahrscheinlich keine wirkliche Nutzung der Leitung, aber ein Berechtigungsproblem. Der schnelle und schmutzige Weg, um für mich zu testen, bestand darin, Folgendes auszuführen:

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

und erneut versuchen cu. Wenn es funktioniert, müssen Sie sich um die jeweilige udevDatei und die Benutzerberechtigungen / -gruppen kümmern . Für mein Gerät sah es so aus (Mitglied in einer plugdevGruppe zu sein):

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

Serielle Geräteberechtigungen werden Mitgliedern der dialoutGruppe gewährt . Um eine Verbindung herzustellen, habe /dev/ttyS0ich den aktuellen Benutzer der Gruppe hinzugefügt, indem ich:

sudo adduser <username> dialout

Alealmuna
quelle
1

Es scheint, dass dies ein Fehler ist cu. Ich habe dieses Problem gelöst, indem ich die Eigentümergruppe /dev/ttyUSB0mithilfe des folgenden Befehls geändert habe:

chown root:root /dev/ttyUSB0
SuB
quelle