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?


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"

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.