ftduino: Zugriff nur als root

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

ftduino: Zugriff nur als root

Beitrag von EstherM » 05 Mär 2019, 17:26

Hallo zusammen,
heute hätte ich mal eine ftdunio-Frage:
Ich versuche den ftduino von meinem Rechner (Linux, OpenSuse-Tumbleweed) mit einem Skript zu versorgen (Blink01).
Das klappt aber nur, wenn ich root bin. Ansonsten bekomme ich die Meldung "avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied".
Als normaler Benutzer bin ich zwar Mitglied der Gruppe dialout, aber es funktioniert eben nicht.
Ein paar Details sind noch interessant:
  • Die Fehlermeldung kommt erst nach

    Code: Alles auswählen

    Using Port                    : /dev/ttyACM0
    Using Programmer              : avr109
    Overriding Baud Rate          : 57600
  • Die IDE scheint schon irgendwie mit dem ftduino zu sprechen: der blinkt hektisch bei dem gescheiterten Upload.
  • Mit einem andereren Arduino (Arduino Uno) spricht der Rechner problemlos.
Ich habe schon an /etc/udev/rules.d herumgebastelt, wie in dem Manual beschrieben, aber ohne Erfolg.
Hat jemand eine nützliche Idee? Danke!
Gruß
Esther

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ftduino: Zugriff nur als root

Beitrag von MasterOfGizmo » 05 Mär 2019, 20:31

Irgendein anderer Prozess, der sich den während des Flashens ab- und wieder angemeldeten ftDuino kurzzeitig schnappt? Mir kommt da der Modemmanager in den Sinn.

Ein Uno hat einen separaten USB-Chip und bleibt am System angemeldet auch während er geflasht wird. Der hätte das Problem daher nicht.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: ftduino: Zugriff nur als root

Beitrag von EstherM » 07 Mär 2019, 15:44

Hallo MoG,
danke für die Tipps. Jetzt verstehe ich immerhin schon, warum der andere Arduino tut.
Offensichtlich klappt das Ab- und Neuanmelden nicht richtig.
dmesg liefert folgendes:

Code: Alles auswählen

[ 2625.652976] usb 1-5: USB disconnect, device number 63
[ 2625.996429] usb 1-5: new full-speed USB device number 64 using xhci_hcd
[ 2626.146770] usb 1-5: New USB device found, idVendor=1c40, idProduct=0537, bcdDevice= 0.01
[ 2626.146778] usb 1-5: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[ 2626.146783] usb 1-5: Product: ftDuino
[ 2626.146787] usb 1-5: Manufacturer: Till Harbaum
[ 2626.148896] cdc_acm 1-5:1.0: ttyACM0: USB ACM device
Und wenn sich das hektische Blinken nach dem gescheiterten Upload wieder beruhigt hat, kommt noch folgendes

Code: Alles auswählen

[ 2633.747992] usb 1-5: USB disconnect, device number 64
[ 2634.056418] usb 1-5: new full-speed USB device number 65 using xhci_hcd
[ 2634.208357] usb 1-5: New USB device found, idVendor=1c40, idProduct=0538, bcdDevice= 1.00
[ 2634.208364] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2634.208369] usb 1-5: Product: ftDuino
[ 2634.208373] usb 1-5: Manufacturer: Till Harbaum
[ 2634.210610] cdc_acm 1-5:1.0: ttyACM0: USB ACM device
Wenn ich arduino als root starte, sieht das genauso aus.
Hast Du vielleicht auch einen Tipp, wie ich herausfinden kann, welcher Prozess hier dazwischen funkt?
Ich bitte um Entschuldigung, dass wir hier ein Problem beheben wollen, das vielleicht nur in sehr seltenen Fällen auftritt.
Gruß
Esther

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ftduino: Zugriff nur als root

Beitrag von MasterOfGizmo » 07 Mär 2019, 19:44

Wenn der Prozess, der sich da einmischt (und auch das ist ja nur geraten) kurz das Gerät schnappt, dann wirst Du davon im Syslog nix finden. Es sei denn er meldet sich da freiwillig,

Du könntest direkt nach dem Anstecken des ftDuino mal ein

Code: Alles auswählen

lsof | grep /dev/ttyACM
probieren. Ggf. zeigt Dir das den Schuldigen an.

Hast Du denn irgendeinen Modemmanager laufen oder ähnlich?
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: ftduino: Zugriff nur als root

Beitrag von EstherM » 10 Mär 2019, 16:04

Hallo MoG,
leider bin ich noch keinen Schritt weiter.
Das von Dir angeratene lsof findet gar nichts passendes.
Einen Modemmanager nutze ich nicht, jedenfalls taucht keiner in ps aux auf.
Neuinstallation (d.h. löschen das bis jetzt genutzten Verzeichnisses und auspacken eines neuen Downloads) hat auch nicht geholfen.
Ich lasse das Problem jetzt offen, bis ich zufällig mal auf eine Lösung stoße.
Vielen Dank jedenfalls für Deine Vorschläge.
Viele Grüße
Esther

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ftduino: Zugriff nur als root

Beitrag von MasterOfGizmo » 12 Mär 2019, 08:54

Das gleiche Problem würdest Du m.E. auch mit einem Arduino-Leonardo haben. Da gibt es mehr Infos im Netz u.a. unter

https://forum.arduino.cc/index.php?topic=546746.0

Was für einen Desktop nimmst Du denn? KDE? Gnome? Das könnte einen Hinweis auf den Modemmanager bzw. ähnliche Prozesse geben, die an den seriellen Schnittstellen ihr Unwesen treiben.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: ftduino: Zugriff nur als root

Beitrag von EstherM » 09 Aug 2019, 19:11

Hallo MoG,
Jetzt habe ich nach langer Pause doch mal versucht, das Problem zu lösen; leider ohne Erfolg.
Immerhin habe ich jetzt herausgefunden, dass der ftduino sich beim Hochladen eines Skripts ab- und wieder anmeldet.
Auszug aus journalctl:

Code: Alles auswählen

Aug 09 19:02:10 rudolph kernel: usb 1-1: USB disconnect, device number 10
Aug 09 19:02:11 rudolph kernel: usb 1-1: new full-speed USB device number 11 using xhci_hcd
Aug 09 19:02:11 rudolph kernel: usb 1-1: New USB device found, idVendor=1c40, idProduct=0537, bcdDevice= 0.01
Aug 09 19:02:11 rudolph kernel: usb 1-1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
Aug 09 19:02:11 rudolph kernel: usb 1-1: Product: ftDuino
Aug 09 19:02:11 rudolph kernel: usb 1-1: Manufacturer: Till Harbaum
Aug 09 19:02:11 rudolph kernel: cdc_acm 1-1:1.0: ttyACM0: USB ACM device
Aug 09 19:02:18 rudolph kernel: usb 1-1: USB disconnect, device number 11
Aug 09 19:02:19 rudolph kernel: usb 1-1: new full-speed USB device number 12 using xhci_hcd
Aug 09 19:02:19 rudolph kernel: usb 1-1: New USB device found, idVendor=1c40, idProduct=0538, bcdDevice= 1.00
Aug 09 19:02:19 rudolph kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Aug 09 19:02:19 rudolph kernel: usb 1-1: Product: ftDuino
Aug 09 19:02:19 rudolph kernel: usb 1-1: Manufacturer: Till Harbaum
Aug 09 19:02:19 rudolph kernel: cdc_acm 1-1:1.0: ttyACM0: USB ACM device
Dummerweise ändern sich im Laufe dieses Vorgangs die Berechtigungen für /dev/ttyACM0:

Code: Alles auswählen

crw-rw-rw- 1 root dialout 166, 0 2019-08-09 18:17:14.254629498 +0200 /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 0 2019-08-09 18:17:14.254629498 +0200 /dev/ttyACM0
ls: Zugriff auf '/dev/ttyACM0' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf '/dev/ttyACM0' nicht möglich: Datei oder Verzeichnis nicht gefunden
crw------- 1 root root 166, 0 2019-08-09 18:19:28.859520841 +0200 /dev/ttyACM0
crw------- 1 root root 166, 0 2019-08-09 18:19:28.859520841 +0200 /dev/ttyACM0
crw------- 1 root root 166, 0 2019-08-09 18:19:28.859520841 +0200 /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 2019-08-09 18:19:29.419524550 +0200 /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 2019-08-09 18:19:29.419524550 +0200 /dev/ttyACM0
und dann nochmal:

Code: Alles auswählen

crw-rw---- 1 root dialout 166, 0 2019-08-09 18:19:29.419524550 +0200 /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 2019-08-09 18:19:29.419524550 +0200 /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 2019-08-09 18:19:29.419524550 +0200 /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 2019-08-09 18:19:29.419524550 +0200 /dev/ttyACM0
ls: Zugriff auf '/dev/ttyACM0' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf '/dev/ttyACM0' nicht möglich: Datei oder Verzeichnis nicht gefunden
crw------- 1 root root 166, 0 2019-08-09 18:19:36.919574215 +0200 /dev/ttyACM0
crw------- 1 root root 166, 0 2019-08-09 18:19:36.919574215 +0200 /dev/ttyACM0
crw------- 1 root root 166, 0 2019-08-09 18:19:36.919574215 +0200 /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 0 2019-08-09 18:19:37.511578133 +0200 /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 0 2019-08-09 18:19:37.511578133 +0200 /dev/ttyACM0
Irgendwelche anderen Prozesse scheinen da nicht dazwischen zu funken: den ModemManager habe ich deinstalliert, und mtp-probe konnte ich mit einer eigenen udev-Regel abbestellen.
Wenn in einem kritischen kurzen Moment nur root auf die Schnittstelle zugreifen darf, und der Uploader gerade dann versucht zu schreiben, dann nutzen auch alle Gruppenzugehörigkeiten und udev-Regeln nichts.
Die sind die ganze Zeit schon so, wie in der Installationsanleitung angegeben.
Irgendwas ist da anders als in anderen Systemen, ich weiß aber nicht was.
MasterOfGizmo hat geschrieben: Was für einen Desktop nimmst Du denn? KDE? Gnome? Das könnte einen Hinweis auf den Modemmanager bzw. ähnliche Prozesse geben, die an den seriellen Schnittstellen ihr Unwesen treiben.
Ich nehme auf diesem Rechner KDE, das System ist ein OpenSuse Tumbleweed.
Vielleicht hat ja noch jemand eine Idee.
Gruß
Esther

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ftduino: Zugriff nur als root

Beitrag von MasterOfGizmo » 10 Aug 2019, 22:42

Dass der ftDuino sich beim Upload einmal ab- und wieder anmeldet ist normal. Die IDE löst am ftDuino einen Reset aus und der führt zum ab- und anmelden. Die Frage ist dann, warum es bei Deinem PC recht lange dauert, bis die Rechte korrekt eingestellt sind.

Das Problem dürften andere Arduino-Leonardo-User dann auch haben.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: ftduino: Zugriff nur als root

Beitrag von EstherM » 11 Aug 2019, 18:32

Hallo MoG
Im Netz findet sich auch noch eine andere Anfrage eines Tumbleweed+Leonardo-Users. Eine Lösung für das Problem hat er leider auch nicht.
Vielleicht findet sich ja doch noch durch Zufall eine Lösung. Bis dahin brauche ich eben Root-Rechte für den ftduino.
Gruß
Esther

Antworten