Moin moin,
ich bin gerade dabei mir wieder eine Entwicklungsumgebung auf meinem
Notebook unter Debian Wheezy einzurichten, dazu gehört dann auch der
Programmieradapter USBprog von Bendikt Sauter.
Leider gibt es hier jetzt einige Problem, mit dem Adapter und AvrDude
lässt sich leider kein ATMega Programmieren. Der Adapter wird nicht
erkannt. Ich verwende die Werkzeuge aus dem Wheezy Repo. und habe mir
die Tools nicht selber compiliert.
avrdude -c avrisp2 -p m32 -P usb
Diese Zeile meldet mir, dass er nicht auf das Gerät USB zugreifen kann.
Unter lspci bekomme ich aber dem MKII Clone angezeigt. Ich habe dann
auch mal UDEV angepasst und eine Verlinkung der Gerätedatei avr zum
erkannten USB-Gerät hergestellt und damit /dev/avr als Gerätedatei für
avrdude angegeben, klappt aber leider auch nicht.
Ich kann auch unter Linux nicht mehr die Firmware ändern. Sobald der
Adapter in den Programmiermodus umschaltet, wird er nicht mehr erkannt.
Das lässt sich auch schön in den Logdateien nachlesen, es wird hier ein
neues USB-Gerät angemeldet, das UDEV nicht kennt.
Ein weiterer Test unter Debian Lenny ist positiv. Hier kann der AVR
beschrieben und gelesen werden. Auch der Wechsel der Firmware
funktioniert. Auch unter Windows 7 (64bit) kann ich nach einigen
Verrenkungen die Firmware tauschen, AVRdude habe ich hier nicht
getestet.
Was mich ziemlich betrüblich stimmt, ist die Tatsache, dass leider auch
die LiveCD von USBprog nicht funktioniert. Hier habe ich die gleichen
Probleme wie unter Wheezy. Dabei ist die diese CD von 2011 und basiert
auf SuSE. Im Grunde ist das aber auch egal, da weder Lenny noch eine
Live CD eine dauerhafte Lösung für mich sind.
Das sieht mir nach einem schwerwiegenden Problem mit libUSB aus. Hat
jemand das Teil unter Wheezy am laufen oder übersehe ich irgendwas
wichtiges?
MfG
Marek
Die libusb ist eigentlich eine ganz primitive Library, an der wird es
sehr warscheinlich nicht liegen.
Manchmal helfen ganz primitive Sachen: Schon ein anderes USB Kabel oder
einen anderen Port am PC versucht?
> Ich habe dann auch mal UDEV angepasst und eine Verlinkung der Gerätedatei> avr zum erkannten USB-Gerät hergestellt und damit /dev/avr als> Gerätedatei für avrdude angegeben, klappt aber leider auch nicht.
..hast Du bei der Gelegenheit auch gleich die Rechte adäquat gesetzt
(und überprüft dass selbiges funktioniert)? Testweise kannst Du avrdude
mal als root ausführen.
Marek Walther schrieb:> Leider gibt es hier jetzt einige Problem, mit dem Adapter und AvrDude> lässt sich leider kein ATMega Programmieren. Der Adapter wird nicht> erkannt.>> avrdude -c avrisp2 -p m32 -P usb>> Diese Zeile meldet mir, dass er nicht auf das Gerät USB zugreifen kann.
Was denn nun? Wird nicht erkannt oder kann nicht zugreifen? Vielleicht
einfach nur ein Rechteproblem? Geht es als root?
> Unter lspci bekomme ich aber dem MKII Clone angezeigt.
Du meinst wohl lsusb? Wenn das Gerät da auftaucht, dann wird es erkannt.
> Ich habe dann auch mal UDEV angepasst
Und das heißt?
Das am weitesten verbreitete Problem unter Linux mit pluggable devices
ist die Rechtevergabe. Per Default werden die Geräte nicht für jedermann
freigegeben. Ist halt ein richtiges Multiuser-Betriebssystem.
Auf meinen Systemen gibt es eine Gruppe "plugdev", der ich angehöre. Die
udev-Rules für meine diversen Programmieradapter sehen dann so aus:
(Beispiel für usbasp, muß alles in eine Zeile)
Geräte, die ihre Produkt-id ändern, brauchen dann mehrere Einträge. Kann
man alles in ein File unterhalb /etc/udev/rules.d packen (oder wo das
bei Wheezy liegt).
XL
Moin moin,
erst einmal danke für die vielen Antworten, leider noch ohne Erfolg.
Daher hier noch mal ein paar weiter Infos. Alle diese Arbeiten hatte ich
schon gestern durchgeführt.
Grundsätzlich habe ich alle Tests als Root durchgeführt und nur
testweise als normaler Benutzer. Einige Sachen wie z.B. das finden des
Adapters mit usbProg funktioniert und nach der Konfiguration von UDEV
konnte dieser auch nach der Umschaltung in den Programmiermodus
gefunden, allerdings nicht beschrieben werden.
Am Kabel liegt es nicht, da das Gerät auf einem Debian Lenny System mit
gleichen Kabeln und Hardware funktioniert.
Berechtigungen der Gerätedateien sind es auch nicht.
Bei der Installation von usbprog über apt-get werden die Benutzer zur
Gruppe Dialout hinzugefügt. Das ist aber definitiv falsch, da UDEV die
Gerätedateien mit einer anderen Gruppe (Plugdev??) anlegt. Ich habe das
entsprechend angepasst und die Benutzer in die passende Gruppe
hinzugefügt, danach konnte ich als Benutzer die Geräte über die
Gerätedateien verwenden. Das Problem wird damit nicht gelöst und bleibt
bestehen.
Die Rules für UDEV habe ich angepasst und entsprechende Regeln für die
fehlenden Gerätenummern hinzugefügt. Die Dateien liegen jetzt bei Wheezy
übrigens unter /lib/udev/...
Ohne diese Anpassungen wäre unter anderem auch der Adapter im
Programmiermodus für die Firmware nicht sichtbar. Zusätzlich habe ich
für einige Konfigurationen einen symb. Link für die Gerätedatei anlegen
lassen, da einige Geräte eine spezielle Gerätedatei fest verdrahtet
haben.
UDEV scheint auch eine weitere Schicht über die USB-Geräte zu ziehen
(MLT??). Das ist bei Lenny nicht so, da wird das Gerät als HID-Gerät
erkannt.
AVRdude scheint mit der Option -P USB nicht zu arbeiten, es findet den
Adapter nicht, da er nach einem Gerät mit dem Namen USB sucht. Wenn ich
als Option /dev/avr zur Gerätedatei angebe, findet er das Gerät, kann es
aber nicht bedienen. Ich weiß jetzt nicht, was -P USB früher gemacht
hat, fürchte aber, dass es über libusb die Geräte scannt und diese
direkt anspricht. Das scheint jetzt nicht mehr so zu sein oder mir fehlt
ein wichtiges Paket.
Wenn ich später wieder das System starte, kann ich gerne noch mal ein
paar Systemauszüge posten.
> AVRdude scheint mit der Option -P USB nicht zu arbeiten, es findet den> Adapter nicht, da er nach einem Gerät mit dem Namen USB sucht.
..heisst ja auch 'usb'
HTH
Die Gruppe dialout ist nicht grundsätzlich falsch. Viele Programmer
(deiner aber nicht) hängen an einem echten oder virtuellen seriellen
port, und darauf dürfen aller User Zugreifen, die in dieser Gruppe sind.
moin moin,
Ihr wollt mehr, ihr bekommt mehr!
nichtGast schrieb:> "Nicht erkannt" und "funktioniert nicht" sind keine guten> Fehlerbeschreibungen.> Bitte poste die Ausgaben der Tools und Kernellogs (gibts mit dmesg).
Nein, das ist sicherlich nicht optimal. Meine Kernfrage war aber auch,
ob schon jemand den Adapter hier mit wheezy am laufen hat. Das ist
anscheinend nicht der Fall. Meine Recherche im Netz hat auch soweit
ergeben, dass der Adapter nicht unkritisch ist. Es kann also sein, das
er so nicht mehr unterstützt wird.
Aber gut, holt euch einen Kaffe und etwas zum Knabber. Hier ein Teaser
mit dem was bisher passiert ist ....
*Erster Akt, das Vorspiel*
Es geht um den Programmieradapter USBprog in der Version 3.0 von
Benedikt Sauter aus dem Jahre 2007.
[[http://www.usbprog.org/index.php/Hauptseite]]
[[http://www.usbprog.org/index.php/USBprog3]]
[[http://www.bwalle.de/programme/usbprog/USBprog.pdf]]
Der Vorteil dieses Adapters war damals der Punkt, das man durch einen
Wechsel der Firmware verschiedene Funktionen nutzen konnte. Die
wichtigsten für mich waren damals die Funktion "avrispMKII", "JTag" und
"OpenOCD".
Als Betriebssystem kommt jetzt eine std. debian wheezy 64bit zum
Einsatz, unter dem der Adapter sich leider nicht nutzen lässt.
Unter Windows 7 64bit und debian lenny funktioniert der Adapter.
*Zweiter Akt, das Drama*
Als erstes stecke ich den Adapter ein und eine Ausgabe von dmsg sagt
mir, das dieser wohl auch erkannt wurde.
Bei dieser Datei hatte ich zuerst eine Regel am Ende hinzugefügt und
später wieder auskommentiert, da dieses keine Besserung gebracht hatte.
Hierbei habe ich auch einen Symlink auf die Gerätedatei hinzugefügt, um
das Gerät eventuell besser ansprechen zu können. Die Erste Regel habe
ich auch eingefügt, danach war der Adapter im Programmiermodus für die
Firmware verfügbar. Hier ist zu beachten, das alle Geräte zur Gruppe
'plugdev' gehören unddaher auch die Benutzer dieser Gruppe angehöhren
müssen.
z60_avarice.rules
In dieser Datei habe ich die letzte Regel eingefügt. auch hier wieder
mit Ergänzug für den Symlink, den ich auch in der Ersten Regel eingefügt
habe. Zu beachten ist hier, dass die Regeln für unterschiedliche
Subsysteme durchgeführt werden.
Nach den Anpassungen habe ich das UDEV-System neu gestartet und den
USBprog-Adapter angeschlossen.
1
root@debian:/lib/udev/rules.d#serviceudevrestart
2
[ok]Stoppingthehotplugeventsdispatcher:udevd.
3
[ok]Startingthehotplugeventsdispatcher:udevd.
Einen Auszug von dmesg hatte ich schon oben gepostet. Jetzt schauen wir
uns einmal das Gerät weiter im System an. Zuerst einmal ob es überhaupt
erkannt wurde mit:
Dauer etwas bis die Meldung kommt, war aber dann leider doch nichts.
*dritter Akt, die Reiter der Apokalypse*
Von Dieter Holzhäuser gibt es einen Erfahrungsbericht, der die
Einrichtung unter Ubuntu beschreibt und 2013 upgedatet wurde. Dieser
Bericht ist auch für andere Sachen der Bereitstellung einer
Entwicklungsumgebung ganz interessant.
[[http://www.system-maker.de/pdfdocus/avrlinux.pdf]]
Wie dort angegeben, habe ich auch noch einmal avrdude mit der Angabe der
Seriennummer getestet:
Mhm, war dann wohl wieder ein Schlag ins Wasser.
Hier kann ich jetzt erst einmal vermuten, das libusb ein Probleme hat
das Gerät an der Seriennummer zu finden. Die Probleme könnten die
gleichen sein, die in der lsusb Ausgabe für Fehler sorgen, denn hier
kann die Seriennummer ebenfalls nicht ermittelt werden.
Etwas weiteres was mir auffällt ist, dass nach oder währen eines
derartigen Fehlers der USB Adapter resettet und neu angemeldet wird.
Kann ich mir erst einmal auch noch nicht erklären.
Einen weiteren Tip habe ich in diesem Forum gefunden. Hierbei geht es
darum, eine MTP-Regel zu deaktivieren.
Beitrag "DIAMEX ALL-AVR"
Habe ich erst einmal grob getestet und hat nicht funktioniert. Das ist
aber ein weiter Punkt wo ich dann als nächstes ansetzten werde.
Da ich leider um 7:00 wieder hoch muss, mache ich hier einen Break.
Und hierbei noch einmal die Frage, hat jemand das Teil unter Wheezy
schon zum Laufen bekommen?
MfG
Marek
Kurzer Nachtrag für das Protokoll.
Die Abbruchprobleme könnten auf Probleme mit der USB-Schnittstelle
deuten. Das könnte auch erklären, warum die USBprog Live-CD von 2011
nicht funktioniert. Daher einmal USB-EHCI deaktivieren und nur mit USB1
testen.
Es gibt für den USBprog 2x Firmware für den avrISP, avrisp2 und
avrisp2_51. Bei allen Versuchen habe ich bisher die Firmware über das
Tool USBprog runter geladen und geschrieben. Daher weiß ich jetzt nicht,
welche Version genau gebrannt wurde. Ich werde einmal beide Geräte mit
einer unterschiedlichen Version beschreiben und testen.
ToDo:
-> Regel für MTP prüfen und aus udev auskommentieren.
-> USB-EHCI Treiber deaktivieren und nur mit USB-UHCI testen.
-> Beide Geräte mit jeweils unterschiedlicher avrISP Firmware laden und
testen.
Nächste Woche bekomme ich einen original Atmel AVR ISP mkII Programmer.
Ich bin mal gespannt, ob der genauso rumzickt.
Kleines Update zur Problematik.
Das Entladen des EHCI-Moduls (USB2) oder XHCI-Modules (USB 3) löst das
Problem nicht, es liegt also kein Konflikt mit den USB-Kontrollern vor.
Auch der Einsatz unterschiedlicher Firmware für den mkII Clone hat keine
Auswirkung. Wie es scheint, liefert USBprog aber beim Schreiben der
Firmware bei der Onlineauswahl nur die alte Version aus. Das könnte
interessant für diejenigen sein, die den USBprog unter Windows mit dem
Atmelstudio 5 oder 6 betreiben wollen. In Diesem Falle muss die Firmware
dann direkt von der Projektseite geladen und als Datei ausgewählt
werden.
http://www.usbprog.org/index.php/Firmwares
Mit der MTP-Regel bin ich auch nicht zum Ziel gekommen.
Zusätzlich habe ich noch die Basissoftware des USBprog gegen die letzte
verfügbare Version ausgetausch. Meine Version war aus dem Jahre 2008, da
könnte sich schon etwas geändert haben. Hat aber leider auch keinen
Erfolg gehabt.
http://www.usbprog.org/index.php/Downloads
Inzwischen ist auch ein original mkII von Atmel eingetroffen. Dieser
arbeitet mit avrdude sowohl unter Windows als auch unter Debian wheezy
einwandfrei. Für Einsteiger in die AVR-Welt unter Linux kann man bei dem
Preis von < 40,- nur empfehlen, diesen zu verwenden. Auch wenn der
USBprog über weitere sinnvolle Möglichkeiten verfügt.
Vorübergehendes Fazit:
Derzeitig ist der USBprog (3.0) unter Debian wheezy 64bit wohl nicht
einsetzbar. Wie es mit der neuen Version 4.0 ausschaut, kann ich leider
mangels Hardware nicht sagen. Ich werde mal den Hersteller anschreiben,
ob das Problem bekannt ist und ob es ein Lösung dafür gibt.
Eine weitere Möglichkeit könnte meine 64bit Version sein. Mein Lenny
Referenzsystem, auf der der USBprog läuft, ist eine 32bit Architektur.
Wäre noch mal eine Überlegung, werde ich aber in den nächsten Wochen
nicht testen können.
Ich hoffe dieser Thread ist noch für andere Leidensgenossen interessant
und eventuell findet sich ja noch eine Lösung.
MfG
Marek
Marek Walther schrieb:> root@debian:/lib/udev/rules.d# lsusb -v -s 004:028>> Bus 004 Device 028: ID 03eb:2104 Atmel Corp. AVR ISP mkII
[schnipp]
> Couldn't get configuration descriptor 0, some information will be> missing> Couldn't get configuration descriptor 0, some information will be> missing
Hier scheint mir der Hase im Pfeffer zu liegen. Der usbprog ist doch
sicher so eine Software-USB Implementierung, oder? Vermutlich in einem
Detail nicht standardkonform und hakt deswegen mit einem neueren
Linux-Kernel.
Google-Suche mit funktionierender und nichtfunktioniernder Kernelversion
könnte helfen. ich erinnere mich dunkel, letztens irgendwo einen Rant
gelesen zu haben, daß der Linux Kernel neuerdings solche halbkaputten
USB-Implementierungen abweist, statt sie wie früher zu akzeptieren.
Sorry, Details habe ich schon wieder verdrängt.
Wenn du deinen Kernel selber backen kannst/willst - man kann da extra
Fehlermeldungen für das USB Subsystem einschalten. Vielleicht hilft das
ja schon. Oh, und checke vorher dmesg bzw. /var/log/kern.log
XL
Grundsaetzlich habe ich kein Problem damit, mir einen eigenen Kernel zu
uebersetzen. Ich denke aber, dass das Problem am Geraet selber liegt und
nur durch ein Update des Bootloaders zu loesen ist. Da der USBprog
OpenSource ist, liegen Software und Schaltplaene offen, ggf. werde ich
mir die Sache einmal anschauen. Zuerst werde ich aber einmal den
Hersteller kontakieren, vielleicht kannt man dort das Problem und eine
Loesung. Immerhin wird noch der Nachfolger USBprog 4 verkauft.
Ueber die Probleme mit dem USB-Stack bin ich auch gestossen. Das Geraet
scheint mit dem alten 2.4er Kernel besser zu laufen ls mi dem 2.6er.