Forum: PC Hard- und Software Diamex Programmer (Prog-S2) unter Manjaro-Linux + avrdude: Seltsame Verbindung..


von Flyffi (Gast)


Lesenswert?

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:
1
 sudo avrdude -c stk500 -p t85 -P /dev/ttyACM0 -t -v
versucht. Avrdude antwortet mit:
1
 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.

von Thorsten S. (thosch)


Lesenswert?

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.

von Andreas B. (bitverdreher)


Lesenswert?

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.

: Bearbeitet durch User
von Le X. (lex_91)


Lesenswert?

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?

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

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.

von Le X. (lex_91)


Lesenswert?

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.

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

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.

von Andreas B. (bitverdreher)


Lesenswert?

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.

von Flyffi (Gast)


Lesenswert?

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..

von Flyffi (Gast)


Lesenswert?

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..

von Flyffi (Gast)


Lesenswert?

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.

von Andreas B. (bitverdreher)


Lesenswert?

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?

von Thorsten S. (thosch)


Lesenswert?

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.

von Stif (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Flyffi (Gast)


Lesenswert?

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
1
sudo avrdude -c stk500 -p t85 -P /dev/ttyACM0 -t -v
bei dir auch
1
avrdude: stk500v2_command(): command failed
2
avrdude: stk500v2_getparm(): failed to get parameter 0x9a
ausspuckt?
Ich erwarte zwar keine Wunder, aber man weiß ja nie..

Manjaro ftw!

von Stif (Gast)


Lesenswert?

Hallo  Flyffi,

Ja neben ganz viel anderem Text kommen auch diese 2 Zeilen bei bei 
meiner Ausgabe vor:
1
avrdude -c stk500 -p t85 -P /dev/ttyACM0 -t -v 
2
3
avrdude: Version 6.3, compiled on Jul  7 2020 at 19:38:43
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
         Copyright (c) 2007-2014 Joerg Wunsch
6
7
         System wide configuration file is "/etc/avrdude.conf"
8
         User configuration file is "/home/stif/.avrduderc"
9
         User configuration file does not exist or is not a regular file, skipping
10
11
         Using Port                    : /dev/ttyACM0
12
         Using Programmer              : stk500
13
         AVR Part                      : ATtiny85
14
         Chip Erase delay              : 4500 us
15
         PAGEL                         : P00
16
         BS2                           : P00
17
         RESET disposition             : possible i/o
18
         RETRY pulse                   : SCK
19
         serial program mode           : yes
20
         parallel program mode         : yes
21
         Timeout                       : 200
22
         StabDelay                     : 100
23
         CmdexeDelay                   : 25
24
         SyncLoops                     : 32
25
         ByteDelay                     : 0
26
         PollIndex                     : 3
27
         PollValue                     : 0x53
28
         Memory Detail                 :
29
30
                                  Block Poll               Page                       Polled
31
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
32
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
33
           eeprom        65     6     4    0 no        512    4      0  4000  4500 0xff 0xff
34
           flash         65     6    32    0 yes      8192   64    128  4500  4500 0xff 0xff
35
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
36
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
37
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
38
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
39
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
40
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
41
42
         Programmer Type : STK500V2
43
         Description     : Atmel STK500
44
         Programmer Model: STK500
45
         Hardware Version: 10
46
         Firmware Version Master : 2.10
47
avrdude: stk500v2_command(): command failed
48
avrdude: stk500v2_getparm(): failed to get parameter 0x9a
49
         Topcard         : Unknown
50
         Vtarget         : 3.3 V
51
         SCK period      : 8.7 us
52
         Varef           : 3.3 V
53
         Oscillator      : Off
54
55
avrdude: AVR device initialized and ready to accept instructions
56
57
Reading | ################################################## | 100% 0.00s
58
59
avrdude: Device signature = 0x1e930b (probably t85)
60
avrdude: safemode: hfuse reads as DF
61
avrdude: safemode: efuse reads as FF
62
avrdude> quit
63
>>> quit 
64
65
avrdude: safemode: hfuse reads as DF
66
avrdude: safemode: efuse reads as FF
67
avrdude: safemode: Fuses OK (E:FF, H:DF, L:62)
68
69
avrdude done.  Thank you.

LG,
Stif

von Jim K. (jim-knopf)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.