Forum: PC Hard- und Software avrdude unter Ubuntu benutzen


von Mike M. (mikemodanoxxx)


Lesenswert?

Hallo,

ich arbeite mit einem Roboterbausatz von qfix unter Windows. Es 
existiert allerdings nur eine Installation für Windows und ich wollte 
das ganze nun mit Ubuntu verwenden (avr, avrdude). Das Batch-Skript von 
Windows konnte ich bereits erfolgreich portieren, das Skript zum Flashen 
funktioniert aber leider nicht. Kann mir jemand sagen wo der Fehler 
liegt?

Das Skript sieht in Windows so aus (und klappt ohne Probleme):

avrdude -p atmega32 -P COM5 -b 115200 -c avr910 -e -U 
flash:w:"%TARGET%.bin"

Ich habe das jetzt so angepasst:
#!/bin/sh
set TARGET=$1
avrdude -p atmega32 -P /dev/ttyUSB0 -b 115200 -c avr910 -e -U 
flash:w:$TARGET.bin

Wenn ich das ausführe erhalte ich folgendene Meldung:
Found programmer: Id = "qFix B0"; type = S
    Software Version = 1.0; Hardware Version = 1.0
Programmer supports auto addr increment.
avrdude: avr910_recv(): programmer is not responding

Muss man da unter Ubuntu noch etwas an den Command-Line Parametern 
ändern? Und kann mir jemand sagen warum ich das Skript nur als root 
ausführen kann? Man hat wohl als normaler Benutzer keinen Zugriff auf 
den USB-Anschluss. Lässt sich das ändern?

LG, mike.

: Verschoben durch Moderator
von Dennis S. (eltio)


Lesenswert?


von Mike M. (mikemodanoxxx)


Lesenswert?

Dankeschön. Hat jemand eine Idee bei dem anderen Problem? Ich habe es 
beispielsweise mal ohne die Angabe einer Baudrate versucht, aber da 
erhalte ich noch nicht mal die Meldung, dass der Programmer gefunden 
wurde.

von Erik D. (erikms5)


Lesenswert?

Hallo Mike,

ich arbeite mit Kubuntu 12.10 mit einem AVR ISP MK2. Bei der 
Schnittstelle gebe ich "usb" ohne Baudrate an.

"avrdude -cavrisp2 -pm644 -Pusb -Uflash:w:foo.hex"

funktioniert einwandfrei auch ohne Rootrechte.

Gruß Erik

von Mike M. (mikemodanoxxx)


Lesenswert?

Damit bekomme ich ein ser_open(): can't open device "usb": No such file 
or directory.

Ich nehme mal an das hängt davon ab, wie das Teil angeschlossen ist. Bei 
mir ist es ein CP2102 USB to UART Bridge Controller.

von Erik D. (erikms5)


Lesenswert?

Mike Modano schrieb:
> Damit bekomme ich ein ser_open(): can't open device "usb"

Auch mit "sudo" ?

von Mike M. (mikemodanoxxx)


Lesenswert?

Ja, auch mit sudo.

von Lukas K. (carrotindustries)


Lesenswert?

Erik Dieckmann schrieb:
> Hallo Mike,
>
> ich arbeite mit Kubuntu 12.10 mit einem AVR ISP MK2. Bei der
> Schnittstelle gebe ich "usb" ohne Baudrate an.

Du hast ja auch einen anderen Programmer, der mk2 wird über libusb 
angesprochen. Der TO hingegen scheint einen avr910-Kompatiblen zu haben, 
der mit einem USB-UART angeschlossen ist. ttyUSB0 sollte passen, wenn 
der Programmer tatsächlich an dieser tty hängt.

Wegen der root-Problematik: befördere dich in die Gruppe, die bei 
ttyUSB0 eingetragen ist. Heißt bei ubuntu, dialout oder so.

Hast du unter Windows den 'original'-Avrdude oder den beim Bausatz 
beigelegten verwendet?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Mike Modano schrieb:
> avrdude: avr910_recv(): programmer is not responding

Ich schieb' das mal in die PC-Ecke rüber.  Sieht mir eher wie
ein Problem mit dem CP210x-Treiber aus denn irgendwas anderes.

Das umständliche Getue nach dem -U kannst du getrost sein
lassen.  -U $TARGET.bin ist die Kurzform für
-U flash:w:$TARGET.bin:a.

Sind beide AVRDUDE-Versionen denn die gleichen?  Ist die qfix-
Version möglicherwise "gehackt"?

von Mike M. (mikemodanoxxx)


Lesenswert?

Wo kann ich prüfen ob in der Version Unterschiede bestehen? Ich habe die 
avrdude.conf verglichen. Beim atmega32 sind diese inhaltlich gleich. 
Avrdude war bei der qfix-Software dabei, ist also nicht extra 
installiert worden.

von Lukas K. (carrotindustries)


Lesenswert?

Mike Modano schrieb:
> Ich habe die
> avrdude.conf verglichen. Beim atmega32 sind diese inhaltlich gleich.

Dann seh' mal in den Abschnitt vom Programmer nach.

von Mike M. (mikemodanoxxx)


Angehängte Dateien:

Lesenswert?

Wo soll der sein? Ich finde nur zwei kurze Abschnitte bei denen zB sowas 
steht:

programmer
  id    = "avr910";
  desc  = "Atmel Low Cost Serial Programmer";
  type  = avr910;
;

Und die stehen in beiden Dateien. Ich habe gerade noch mal unter Windows 
geflashed und da folgt auf das "Programmer supports auto addr 
increment." folgender Text.

Programmer supports the following devices:
    Device code: 0x72 = ATMEGA32

avrdude: AVR device initialized and ready to accept instructions

Habe beide Config-Dateien mal in den Anhang gepackt. Kann dort keine 
relevanten Unterschiede erkennen. Wo könnte der Fehler denn sonst noch 
liegen?

von Maus (Gast)


Lesenswert?

Dateien und ganze Ordnerstrukturen kannst du ganz easy mit Meld 
vergleichen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Mike Modano schrieb:
> Wo kann ich prüfen ob in der Version Unterschiede bestehen?

Als erstes mal mit -v aufrufen und die Versionnummer vergleichen.

> Avrdude war bei der qfix-Software dabei, ist also nicht extra
> installiert worden.

Genau deshalb befürchte ich, dass sie da irgendeine "gehackte"
Version mitliefern, die sie mit ihrem Programmer lauffähig gemacht
haben, ohne jemandem was davon zu sagen.  Da wären sie ja nicht
gerade die ersten, die das tun, Arduino hat sowas auch sehr lange
gemacht, bis sie sich endlich mal durchgerungen haben, das sauber
und ordentlich ins offizielle AVRDUDE enizubauen.

Prinzipiell steht dir natürlich als Kunde das Recht zu, dass sie
dir auch den Sourcecode dafür aushändigen (wegen GPL).

von Mike M. (mikemodanoxxx)


Lesenswert?

Maus schrieb:
> Dateien und ganze Ordnerstrukturen kannst du ganz easy mit Meld
> vergleichen.

Ja ich hatte die Dateien mit Meld verglichen. Dabei konnte ich keine 
relevanten Unterschiede feststellen, wie bereits erwähnt ;-).

Jörg Wunsch schrieb:
> Als erstes mal mit -v aufrufen und die Versionnummer vergleichen.

Windows benutzt 5.5, Ubuntu 5.11.1.

> Genau deshalb befürchte ich, dass sie da irgendeine "gehackte"
> Version mitliefern, die sie mit ihrem Programmer lauffähig gemacht
> haben, ohne jemandem was davon zu sagen.  Da wären sie ja nicht
> gerade die ersten, die das tun, Arduino hat sowas auch sehr lange
> gemacht, bis sie sich endlich mal durchgerungen haben, das sauber
> und ordentlich ins offizielle AVRDUDE enizubauen.

Ich werde als nächstes mal in Windows die neueste Version installieren 
und versuchen mit dieser das Programm hochzuladen. Wenn das auch nicht 
klappt muss ja an der Version liegen (entweder der Versionsnummer oder 
eben ob sie "gehackt" ist). In dem Falle schreibe ich einfach mal der 
Firma und frage, ob sie es schon mal auf Ubuntu portiert haben oder was 
ich für Änderungen vornehmen muss.

> Prinzipiell steht dir natürlich als Kunde das Recht zu, dass sie
> dir auch den Sourcecode dafür aushändigen (wegen GPL).

Auf den Inhalt solcher Lizenzen würde ich micht nicht unbedingt 
verlassen. Ich hatte mal eine Vorlesung (Urheberrecht als 
Gastveranstaltung, eigentlich bin ich kein Jurist), in der die Klauseln 
einer üblichen Lizenz zerrissen wurden. Weiß aber nicht mehr ob das die 
GPL war ;-).

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Mike Modano schrieb:
>> Prinzipiell steht dir natürlich als Kunde das Recht zu, dass sie
>> dir auch den Sourcecode dafür aushändigen (wegen GPL).
>
> Auf den Inhalt solcher Lizenzen würde ich micht nicht unbedingt
> verlassen. Ich hatte mal eine Vorlesung (Urheberrecht als
> Gastveranstaltung, eigentlich bin ich kein Jurist), in der die Klauseln
> einer üblichen Lizenz zerrissen wurden.

Naja, der ganze Klausel-Krimskrams dürfte in unserem Rechtssystem
wenig relevant sein.  Trotzdem wird kein Zweifel dran bestehen,
dass die Lizenz vom Verwerter fordert, dass er seine eigenen
Änderungen denen, denen er eine geänderte Version gibt, unter
gleichen Bedingungen weitergibt, zumindest auf Verlangen.

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.