Guten Morgen erstmal!
Ich hoffe, dies ist das richtige Unterforum dafür:
Ich habe mir einen Diamex Prog-S2 zugelegt und wollte damit meine AVRs
ansteuern. Stellt sich raus, das ist unter Manjaro-Linux gar nicht so
einfach.
tl;dr:
Unter Windows leuchtet die grüne Betriebs-LED durchgehend (und avrdude
meckert (fast) nicht), unter Manjaro nur einige Sekunden nach
Einstecken.
Aber "lsusb" erkennt ihn noch danach und auch "/dev/ttyACM0" bleibt
vorhanden. Nur avrdude meckert dann.
Habs mit:
avrdude: ser_open(): can't open device "/dev/ttyACM0": Input/output error
Jetzt das seltsame Verhalten:
Führt man den Befehl schnell genug nochmal aus (solange die grüne LED
leuchtet), scheint es zumindest auf den ersten Blick zu gehen. Man
erhält Rückmeldung über den angeschlossenen µC (Typ, Fuses etc).
Nur will man dan mittels "quit" raus aus avrdude, wird wieder mehrmals
gemeckert:
1
avrdude: stk500v2_ReceiveMessage(): timeout
Unter den Umständen versuche ich lieber erst gar nicht zu flashen..
Btw. zwischendurch wird auch gemeckert (auch unter Windows):
1
avrdude: stk500v2_command(): command failed
2
avrdude: stk500v2_getparm(): failed to get parameter 0x9a
Ich weiß aber nicht wie tragisch das ist, geschweige denn, was das
bedeuten soll.
Habe Aber die Vermutung, es liegt am Programmer.
Weiß da jemand mehr? Kann man jemand mit einem anderen Programmer
testen, ob diese Fehler auch auftreten?
Hat hier zufällig jemand Erfahrung mit Manjaro und kann mir sagen, warum
die grüne LED aufhört zu leuchten und wie man das verhindern kann?
Und hat zufällig jemand auch diesen Programmer unter einem anderen Linux
zum Laufen bekommen?
PS.: Ich bin relativ neu bei Manjaro und Linux und weiß darum nicht so
wirklich, was genau ich warum hier tun sollte..
Danke schon mal für jede Hilfe.
Könnte es sein, daß du aggressive Energiespar-Optionen für den USB
Controller aktiv hast?
Ich kenne mich zwar nicht mit Linux aus, aber kenne so ähnliche Effekte
auch unter Windows, dort nennt sich die Option für USB "selektives
Energiesparen".
Gibt z.B. Streß mit meinen astronomischen Kameras, die spontan die
Funktion einstellen, wenn besagte Option nicht deaktiviert wurde.
Was sagt denn lsusb, wenn der Programmer dran hängt?
Dann auch mal in die /var/log/syslog schauen, was er während dieser Zeit
macht.
Ah, ja, Tip: Eine Konsole öffnen und
tail -f var/log/syslog
dann kann man immer schauen was sich gerade tut.
Flyffi schrieb:> Ich weiß aber nicht wie tragisch das ist, geschweige denn, was das> bedeuten soll.> Habe Aber die Vermutung, es liegt am Programmer.
Wohl eher nicht wenn er unter Windows tut was er soll.
Den von dir verwendeten Programmer kenne ich nicht.
Allerdings ist die Unterstützung dieser alten Dinger unter Linux nicht
wirklich toll.
Ich hatte damals ähnliche Probleme mit einem AVR Dragon.
Flashen per avrdude ging zwar zuverlässig, das Debuggen unter
gdb/avarice hat aber auch ständig abgebrochen.
Jörg W. hat mir hier im Forum mal ausführlich erklärt woran das liegt,
es gibt dafür ganz konkrete Gründe in der USB-Implementierung von
avrdude/avarice.
Aber letzendlich bringt dich das auch nicht weiter.
Wenn es nicht geht dann geht es nicht.
Wenn du nur Flashen möchtest könnte man evtl. über eine Windows-VM
nachdenken, den USB-Port kannst du 1:1 durchreichen.
Hast du denn irgendwelche Quellen/Erfahrungsberichte die belegen dass
das was du vorhast unter Linux grundsätzlich läuft?
Le X. schrieb:> Wenn du nur Flashen möchtest könnte man evtl. über eine Windows-VM> nachdenken, den USB-Port kannst du 1:1 durchreichen.
Dazu Win? Never. Da kauft man sich für 2-3€ in der Bucht einen usbasp
clone. Z.B. die mit schickem Alu-Gehäuse.
Le X. schrieb:> Hast du denn irgendwelche Quellen/Erfahrungsberichte die belegen dass> das was du vorhast unter Linux grundsätzlich läuft?
Außer AVRStudio wüßte ich jetzt nicht was unter Linux nicht läuft.
Dagegen wüßte ich jetzt vieles was unter Win nicht läuft. Zum
Programmieren ist Linux schon richtig.
Andreas B. schrieb:> Außer AVRStudio wüßte ich jetzt nicht was unter Linux nicht läuft.> Dagegen wüßte ich jetzt vieles was unter Win nicht läuft. Zum> Programmieren ist Linux schon richtig.
Kind,
wir wissen alle dass Linux ganz toll ist und Windows ganz schlimm
furchtbar.
Deswegen verwende ich auch selber zuhause nur Linux.
Es ist aber ein Fakt™ dass Debuggen mittels AVR-Dragon/avarice unter
Linux nicht zuverlässig klappt.
Jörg W., seines Zeichens Entwickler im Atmel-Tooling, hat dies bestätigt
und auch dargelegt warum das so ist, es geht auf die Art und Weise
zurück wie der USB-Port angesprochen wird.
Evtl. such ich den Beitrag mal raus.
Der Gedankengang liegt deshalb nahe dass es beim hier verwendeten
Programmer ähnliche Komplikationen geben könnte, findest du nicht?
Deswegen würde ich persönlich erstmal herausfinden wollen, ob das vom TE
erdachte Setup überhaupt irgendwo bei irgendwem schon mal stabil
gelaufen ist.
Und jetzt atme mal ruhig durch und lass die Emotionen abklingen.
Wenn du es vorziehst weiterhin die Vorzüge von Linux gegenüber Win (nach
denen der TO garnicht gefragt hat) zu erörtern, es steht ein Thread zu
diesem Thema zur Verfügung.
Le X. schrieb:> Und jetzt atme mal ruhig durch und lass die Emotionen abklingen.> Wenn du es vorziehst weiterhin die Vorzüge von Linux gegenüber Win (nach> denen der TO garnicht gefragt hat) zu erörtern, es steht ein Thread zu> diesem Thema zur Verfügung.
Zur Erinnerung: Der TO nutzt Linux. Das hat mit Emotionen erst mal
nichts zu tun.
Le X. schrieb:> Und jetzt atme mal ruhig durch und lass die Emotionen abklingen.> Wenn du es vorziehst weiterhin die Vorzüge von Linux gegenüber Win (nach> denen der TO garnicht gefragt hat) zu erörtern, es steht ein Thread zu> diesem Thema zur Verfügung.
Zur Erinnerung: Der TO nutzt Linux. Das hat mit Emotionen erst mal
nichts zu tun.
Le X. schrieb:> Der Gedankengang liegt deshalb nahe dass es beim hier verwendeten> Programmer ähnliche Komplikationen geben könnte, findest du nicht?
Du schlugst Windows vor, wenn er nur flashen will.
Hallo,
hat etwas gedauert, aber ich habe jetzt mal kurz rumgetestet.
Energiesparoptionen habe ich (noch) nicht gefunden, was aber nicht
heißen muss, dass es keine gibt. Allerdings wird in den Logs schon auf
was anderes hingewiesen..
lsusb meint:
1
Bus 002 Device 012: ID 16c0:2aa9 Van Ooijen Technische Informatica PROG-S2
..Erstmal die System-Logs finden.. KsystemLog sagt mir, nachdem der
Programmer erstmal erkannt wird:
1
mtp-probe bus: 2, device: 12 was not an MTP device
2
3
ModemManager <info> [base-manager] couldn't check support for device '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8': not supported by any plugin
Deaktiviere ich den ModemManager verschwindet leider nur sein
Log-Eintrag. Hilft dem Programmer auch nicht.
Hat jemand denn zufällig einen Programmer rumliegen und kann mal gucken,
ob avrdude dabei auch zwischendurch meckert? Das passiert bei mir, wie
gesagt, bei Windows und Manjaro.
Ich will nachher mal andere Linux-Distributionen (live) testen. Habe
aber im Moment keine Zeit..
Ich sammele mal alles was mir einfällt..
Muss man evtl irgenwo irgendwelche Regeln hinzufügen, oder entfernen?
Also auch für einen usb-Stick gilt:
1
mtp-probe bus: 2, device: 14 was not an MTP device
Aber dessen LED leuchtet und er funktioniert auch.
Nutzt jemand zufällig auch Manjaro (mit KDE) und kann mir sagen wo sich
die Log-Dateien verstecken? KSystemLog loggt zwar fleißig, aber, selbst
in den Einstellungen wird angemerkt, dass die Logdateien fehlen. Ka, wie
das zusammen passt..
Ich würde gerne bei Manjaro bleiben..
Jup, es geht endlich! Danke thosch!
Hat unter anderen Linuxen funktioniert, also mussten es wohl die
Energiesparoptionen sein.. Also nochmal tiefer gegraben und fündig
geworden.
Schön. Das mit dem Modemmanager und der MTP Meldung kannst Du
ignorieren. Der Modemmanager versucht, hinter jeder seriellen
Schnittstelle ein Modem zu finden. Und MTP sucht für jeden Speicher ein
MTP Device. Beides trifft ja hier nicht zu.
Mal interessehalber: Was für USB Spareinstellungen hast Du wo gefunden?
Flyffi schrieb:> Jup, es geht endlich! Danke thosch!
Hey, das freut mich, daß ich einen Denkanstoß zur Lösung liefern konnte.
Diese Energiesparmodi müssen wohl sowohl vom USB-Gerät als auch von
dessen Treiber unterstützt werden. Und manche Hersteller implementieren
das wegen des erforderlichen Aufwandes, ohne einen Beitrag zur
eigentlichen Geräte-Funktionalität, gar nicht erst.
Vielen Dank für den Tipp mit den Energiespar-Modies. Verwende auch den
Prog-S2 Programmer und Manjaro (allerdings mit Gnome) und hatte auch
dasselbe Problem..
Die Einstellungen für die Energieeinsparungen können übrigens (zumindest
bei mir) über das Programm TLPUI angepasst werden. Habe die Programmer
USB-ID in die Autosuspend-Blacklist eingetragen und seitdem funktioniert
es wieder!
Schön zu sehen, dass der Thread hier Früchte trägt.
In den normalen Energieoptionen war nichts zu finden, darum (und weil
ich gerne GUI nutze und auch dazu stehe!) hatte ich ebenfalls die
tlp-Datei mit TLPUI geändert und den Blacklist-Eintrag hinzugefügt.
Ich kann nur sagen, dass ich von Manjaro(+Kde) richtig angetan bin! Ein
rolling-release-OS, dass das ganze System, samt Programmen,
verlässlich up-to-date hält, ist schon was Feines..
..Ist zwar kein Problem, es gerade nachzuinstallieren, aber TLPUI hätte
auch gleich mit dabei sein können, damit man es in der Startmenü-Suche
nach Energieoptionen direkt finden kann..
Stif, da du ja auch einen Prog-S2 hast, falls du das noch liest, kannst
du evtl mal gucken, ob
Hallo,
ich hatte das gleiche Problem mit dem Diamex Prog-S2 beim programmieren
eines atmega2560 (für den ChipTesterPro von 8bit-museum.de). Unter
Windows konnte ich den Programmer mit avrdude nutzen, unter (Arch) Linux
wurde er zwar erkannt mit lsusb und als /dev/ttyACM0, wollte aber den
Programmiervorgang nicht starten oder überhaupt als /dev/ttyACM0
funktionieren. Ich hatte auch die oben geschilderte Fehlermeldung.
Ich betreibe den Diamex Prog-S2 an einem Asus ROG G752VS Notebook. Mit
der USB-Schnittstelle habe ich häufiger Probleme.
Als erstes habe ich es mit den oben genannten tlp Einstellungen
probiert. Allerdings ist bei meiner Arch-Variante (bbqlinux) nicht so
eine schicke GUI verfügbar. Bisher habe ich tlp nicht genutzt. Ich habe
/etc/tlp.conf händisch angepasst indem ich folgende Änderungen
vorgenommen habe:
# Set to 0 to disable, 1 to enable TLP.
# Default: 1
# TLP_ENABLE=0
auskommentiert auf
TLP_ENABLE=0
#USB_BLACKLIST="1111:2222 3333:4444"
auskommentiert auf
USB_BLACKLIST="16c0:2aa9"
Anschließend habe ich das ganze mit tlp start angestoßen. Sofort leutete
die grüne LED am Diamex dauerhaft und alles funktionierte.
Allerdings hatte ich tlp vorher nicht genutzt und wollte es auch
weiterhin nicht einsetzen. Es gibt noch eine andere Methode die ohne tlp
auskommt.
Man erzeugt eine neue udev rule in /etc/udev/rules.d und fügt dort die
Gerätedaten aus lsusb und /dev/ttyACM0 ein und, wichtig! ergänzt dies
mit der (mir bis dahin unbekannten) Funktion ATTRS{power/control}=="on".
Meine udev rule sieht folgendermaßen aus:
cat 59-diamex.rules
# Diamex Prog-S2 rule um powersaving zu verhindern
SUBSYSTEM=="tty", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="2aa9",
ATTRS{power/control}=="on" GROUP="adbusers", MODE="0666",
SYMLINK+="diamex"
# reload rules with "udevadm control --reload-rules"
Dann wir im Kommentar in meiner rule mit "udevadm control
--reload-rules" die rules neu einlesen.
Danach funktionierte mein Diamex auch ohne tlp zu aktivieren.
Ggf. müssen für SUBSYSTEM=="tty" und GROUP=="adbusers" bei euch andere
Werte stehen.