Forum: Mikrocontroller und Digitale Elektronik AVR isp MKII mounten in Linux


von Timo P. (latissimo)


Lesenswert?

Hallo!

Ich habe den USB MK2 von Atmel. Dieser funktioniert unter Win 
einwandfrei mit AVRstudio zusammen.

Problem:
Unter Ubuntu versuche ich mit make den AVRDUDE ans laufen zu bekommen. 
Ich muss den 'AVRDUDE_PORT' angeben.

Ich hatte gehofft, dass ich dort sowas wie /dev/ttyUSB1 eintragen 
könnte...
Leider wird mein MK2 nicht als solcher gemountet, sondern ist in der 
var/log/messages nur als folgendes zu finden:

usb2-4: new full speed USB device using ohci_hcd and address 2


damit kann ich nicht viel anfangen und weiß nicht, was ich im make 
angeben muss.

Danke für Antworten!

von Klaus T. (gauchi)


Lesenswert?

Das Ding hat doch einen direkten USB-Anschluss, oder? Versuch doch 
einfach mal 'usb'

von Timo P. (latissimo)


Lesenswert?

usb?

 ....

nein ich suche quasi eine Möglichkeit, meinen Rechner das device 
automatisch als dev.... mounten zu lassen. Denn nur dann kann ich doch 
dieses device auch in der makefile als soches angeben....(für avrdude)

von Simon B. (nomis)


Lesenswert?

Timo P. schrieb:
> usb?
>
>  ....
>
> nein ich suche quasi eine Möglichkeit, meinen Rechner das device
> automatisch als dev.... mounten zu lassen. Denn nur dann kann ich doch
> dieses device auch in der makefile als soches angeben....(für avrdude)

Das ist ein Mißverständnis. Mounten muss man Filesysteme, also z.B. 
sowas wie USB-Sticks. Bei USB-Geräten ist es von der Geräteklasse 
abhängig, ob die einen Eintrag unter /dev bekommen (die 
USB-Seriell-Adapter bekommen sowas), das ist aber nicht zwingend, und 
auch nicht unbedingt notwendig um mit einem USB-Gerät zu 
kommunizieren.

avrdude weiß, wie man ohne sowas klarkommt, man muss ihm nur sagen, dass 
er es via USB versuchen soll. Mit meinem MKII-Clone geht das so:
1
avrdude -c avrisp2 -P usb -p m644 ...

Da ist also keine explizite Angabe einer Device-Datei notwendig.

Viele Grüße,
        Simon

von Klaus T. (gauchi)


Lesenswert?

Ich meinte: gib doch dem avrdude einfach mal usb als port an. Dann 
brauchst du kein device in /dev mehr

von Vincent R. (vinc) Benutzerseite


Lesenswert?

Ich benutzte den MKII auch unter Ubuntu, allerdings in Eclipse.

Dort wird im avrdude-Kommando als Device-Parameter
-P usb:XX:XX
angegeben, wobei XX:XX die letzten beiden Bytes der Seriennummer (HEX) 
sind (siehe Aufkleber).

Bei mir gab es dann noch Probleme mit den Zugriffsrechten als normaler 
User, da half es schließlich, eine udev-Regel anzulegen, die den Zugriff 
auch normalen Usern erlaubt. Bei google findet man einiges dazu.

Gruß,
Vincent

von Εrnst B. (ernst)


Lesenswert?

Timo P. schrieb:
> automatisch als dev.... mounten zu lassen

das macht dein Rechner bestimmt schon.
Stichworte wären "udev", das ein nach /dev gemountetes tmpfs verwaltet,
oder usbfs, üblich automatisch nach /proc/bus/usb gemountet, das alle 
usb-devicenodes enthält.

Und das beste daran: bei echten USB (sprich: nicht USB->RS232) Geräten 
musst du dich nicht darum kümmern. avrdude sucht sich schon selber das 
richtige USB-Device heraus.

lass die "-P" Option mit Parameter ersatzlos weg oder versuch -P usb.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Timo P. schrieb:
> usb?
>
>  ....
>
> nein ich suche quasi eine Möglichkeit, meinen Rechner das device
> automatisch als dev.... mounten zu lassen. Denn nur dann kann ich doch
> dieses device auch in der makefile als soches angeben....(für avrdude)

Simon hat das ja schon richtig beschrieben. Allerdings kannst Du das, 
was Du möchtest, auch tun (z.B. um ohne avrdude ein USB-Gerät mit 
Bootloader anzusprechen oder zwei AVRISPmkII gleichzeitig zu verwenden).

Der passende Dienst, den Du dafür benötigst ist "udev".

Im Prinzip schaut der in seinen Konfigurationsdateien nach, ob er zum 
gerade angestöpselten USB-Gerät einen passenden Eintrag (Hersteller, ID, 
usw.) findet und verknüpft dann das neue Gerät mit dem angegebenen 
/dev-Eintrag.
Insbesondere kann man dort auch die Gruppe und den Eigentümer und die 
Rechte angeben - man möchte ja nicht immer jedem Zugriff geben :-)

Z.B. habe ich folgenden Eintrag in "meiner" Datei unter
/etc/udev/rules.d/ (dort findet man zumindest unter Debian die 
Konfigurationsdateien):

# AVRISP mkII - Programmiergerät für Mitglieder der Gruppe "avrisp" 
freigeben
ATTR{idVendor}="03eb" ATTR{idProduct}="2104", MODE="0660", 
GROUP="avrisp", SYMLINK+="avrispmkii"

Diese Zeile legt beim Einstecken des avrispmkii das Gerät 
"/dev/avrispmkii" mit den angegebenen Eigenschaften an.

Näheres findet sich - wie immer - unter "man udev" ;-)

Chris D.

von Timo P. (latissimo)


Lesenswert?

mit 'usb' ging es! ABER: erst, nachdem ich das automatisch als usbserial 
registrieren und in dev ablegen wieder ausgestellt habe ... ;)

THX!

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.