Anwendungen
Portal
Forum
Wiki
Ikhaya
Planet
Mehr
Anmelden

udev permissions in ubuntu 12.04? (avrdude und Atmel AVRISPMK2)

Hallo,

ich habe seit 12.04 ein Problem mit dem udev rules. Unter anderem tritt es bei dem AVR ISP MK2 auf.

1
avrdude -pt13 -c avrisp2 -P usb

meldet permission denied. Nur mit sudo habe ich Zugriff.

in /etc/udev/rules.d/60-avrisp.rules steht

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="avrisp_end"

# Atmel Corp. JTAG ICE mkII
ATTR{idVendor}=="03eb", SYSFS{idProduct}=="2103", MODE="660", GROUP="dialout"
# Atmel Corp. AVRISP mkII
ATTR{idVendor}=="03eb", SYSFS{idProduct}=="2104", MODE="660", GROUP="dialout"
# Atmel Corp. Dragon
ATTR{idVendor}=="03eb", SYSFS{idProduct}=="2107", MODE="660", GROUP="dialout"

LABEL="avrisp_end"
1
2
groups
pioupus adm dialout cdrom sudo dip plugdev users lpadmin sambashare

Diese Konfiguration funktionierte ohne Problem auf 10.04.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 006: ID 0c45:6426 Microdia 
Bus 002 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 003 Device 002: ID 03eb:2104 Atmel Corp. AVR ISP mkII
Bus 003 Device 003: ID 413c:8187 Dell Computer Corp. DW375 Bluetooth Module
Bus 004 Device 002: ID 1cb6:6651  
Bus 001 Device 008: ID 2457:101e 

Hat sich etwas wichtiges in udev seit 10.04 geändert, wodurch diese Regel nicht mehr funktioniert?

Viele Gruesse Pioupus

Hat niemand eine Idee? Mir brennt das Problem ein wenig auf den Nägeln.

Viele Grüße,

Pioupus

Ich vermute, dass eins (oder mehrere) der Schlagworte nicht mehr stimmen, d.h. jetzt mit 12.04 anders lauten:

  • SUBSYSTEM!="usb_device"

  • ATTR{idVendor}

  • SYSFS{idProduct}

udev hilft dir, mit lsusb, udevadm den neuen Stand anzuzeigen.

Hast du die bisherige udev Regel selbst erstellt ? Wenn du alle Ausgabe hier postest, sollte es möglich sein, eine neue udev Regel zu finden.

Ich habe die Regel aus http://www.mikrocontroller.net/articles/AVRDUDE

Welche Ausgaben könnten denn interessant sein?

Viele Grüße,

Pioupus

pioupus schrieb:

Welche Ausgaben könnten denn interessant sein?

wie im Artikel udev beschrieben, mit lsusb und udevadm. Hier sind auch einige Beispiele gezeigt, wie man sich rantastet.

Wenn du den schon den genauen Device Namen von deinem USB Gerät kennst, bekommst du mit folgendem Befehl

udevadm info --query=all --attribute-walk --name=/dev/DEIN-GERÄT

die nötigen Infos, um damit dann die neue udev Regel zu schreiben.

u1000 schrieb:

Ich vermute, dass eins (oder mehrere) der Schlagworte nicht mehr stimmen, d.h. jetzt mit 12.04 anders lauten:

  • SUBSYSTEM!="usb_device"

  • ATTR{idVendor}

  • SYSFS{idProduct}

Korrekt!

  • SYSFS{idProduct} wird nicht mehr unterstützt

  • verwende: ATTR{idProduct}

Sollte jetzt klappen.

TausB

Habe ähnliche Probleme gehabt.....

den entscheidenen Tip habe ich hier gefunden http://www.mikrocontroller.net/topic/226307

habe in der Datei /lib/udev/rules.d/69-libmtp.rules

die fast letzte Zeile

ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

auskommentiert:

dann ein

1
sudo service udev restart

hinterher gejagt, den usb stecker raus und rein.

hatte nen AVR-Net-IO mit nem m644 dran hängen

1
avrdude -c avrispmkII -p m644 -P usb -vvv

Ausgabe (gekürzt)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
     Using Port                    : usb
         Using Programmer              : avrispmkII
avrdude: usbdev_open(): Found AVRISP mkII, serno: 0000A0012855
avrdude: usbdev_open(): using read endpoint 0x82
avrdude: stk500v2_getsync(): found AVRISP mkII programmer


 Programmer Type : STK500V2
         Description     : Atmel AVR ISP mkII
         Programmer Model: AVRISP mkII
         Hardware Version: 0
         Firmware Version Master : 1.17
         Vtarget         : 4.8 V
         SCK period      : 8.00 us

Danach konnte ich auch endlich unter ubuntu programieren...

u1000 schrieb:

Ich vermute, dass eins (oder mehrere) der Schlagworte nicht mehr stimmen, d.h. jetzt mit 12.04 anders lauten:

  • SUBSYSTEM!="usb_device"

  • ATTR{idVendor}

  • SYSFS{idProduct}

Korrekt!

  • SYSFS{idProduct} wird nicht mehr unterstützt

  • verwende: ATTR{idProduct}

Sollte jetzt klappen.

TausB

Super! Das ist es gewesen. Woher hast du die Info? Damit ich das nächste mal selber nachschlagen kann.

Dann Habe ich noch ein kleines Problem mit udev: Ich würde gerne der Profilic Serielle Schnittstelle und dem GPS jeweils immer einen eindeutigen Namen geben. Nur leider benutzt auch das GPS den Profilic Chipsatz, sodass ich mit Vendor:Product keinen eindeutigen Namen zuweisen kann.

Ist es möglich, den Namen ttyUSBx an den USB Pfad zu koppeln? Also Port 1 an Hub 2 ist ttyUSB0 und Port 2 an Hub 2 ttyUSB1?

Viele Grüße,

Pioupus

Hab in der google suche "03eb:2104 ubuntu" eingegeben. Der Link zu Mikrokontroler hat das Problem in einer älteren version beschrieben.

Mußte dann nur noch die Datei finden. Hatte jetzt eine andere Zahl. Und die Zeile stimmte nicht mehr.

Ich denke mal das eine unbekantere Hardware jetzt ignorierd wird....