Hallo Leute
Ich hoffe ihr könnt mir helfen.
Ich versuche momentan die Arduino IDE auf Linux Mint zum laufen zu
bringen.
Wenn ich versuche mein Sketch zu übertragen mit meinem normalen Nutzer
bekomm ich diesen Fehler:
1
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
Diesen Fehler bekomm iuch wenn ich root rechte nutze:
1
avrdude: ser_open(): can't set attributes for device "/dev/ttyACM0": Inappropriate ioctl for device
2
ioctl("TIOCMGET"): Bad file descriptor
Ich habe meinen nutzer der Gruppe dialout hinzugefügt, dies hat aber
nicht den erwünscht Effekt gehabt. Zudem scheint mir Folgene Zeile etwas
merkwürdig
Während ich nach Lösungen gesucht habe sieht man eben diesen Zeile
ziemlich häufig nur dass bei mir zweimal root steht und nicht root
dialout, wie bei all denen ich das zuvor gesehen habe.
Hoffe ihr könnt mir helfen.
Vielen Dank für eure Bemühungen
Pietus3
Jan M. schrieb:> Ich habe meinen nutzer der Gruppe dialout hinzugefügt, dies hat aber> nicht den erwünscht Effekt gehabt.
Für ein normales serielles Gerät sollte es den gewünschten Effekt
haben.
> Zudem scheint mir Folgene Zeile etwas> merkwürdig
Ist sie in der Tat.
> Während ich nach Lösungen gesucht habe sieht man eben diesen Zeile> ziemlich häufig nur dass bei mir zweimal root steht und nicht root> dialout, wie bei all denen ich das zuvor gesehen habe.
Das liegt daran, dass die Permissions eines Symlinks Schall und
Rauch sind: nur die Permissions des Link-Ziels sind für die
Beurteilung der Zugriffsrechte relevant.
Aber dennoch ist es natürlich Unfug, dass das jemand auf loop0
verlinkt hat, und der ioctl-Fehler ist dann folgerichtig.
noreply@noreply.com schrieb:> Was ist loop0?
Irgendein Block-Gerätetreiber. Hat zwar eine wunderhübsche
Kurzgeschichte über die Versionen und ihre Editierungen im Kopf
der Implementierungsdatei stehen, aber kein Sterbenswörtchen, wofür
er denn eigentlich gut wäre – und eine man page gibt's natürlich
auch nicht.
Harry L. schrieb:> Die Serielle dürfte eher auf /dev/ttyUSB0 liegen.
It depends. Treiber wie FTDI legen ttyUSB* an, während der USB
CDC-Treiber ttyACM* anlegt (automatic calling machine).
Jan M. schrieb:> Hab ich die ausversehen die ganzen ACMs gebindet ?
Ge-was-t?
Was hast du denn überhaupt als Hardware da dran? Insbesondere, was
ist auf dieser Hardware genau als Kommunikationsschnittstelle verbaut?
Jörg W. schrieb:> und eine man page gibt's natürlich> auch nicht.
Bei mir schon, man loop.
Um dem System eine Datei als Blockdevice vorzugaukeln, z.B. um Image
Dateien zu mounten.
Aber warum zeigt ACM0 darauf ?
Oppa schrieb:> Jörg W. schrieb:>> und eine man page gibt's natürlich>> auch nicht.>> Bei mir schon, man loop.
Dann hat offenbar mittlerweile jemand eine geschrieben, das ist ja
schon mal positiv.
(Der Wikipedia-Artikel gaukelt vor, dass die Bezeichnung „loop“
dafür universelle Übereinkunft wäre … Unter FreeBSD ist dafür der
memory-disk-Treiber zuständig, und diese Funktionalität ist nur
eine seiner möglichen Varianten.)
> Aber warum zeigt ACM0 darauf ?
Ja, das ist wohl das, was hier die große Verwunderung produziert.
Das kann der TE aber nur selbst rausfinden.
Jan M. schrieb:> Einen Arduino Uno.
Bitte Teil zwei der Frage auch beantworten. Ich mag jetzt ungern
für dich raussuchen, ob da nun ein FTDI drauf ist oder ein
USB-AVR oder was auch immer.
Jörg W. schrieb:> noreply@noreply.com schrieb:>> Was ist loop0?>> Irgendein Block-Gerätetreiber. Hat zwar eine wunderhübsche> Kurzgeschichte über die Versionen und ihre Editierungen im Kopf> der Implementierungsdatei stehen, aber kein Sterbenswörtchen, wofür> er denn eigentlich gut wäre – und eine man page gibt's natürlich> auch nicht.>
Das ist die optimistische Version. In der pessimistischen Version wurde
ein Kommando irgendwo gekupfert, um ein /dev/ttyACM0 als Device zu
haben, an das avrdude senden kann.
Lösche mal spaßeshalber den ACM0, ist eh nicht richtig so. Dann nochmal
neu starten - den Arduino einstöpseln und dann die Arduino IDE.
Was sagt denn lsusb wenn der Arduino verbunden ist ?
Oppa schrieb:> Ich meine der UNO war noch FTDI, ich gucke mal ob ich meinen schnell> finde.
Hast schon recht: ein lsusb würde auch genügen, und der Tipp, den
Symlink mal zu löschen und das Gerät neu zu stöpseln, ist auch nicht
so verkehrt. Ich hätte ja gedacht, dass das udev-Framework das selbst
tut, scheint aber nicht der Fall zu sein.
Jan M. schrieb:> Es ist FTDI bei mir.
Dann muss es aber /dev/ttyUSB<n> heißen, mit <n> als bei 0 beginnender
Zählung für die Anzahl der entsprechenden Geräte im System.
ttyACM<n> wird nur für CDC (Communication Device Class) benutzt.
Jörg W. schrieb:> noreply@noreply.com schrieb:>> Das ist die optimistische Version.>> Nö, /dev/loop0 gibt's auch sonst auf Linuxen, das ist schon ganz> real.
Ich habe nur /dev/loop-control. ;-)
Für /dev/loop0 muß der root schon gearbeitet haben.
Jörg W. schrieb:> dass das udev-Framework das selbst> tut, scheint aber nicht der Fall zu sein.
Aha, meiner ist Rev3.
Tja, tut udev überhaupt noch. Hat das nicht inzwischen auch Systemd in
den Händen ?
Oppa schrieb:> Ich meine der UNO war noch FTDI,
Uno R1 hat einen 8U2
R3 einen 16U2
China UNOs öfter mal einen CH340
Andere, z.B. mit FTDI sind mir noch nicht unter gekommen.
Mag es aber geben....
Arduino F. schrieb:> Oppa schrieb:>> Ich meine der UNO war noch FTDI,>> Uno R1 hat einen 8U2> R3 einen 16U2
Dann dürfte es wohl in der Tat ein /dev/ttyACM0 sein.
Wie schon gesagt, lsusb könnte da etwas Klarheit bringen, und auch
der Blick nach /var/log/syslog (direkt nach dem Anstöpseln), denn
dort sollte sowas stehen wie:
1
Aug 12 17:13:08 mani kernel: [3640226.651862] cdc_acm 2-1.6.1.3:1.1: ttyACM0: USB ACM device
oder halt beim FTDI:
1
Aug 12 17:21:26 mani kernel: [3640725.021049] usb 2-1.6.7.3: FTDI USB Serial Device converter now attached to ttyUSB0
Also erstmal vielen Dank an alle. Nun funktioniert es.
Sollte ich sämtliche ttyACM* löschen? Um die Verknüpfungen zu löschen ?
Und kann mir jmd Tipps geben, wo ich über solche Themen mehr nachlesen
kann um zu lernen.
Pietus3
Jan M. schrieb:> Dieses Verzeichnis wird nicht gefunden
Yep, schöne Grüße von Systemd. plain text logfiles sind soo 90er :)
>Und kann mir jmd Tipps geben, wo ich über solche Themen mehr nachlesen>kann um zu lernen.http://openbook.rheinwerk-verlag.de/linux/
Wird Dich aber ein paar Jahre beschäftigen :) Zu udev bin auch über den
Arduino gekommen.
Jan M. schrieb:> Also erstmal vielen Dank an alle. Nun funktioniert es.
Schön.
> Sollte ich sämtliche ttyACM* löschen? Um die Verknüpfungen zu löschen ?
Wenn es ähnlich sinnloser Kram ist, ja.
Ein korrektes /dev/ttyACM* sieht irgendwie so aus:
1
crw-rw---- 1 root dialout 166, 0 Aug 12 17:13 /dev/ttyACM0
Die major number (166) könnte sich ggf. unterscheiden, sollte aber
für alle /dev/ttyACM* die gleiche sein. Die minor number (direkt
dahinter) sollte mit der Ziffer nach /dev/ttyACM übereinstimmen.
> Und kann mir jmd Tipps geben, wo ich über solche Themen mehr nachlesen> kann um zu lernen.
In Internetforen. :-)
Im Ernst: es gibt Dinge, die lernt man beim Betrieb eines Systems
nebenbei (so wie du gerade), danach merkt man sie sich einfach.
Jan M. schrieb:>> tail -f /var/log/messages>> Dieses Verzeichnis wird nicht gefunden
Weil es, wie ich oben schon schrieb, bei vielen Linux-Distributionen
heute lieber als /var/log/syslog angelegt wird. Ist halt eine Frage
der Konvention, dieser Name ist nicht in Stein gemeißelt, sondern
wird in der Konfiguration des syslog-Dämons festgelegt.
Oppa schrieb:> Hmm, so langsam vermisse ich das edit.
Musst du dich halt anmelden und angemeldet posten. Dann kannst du,
solange es noch keine Folgebeiträge gibt, deine eigenen Beiträge
editieren.
Jan M. schrieb:> noreply@noreply.com schrieb:>> tail -f /var/log/messages>> Dieses Verzeichnis wird nicht gefunden
Debian kennt /var/log/messages. Könnte eine Eigenheit von Linux Mint
17.3 sein oder ich werde zu alt.
Loggings stehen in /var/log. /var/log/syslog habe ich auch. Stehen
ähnliche Dinge drin. Im Prinzip plaudert der Kernel munter über Geräte,
die an USB angeschlossen werden. Das nimmt man zum Fehlersuchen.
Aber jetzt geht es ja.
Ja. Nur nachdem ich den Arduino einmal entferne und wieder anschließe
ist wieder /dev/ttyACM0 wird mit loop verknüpft und muss dies erst
wieder löschen. Das ist doch so nicht richtig oder?
Jan M. schrieb:> Das ist doch so nicht richtig oder?
Ist es in der Tat nicht.
Dann wirst du dir wohl oder übel mal ansehen müssen, wer da den
udev-Dämon so verhunzt konfiguriert hat, dass er so einen Müll macht.
Die Konfigurationsdaten dafür liegen normalerweise in /etc/udev/rules.d/
noreply@noreply.com schrieb:> Debian kennt /var/log/messages. Könnte eine Eigenheit von Linux Mint> 17.3 sein oder ich werde zu alt.
Nee, nur Dein Debian. Gibt es hier auch nicht. siduction = Debian sid
Jan M. schrieb:> So danke. Dass ist auch jz gelöst. Vielen Dank noch einmal.
Und wer war nun der Übeltäter ? Wo kam der eigenartige link auf
/dev/loop her ?
Oppa schrieb:> noreply@noreply.com schrieb:>> Debian kennt /var/log/messages. Könnte eine Eigenheit von Linux Mint>> 17.3 sein oder ich werde zu alt.>> Nee, nur Dein Debian. Gibt es hier auch nicht. siduction = Debian sid
Danke. Ich bin bei stretch (testing). Vielleicht hat sich die Testcrew
ja was gegönnt. ;-) Hatte vorher aber auch squeeze, wheezy und jessie
und mir ist nie etwas aufgefallen.
Seit es systemd gibt ist journalctl dein freund.
/var/log/messages gibt es nicht mehr.
Bei aktuellen Systemen (hier Arch Linux, Kernel 4.7) steht das alles
unter
/var/log/journal/<kryptischer random name>/<genauso kryptischer
dateiname>, anzusehen mit journalctl.
Als Beispiel:
1
journalctl | tail -n 20
Ihr solltet einen Filter mittels grep, tail oder was auch immer
anwenden, denn journalctl gibt ohne weiteres erstmal alles aus, was seit
dem allerersten starten des systems so gelogt wurde. Das fängt bei
diesem PC hier beim 24.4.2016 um 18:34:24 Uhr an.
1
-- Logs begin at So 2016-04-24 18:34:24 CEST, end at Fr 2016-08-12 21:34:55 CEST. --
Und das ist schon ungefähr solange so, solange es systemd gibt ;)
Also ja, der ein oder andere hier wird einfach alt :P
(Ob systemd toll ist oder nicht, ist eine andere frage!)
Kaj schrieb:> Und das ist schon ungefähr solange so, solange es systemd gibt ;)> Also ja, der ein oder andere hier wird einfach alt :P>> (Ob systemd toll ist oder nicht, ist eine andere frage!)
Yeah. Wird Zeit, das ihr meine Pension verdient. ;-)
Durch den Thread bin ich darauf aufmerksam geworden. Ein Haufen ewig
Gestriger. :-)
https://devuan.org/
Oppa schrieb:> Und wer war nun der Übeltäter ? Wo kam der eigenartige link auf> /dev/loop her ?
Ich bin mir nicht sicher. Ich hatte eine Rule selbst erstellt, wie sie
auf der offiziellen Arduino Seite steht. Aber da Bestand schon die
Verknüpfung. Habe diese unnötige Rule trotzdem gelöscht. Zudem habe ich
sämtliche /ttyACM* gelöscht und gerebootet seit dem läuft es :)