Forum: Mikrocontroller und Digitale Elektronik fischls USBasp unter Debian


von Ralf (Gast)


Lesenswert?

Hallo,

ich habe gerade versucht den USBasp von fischl mit AVRDUDE unter Linux 
anzusprechen. Zugriff auf den Programmer gibt es nur mit Rootrechten. 
Nun habe ich verschiedene Einstellungen für udev gefunden, die alle 
nicht greifen.

Beitrag "Re: USBASP zum laufen bringen"

http://lazyzero.de/elektronik/avr/usbasplinux

Der Programmer bleibt aber trotzdem nur mit "sudo" ansprechbar.

Kann mir jemand helfen?

von Ralf (Gast)


Lesenswert?

..ich sollte wohl noch dazusagen, dass ich immer noch Debian 4 verwende

von Ralf (Gast)


Lesenswert?

Ralf schrieb:
> ..ich sollte wohl noch dazusagen, dass ich noch Debian 7.8
> verwende

von er Deb (Gast)


Lesenswert?

udev rule

von er Deb (Gast)


Lesenswert?

Passen Deine idVendor und idProduct nicht auf:

>SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", GROUP="users", >MODE="666"

?

Ggfs mit lsusb prüfen, wenn der USBasp steckt.

von Ralf (Gast)


Lesenswert?

er Deb schrieb:
> Passen Deine idVendor und idProduct nicht auf:
>
>>SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", GROUP="users", >MODE="666"
>
> ?
>
> Ggfs mit lsusb prüfen, wenn der USBasp steckt.

ja:
1
Bus 003 Device 006: ID 16c0:05dc VOTI shared ID for use with libusb

von Ralf (Gast)


Lesenswert?

ich habe jetzt eine Datei /etc/udev/rules.d/015_usbprog.rules
erzeugt:
1
SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", GROUP="users", MODE="666"

danach udev neu gestartet:
1
sudo /etc/init.d/udev restart

...erfolglos

von Sheeva P. (sheevaplug)


Lesenswert?

Ralf schrieb:
> ich habe jetzt eine Datei /etc/udev/rules.d/015_usbprog.rules
> erzeugt:
>
>
1
> 
2
> SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", GROUP="users", 
3
> MODE="666"
4
>
>
> danach udev neu gestartet:
>
>
1
sudo /etc/init.d/udev restart
2
>
>
> ...erfolglos

Oben spricht lsusb von einer "shared ID for use with libusb". Ist es 
möglich, daß die ID noch für andere Geräte verwendet und die udev-Rule 
deswegen überschrieben wird?

von Ralf (Gast)


Lesenswert?

Sheeva P. schrieb:
> Oben spricht lsusb von einer "shared ID for use with libusb". Ist es
> möglich, daß die ID noch für andere Geräte verwendet und die udev-Rule
> deswegen überschrieben wird?

ich weiss jetzt nicht genau, was das bedeutet, aber es steckt definitiv 
nur dieser eine Programmer an den USB-Ports

von Axel S. (a-za-z0-9)


Lesenswert?

Ralf schrieb:
> ich habe jetzt eine Datei /etc/udev/rules.d/015_usbprog.rules
> erzeugt:
>
1
> SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", GROUP="users", 
2
> MODE="666"

> ...erfolglos

Sicher daß bei deinem udev die Attribute noch per SYSFS{...} 
spezifiziert werden müssen? Mal ein paar existierende udev-Rules 
angeschaut?

Bei mir (Debian 8) sieht das so aus:
1
SUBSYSTEM!="usb", GOTO="usb_rules_end"
2
ACTION!="add", GOTO="usb_rules_end"
3
ENV{DEVTYPE}!="usb_device", GOTO="usb_rules_end"
4
5
#usbasp
6
ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", MODE="0660", GROUP="plugdev", SYMLINK+="usbasp_%n"
7
#usbtiny
8
ATTR{idVendor}=="1781", ATTR{idProduct}=="0c9f", MODE="0660", GROUP="plugdev", SYMLINK+="usbtiny_%n"
9
#STM st/linkv2
10
ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="0660", GROUP="plugdev", SYMLINK+="stlinkv2_%n"
11
...
12
13
LABEL="usb_rules_end"

und funktioniert

Nachtrag: "plugdev" ist die Gruppe, der pluggable devices defaultmäßig 
gehören. Du mußt dich eventuell noch in diese Gruppe eintragen. Du 
kannst natürlich auch gleich "users" nehmen (da ist jeder User drin) 
aber es ist dann ein bißchen liberaler als eigentlich vorgesehen.

von Ralf (Gast)


Lesenswert?

habe jetzt folgendes in /etc/udev/rules.d/015_usbprog.rules die 
geschrieben:
1
SUBSYSTEM!="usb", GOTO="usb_rules_end"
2
ACTION!="add", GOTO="usb_rules_end"
3
ENV{DEVTYPE}!="usb_device", GOTO="usb_rules_end"
4
5
#usbasp
6
ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", MODE="0660", GROUP="users", SYMLINK+="usbasp_%n"

...udev neu gestartet und den programmer abgezogen

AVRDUDE meldet immer noch:
1
avrdude: Version 5.11.1, compiled on Oct 18 2011 at 21:17:35
2
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
3
         Copyright (c) 2007-2009 Joerg Wunsch
4
5
         System wide configuration file is "/etc/avrdude.conf"
6
         User configuration file is "/home/micha/.avrduderc"
7
         User configuration file does not exist or is not a regular file, skipping
8
9
         Using Port                    : USB
10
         Using Programmer              : usbasp
11
avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted
12
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc
13
14
avrdude done.  Thank you.

ich habe die /etc/udev/rules.d/015_usbprog.rules neu erzeugt...muss ich 
vielleicht die /etc/udev/rules.d/015_usbprog.rules irgendwie ausführbar 
machen oder ihr Rechte erteilen?

von user (Gast)


Lesenswert?

also ich habe das in der udev rule stehen:

SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", 
MODE="0666"

von Ralf (Gast)


Lesenswert?

user schrieb:
> u

user schrieb:
> also ich habe das in der udev rule stehen:
>
> SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc",
> MODE="0666"

hab's mal reinkopiert...ohne erfolg. Ich glaube, ich mache etwas anderes 
falsch

von Sheeva P. (sheevaplug)


Lesenswert?

Was ich oben gemeint habe, war: gibt es möglicherweise mehrere Geräte 
bzw. udev-Regeln mit derselben Kombination aus Produkt- und Vendor-Id?

Ralf schrieb:
> user schrieb:
>> also ich habe das in der udev rule stehen:
>>
>> SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc",
>> MODE="0666"
>
> hab's mal reinkopiert...ohne erfolg. Ich glaube, ich mache etwas anderes
> falsch

Was sagen denn die Logdateien und der Kernel-Ringpuffer (dmesg(1)) dazu?

Edit: Und, ach ja, wie rufst Du den avrdude genau auf?

von Ralf (Gast)


Lesenswert?

1
>avrdude -P USB -c usbasp -p m644p -v
2
3
avrdude: Version 5.11.1, compiled on Oct 18 2011 at 21:17:35
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
         Copyright (c) 2007-2009 Joerg Wunsch
6
7
         System wide configuration file is "/etc/avrdude.conf"
8
         User configuration file is "/home/micha/.avrduderc"
9
         User configuration file does not exist or is not a regular file, skipping
10
11
         Using Port                    : USB
12
         Using Programmer              : usbasp
13
avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted
14
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc
15
16
avrdude done.  Thank you.


...oder:
1
 
2
 sudo avrdude -P USB -c usbasp -p m644p -v
3
4
avrdude: Version 5.11.1, compiled on Oct 18 2011 at 21:17:35
5
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
6
         Copyright (c) 2007-2009 Joerg Wunsch
7
8
         System wide configuration file is "/etc/avrdude.conf"
9
         User configuration file is "/root/.avrduderc"
10
         User configuration file does not exist or is not a regular file, skipping
11
12
         Using Port                    : USB
13
         Using Programmer              : usbasp
14
         AVR Part                      : ATMEGA644P
15
         Chip Erase delay              : 9000 us
16
         PAGEL                         : PD7
17
         BS2                           : PA0
18
         RESET disposition             : dedicated
19
         RETRY pulse                   : SCK
20
         serial program mode           : yes
21
         parallel program mode         : yes
22
         Timeout                       : 200
23
         StabDelay                     : 100
24
         CmdexeDelay                   : 25
25
         SyncLoops                     : 32
26
         ByteDelay                     : 0
27
         PollIndex                     : 3
28
         PollValue                     : 0x53
29
         Memory Detail                 :
30
31
                                  Block Poll               Page                       Polled
32
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
33
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
34
           eeprom        65    10   128    0 no       2048    8      0  9000  9000 0xff 0xff
35
           flash         33     6   256    0 yes     65536  256    256  4500  4500 0xff 0xff
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
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
41
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
42
43
         Programmer Type : usbasp
44
         Description     : USBasp, http://www.fischl.de/usbasp/
45
46
avrdude: auto set sck period (because given equals null)
47
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
48
avrdude: error: programm enable: target doesn't answer. 1 
49
avrdude: initialization failed, rc=-1
50
         Double check connections and try again, or use -F to override
51
         this check.
52
53
54
avrdude done.  Thank you.

von Ralf (Gast)


Lesenswert?

Sheeva P. schrieb:
> Was sagen denn die Logdateien und der Kernel-Ringpuffer (dmesg(1)) dazu?

was bedeutet (dmesg(1)) ?

dmesg sagt:
1
 
2
[14639.577006] udevd[8657]: starting version 175
3
[14653.496120] usb 3-1: USB disconnect, device number 7
4
[14655.224045] usb 3-1: new low-speed USB device number 8 using uhci_hcd
5
[14655.396053] usb 3-1: New USB device found, idVendor=16c0, idProduct=05dc
6
[14655.396063] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
7
[14655.396071] usb 3-1: Product: USBasp
8
[14655.396076] usb 3-1: Manufacturer: www.fischl.de
9
[15040.872120] usb 3-1: USB disconnect, device number 8
10
[16326.958796] udevd[8842]: starting version 175
11
[16332.736056] usb 3-1: new low-speed USB device number 9 using uhci_hcd
12
[16332.908099] usb 3-1: New USB device found, idVendor=16c0, idProduct=05dc
13
[16332.908109] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
14
[16332.908116] usb 3-1: Product: USBasp
15
[16332.908122] usb 3-1: Manufacturer: www.fischl.de

von Ralf (Gast)


Lesenswert?

Sheeva P. schrieb:
> Was ich oben gemeint habe, war: gibt es möglicherweise mehrere Geräte
> bzw. udev-Regeln mit derselben Kombination aus Produkt- und Vendor-Id?

..also die testweise erzeugte /etc/udev/rules.d/60-objdev.rules habe ich 
extra gelöscht

von Ralf (Gast)


Lesenswert?

...hat es eine Bedeutung, dass der device bei jedem reconnect 
hochgezählt wird?..mittlerweile bin ich bei USB device number 9

von Axel S. (a-za-z0-9)


Lesenswert?

Sheeva P. schrieb:
> Was ich oben gemeint habe, war: gibt es möglicherweise mehrere Geräte
> bzw. udev-Regeln mit derselben Kombination aus Produkt- und Vendor-Id?

Unwahrscheinlich.

>>> SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc",
>>> MODE="0666"
>>
>> hab's mal reinkopiert...ohne erfolg. Ich glaube, ich mache etwas anderes
>> falsch
>
> Was sagen denn die Logdateien und der Kernel-Ringpuffer (dmesg(1)) dazu?

Jep, das wär mal interessant. Und es gab wohl auch eine Möglichkeit, 
sich die udev-Events anzusehen ... "udevadm monitor -kup"

> Edit: Und, ach ja, wie rufst Du den avrdude genau auf?

Das hat damit nichts zu tun. Man muß udev nur neu laden (sudo udevadm 
control -R) und das Gerät neu anstecken. Dann sollte die neue udev-Regel 
greifen und das neu erzeugte Gerät mit den gewünschten 
Eigentümerschaften und Zugriffsrechten erzeugen. avrdude versucht dann 
nur reihum alle USB-Geräte zu lesen bis er den usbasp findet.

@Ralf: wie sind denn die Eigentümer/Rechte für deinen usbasp gesetzt? 
Hier sieht es so aus:
1
~ $ls -l /dev/usbasp*
2
lrwxrwxrwx 1 root root 15 Jun 11 22:05 /dev/usbasp_4 -> bus/usb/003/013
3
4
~ $ls -l /dev/bus/usb/003/013
5
crw-rw---- 1 root plugdev 189, 268 Jun 11 22:05 /dev/bus/usb/003/013

Das Gerät usbasp_* in /dev kriege ich natürlich nur wegen meiner 
udev-Regel. Aber Bus- und Device-ID siehst du ja auch in "lsusb"

von Sheeva P. (sheevaplug)


Lesenswert?

Ralf schrieb:
> Sheeva P. schrieb:
>> Was sagen denn die Logdateien und der Kernel-Ringpuffer (dmesg(1)) dazu?
>
> was bedeutet (dmesg(1)) ?

Daß es da ein Programm namens "dmesg" gibt, welches in der 
Manpage-Sektion 1 dokumentiert ist -- aber das hast Du ja schon 
gefunden. :-)

von Ralf (Gast)


Lesenswert?

1
 
2
>ls -l /dev/bus/usb/003/010
3
crw-rw-r-T 1 root root 189, 265 Jun 11 23:02 /dev/bus/usb/003/010



heißt das, dass der device noch nicht in der richtigen Gruppe ist?

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.