Forum: Mikrocontroller und Digitale Elektronik avrdude Lucid 10.4 ioctl Berechtigungen


von Marius (Gast)


Lesenswert?

Moin!

Ich möchte gern Eclipse mit den AVR Plugins verwenden. Diese habe ich 
installiert. Allerdings scheint avrdude ioctl Fehler unter Ubuntu Lucid 
10.4 mit 2.6.32-22-generic zu haben.

Es geht um einen AVR JTAG ICE mkII und einen ATMega 2560.
1
% sudo avrdude -pm2560 -cjtag2 -Uflash:w:Sensor.hex:a
2
avrdude: ser_open(): can't set attributes for device "/dev/ttyS0": Inappropriate ioctl for device

Ich hatte trotzdem an einen ioctl Fehler gedacht:

sudo vim /etc/udev/rules.d/80-usbprog.rules - mit Zeilennummern:
1
  1 TTR{idVendor}=="03eb", ATTR{idProduct}=="2104", GROUP="plugdev", MODE="0660" # AVRISP mkII
2
  2 ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", GROUP="plugdev", MODE="0660" # AVR-Dragon
3
  3 ATTR{idVendor}=="03eb", ATTR{idProduct}=="2103", GROUP="plugdev", MODE="0660" # JTAG ICE mkII
4
  4 ATTR{idVendor}=="03eb", ATTR{idProduct}=="2106", GROUP="plugdev", MODE="0660" # STK600
5
  5 ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", GROUP="plugdev", MODE="0660" # USBASP von www.fischl.de
6
  6 ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ffa", GROUP="plugdev", MODE="0660" # AT90USB
7
  7 ATTR{idVendor}=="10c4", ATTR{idProduct}=="ea60", GROUP="plugdev", MODE="0660" # AVR910
8
  8 ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", GROUP="plugdev", MODE="0660" # Future Technology Devices International
1
% lsusb
2
3
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
4
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
5
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
6
Bus 003 Device 026: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
7
Bus 003 Device 025: ID 03eb:2103 Atmel Corp. JTAG ICE mkII
8
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
9
Bus 002 Device 003: ID 04f2:b1b4 Chicony Electronics Co., Ltd 
10
Bus 002 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. Mass Storage Device
11
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
12
Bus 001 Device 004: ID 14cd:6500 Super Top 
13
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Sowohl als root, als auch als User - selbiges Problem. Unter Windows mit 
AVR Studio in einer VM (ist aus) funktioniert alles.
Weiß jemand was man da machen muss um in den Genuss von Eclipse AVR mit 
der Linux Toolchain zu kommen?

Danke ;),
Marius

von Hc Zimmerer (mizch) (Gast)


Lesenswert?

> avrdude: ser_open(): can't set attributes for device "/dev/ttyS0"

Die Fehlermeldung zeigt deutlich, dass avrdude versucht, über den 
seriellen Port zu verbinden.  Was Du sonst geschrieben hast, deutet aber 
darauf hin, dass Du USB zum Verbinden benutzt hast.

Dann solltest Du das dem avrdude auch sagen (-P usb).

von Marius (Gast)


Lesenswert?

Ah, das ist richtig.
1
avrdude -pm2560 -cjtag2 -P usb -Uflash:w:Sensor.hex:a
2
3
avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
4
avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
5
avrdude: JTAGEN fuse disabled?
6
avrdude: initialization failed, rc=-1
7
         Double check connections and try again, or use -F to override
8
         this check.
9
10
11
avrdude done.  Thank you.

Das bringt mich schon mal einen Schritt weiter, aber leider immer noch 
nicht zum Ziel.

von Hc Zimmerer (mizch) (Gast)


Lesenswert?

Ist denn die JTAG-Fuse programmiert?

Falls ja, beschreibe mal Deine Hardware (Schaltplan inklusive des 
JTAG-Verbinders), hänge an Deine Kommandozeile ein -v an und poste das 
Ergebnis samt der kompletten Kommandozeile.

von Marius (Gast)


Lesenswert?

Sers!

Ich bin leider noch recht neu in der Thematik.
Daher hab ich das einfach aus den Eclipse Frontends für die AVR GCC 
Toolchain und avrdude heraus konfiguriert.
Der verbose-Output für avrdude ist:
1
% avrdude -pm2560 -cjtag2 -P usb -Uflash:w:Sensor.hex:a -v
2
3
avrdude: Version 5.10, compiled on Mar 23 2010 at 15:05:31
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/wishi/.avrduderc"
9
         User configuration file does not exist or is not a regular file, skipping
10
11
         Using Port                    : usb
12
         Using Programmer              : jtag2
13
avrdude: usbdev_open(): Found JTAGICE mkII, serno: 070000003585
14
JTAG ICE mkII sign-on message:
15
Communications protocol version: 1
16
M_MCU:
17
  boot-loader FW version:        255
18
  firmware version:              6.06
19
  hardware version:              0
20
S_MCU:
21
  boot-loader FW version:        255
22
  firmware version:              6.06
23
  hardware version:              1
24
Serial number:                   07:00:00:00:35:85
25
Device ID:                       JTAGICEmkII
26
         AVR Part                      : ATMEGA2560
27
         Chip Erase delay              : 9000 us
28
         PAGEL                         : PD7
29
         BS2                           : PA0
30
         RESET disposition             : dedicated
31
         RETRY pulse                   : SCK
32
         serial program mode           : yes
33
         parallel program mode         : yes
34
         Timeout                       : 200
35
         StabDelay                     : 100
36
         CmdexeDelay                   : 25
37
         SyncLoops                     : 32
38
         ByteDelay                     : 0
39
         PollIndex                     : 3
40
         PollValue                     : 0x53
41
         Memory Detail                 :
42
43
                                  Block Poll               Page                       Polled
44
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
45
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
46
           eeprom        65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
47
           flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
48
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
49
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
50
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
51
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
52
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
53
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
54
55
         Programmer Type : JTAGMKII
56
         Description     : Atmel JTAG ICE mkII
57
         M_MCU hardware version: 0
58
         M_MCU firmware version: 6.06
59
         S_MCU hardware version: 1
60
         S_MCU firmware version: 6.06
61
         Serial number:          07:00:00:00:35:85
62
         Vtarget         : 3.4 V
63
         JTAG clock      : 891.7 kHz (1.1 us)
64
65
avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
66
avrdude: retrying with external reset applied
67
avrdude: jtagmkII_program_enable(): bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
68
avrdude: JTAGEN fuse disabled?
69
avrdude: initialization failed, rc=-1
70
         Double check connections and try again, or use -F to override
71
         this check.
72
73
74
avrdude done.  Thank you.

Ich wüsste jetzt nicht was ich da setzen soll... meine Erfahrungen sind 
bisher mit AVR Studio: klicken, geht.

von Hc Zimmerer (mizch) (Gast)


Lesenswert?

Ich sehe da auf Anhieb keinen Fehler (was nicht viel heißen muss).

Das Nachfolgende kann ich nicht selbst ausprobieren, denn ich habe 
derzeit keine Hardware hier.  Also kann der eine oder andere Fehler drin 
sein.

Ruf' mal auf:
1
avrdude -pm2560 -cjtag2 -P usb -Uflash:w:Sensor.hex:a -t

(das sollte avrdude in den Terminal Mode versetzen)
und tippe dann ein:
1
dump efuse 0 0
2
dump hfuse 0 0
3
dump lfuse 0 0
4
quit

um den Stand der Fuses zu sehen.

von Hc Z. (mizch)


Lesenswert?

Oben ist ein Fehler (und ich kann es nicht nachkorrigieren - das Forum 
hatte mich ausgeloogt).  In der avrdude-Kommandozeile ist das 
„-Uflash:w:Sensor.hex:a“ zu viel.

von Marius (Gast)


Lesenswert?

Vielen Dank für die Hilfe.

Ich weiß nicht warum... aber es funktioniert jetzt :). Es hatte auch 
nichts mit den Fuses oder mit Pins zu tun, nichts mit udev oder Linux. 
Fnord.

avrdude hat die Fuses - wie es für mich aussieht - in der globalen 
config in /etc/avrdude.conf.

Ich denke ich muss mal zusehen, dass ich mir ein zuverlässigeres Board 
löte. :)

von Michael Z. (zellm)


Lesenswert?

Hallo,

ich glaube, ich werde gerade von einem Ähnlichen Problem geplagt.

Ich verwende Ubuntu 10.04, avrdude 5.10 und AVR8 Burn o Mat 2.1.1.

Folgende Zeilen Spuckt mein AVR8 Burn o Mat aus:
1
/usr/bin/avrdude -C /usr/local/etc/avrdude.conf -p m8 -P /dev/stk600 -c stk600  -U flash:r:/home/michael/test.h:a 
2
avrdude: ser_open(): can't set attributes for device "/dev/stk600": Inappropriate ioctl for device
Dazu Popt ein Fenster mit der Meldung: "Error reading Flash!" auf.

Den Burn o Mat starte ich mit sudo über das Terminal.

hat jemand eine Idee zur Behebung des Problems?

@ Marius: Konntest du die Ursache für deine Fehlfunktion nachträglich 
noch ermitteln?

Vielen Dank im Voraus

Gruß Michael

//EDIT: ich vergaß zu erwähnen, dass ich für mein STK600 folgende 
udevrule angelegt habe:
1
ATTR{idVendor}=="03eb", ATTR{idProduct}=="2106", GROUP="users", MODE="0777", NAME="stk600" # STK600

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.