Forum: Mikrocontroller und Digitale Elektronik problem mit avrdude unter linux


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von µC-n00b (Gast)


Lesenswert?

Hallo!

Wenn ich mit avrdude ein Programm in den hochladen will, erhalte ich
die folgende Fehlermeldung:

$ avrdude -p m8 -c stk200 -E noreset,novcc -P /dev/parport0 -U
flash:w:main.hex
avrdude: can't claim device "/dev/parport0": No such device or
address

die Rechte von /dev/parport0 sind hoffentlich richtig:
crw-rw----  1 root users 99, 0 Feb 23  2004 /dev/parport0

Woran kann das liegen?

von Matthias (Gast)


Lesenswert?

Hi

versuch das ganze mal als root dann weißt du ob es an den Rechten
liegt. Obwohl die Gruppe "users" eigentlich Schreibrechte auf das
Device hat. Wenn du (bzw. dein account) also Mitglied in dieser Gruppe
bist sollte es funktionieren.

Matthias

von µC-n00b (Gast)


Lesenswert?

Als root geht's auch nicht.
Und ich bin Mitglied der Gruppe users.
Es funktioniert aber trotzem nicht.

von OldBug (Gast)


Lesenswert?

Kernel ohne Parallelport-Support kompiliert?

von µC-n00b (Gast)


Lesenswert?

Doch hab ich:

#
# Parallel port support
#
CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
CONFIG_PARPORT_PC_CML1=y
# CONFIG_PARPORT_SERIAL is not set
# CONFIG_PARPORT_OTHER is not set
CONFIG_PARPORT_1284=y

von s hoffmann (Gast)


Lesenswert?

setz mal /dev/parport0 auf crw-crw----
du kannst als normaler nutzer lesen und schreiben aber nicht (c)laimen
also chmod 770 /dev/parport0

von Thomas Burkhardt (Gast)


Lesenswert?

Es gibt kein c für claim ;->
Das c steht für characterdevice. crw-crw---- ist Humbug...

chmod 770 macht crwxrwx---

von s hoffmann (Gast)


Lesenswert?

sicher?
bei "normalen" files steht das erste bit ja auch fuer executable!

von Matthias (Gast)


Lesenswert?


von Thomas Burkhardt (Gast)


Lesenswert?

Sicher! :)

da vorne dran steht allenfalls ein d (Verzeichnis) oder halt ein c
(Zeichenorientiertes Gerät) bzw. b (Blockorientiertes Gerät).

Die Zugriffsrechte für "gewöhnliche" Dateien und Geräte (die eben
auch als Dateien im Dateisystem bestehen) sind gleich read, write,
execute. Vergessen wir mal an der Stelle Dinge wie Sticky...

Die "can't claim" Fehlermeldung kommt beim Öffnen der Datei. Dafür
gibt's kein extra Recht.

von Andreas S. (andreas) (Admin) Benutzerseite Flattr this


Lesenswert?

CONFIG_PPDEV=m/y sollte helfen.

von µC-n00b (Gast)


Lesenswert?

Diese Option habe ich bereits drin:

# cat /proc/config.gz | gunzip
...
CONFIG_PPDEV=y
...

Ich bin am verzweifeln.

von Thomas Burkhardt (Gast)


Lesenswert?

Hi, versuchs doch mal mit sp12

von µC-n00b (Gast)


Lesenswert?

mit -c sp12 geht's auch nicht. Auch nicht als root.

von Thomas Burkhardt (Gast)


Lesenswert?

-c ??

ist das eine Option vom avrdude?
ich meine den Programmer sp12...

von Sebastian (Gast)


Lesenswert?

Servus,

also die Meldung lautet:
avrdude: can't claim device "/dev/parport0": No such device or
address

Vielleicht ist der Parallelport nicht parport0 sondern parport1 oder
so. Das liegt einfach an der Einstellung im BIOS.

Kannst ja mal ne Textdatei mit cat an /dev/lp0 und so weiter schicken.
Da hast du die Addresse. Alternativ kannst du ja auch mal mit lp
probieren.

seb

von µC-n00b (Gast)


Lesenswert?

Scheinbar kann sp12 auf den Parallel-Port zugreifen, denn die
Reset-Leitung ist jetzt unter Strom. Aber programmieren geht auch
nicht.

Log:
# cp _sp12dev /etc
# export SP12=/etc
# sp12 -i
SP12 version 2.1.0 performing init...
Path to _sp12rc and _sp12dev: etc
Looking for parallel ports...
Calibrating delay loop. This may take some time...
Running in SP12 cable/dongle compatible mode.
Enabling AVR serial reading/programming...
Sp12 tried 33 times to find a working device.
No device connected.
The device code bytes 0,1,2: 0xff, 0xff, 0xff were read
from parallel port 0x378 and indicate the following:
You have connected an unknown device, or no device
The device was made by an unknown manufacturer



Nothing to do for sp12.
Writing 0000 (0, B00000000) to the parallel port data bits.
Sp12 was active for 2.77 seconds.
# sp12 -t
SP12 version 2.1.0 performing init...
Path to _sp12rc and _sp12dev: etc
Running in SP12 cable/dongle compatible mode.
(-t)iming check, about 10 seconds
oooooooooooooooooooooooooooooooooooooooooooooooooo STOP
Writing 0000 (0, B00000000) to the parallel port data bits.
Sp12 was active for 10.11 seconds.
# sp12 -wpf ../avr/main.hex
SP12 version 2.1.0 performing init...
Path to _sp12rc and _sp12dev: etc
Running in SP12 cable/dongle compatible mode.
Enabling AVR serial reading/programming...
Sp12 tried 33 times to find a working device.
No device connected.
The device code bytes 0,1,2: 0xff, 0xff, 0xff were read
from parallel port 0x378 and indicate the following:
You have connected an unknown device, or no device
The device was made by an unknown manufacturer



Nothing to do for sp12.
Writing 0000 (0, B00000000) to the parallel port data bits.
Sp12 was active for 0.18 seconds.
#

von µC-n00b (Gast)


Lesenswert?

Ich habe 4 parport und lp devices durchprobiert (0-3).
Eergebnis:
cat meint bei parport# "write eror: Invalid argument" und bei lp#
"Kein passendes Ger��t bzw. keine passende Adresse
gefunden".

von Thomas Burkhardt (Gast)


Lesenswert?

Hi,

>Running in SP12 cable/dongle compatible mode

Du musst noch den richtigen Dongle auswählen. Da du im Posting zum
avrdude was von STK200 stehen hattest, nehme ich an, dass du einen
derartigen "Dongle" verwendest. Das muss dem sp12 gesagt werden :)

von µC-n00b (Gast)


Lesenswert?

Aha, nachdem ich KANDA auf 1 in _sp12rc gesetzt habe funktionierts.
Allerdings nur als root. Als User kommt nur "ioperm error at 0x278:
Operation not permitted"

von Thomas Burkhardt (Gast)


Lesenswert?

wem "gehört" die ausführbare Datei des sp12?

von Sebastian (Gast)


Lesenswert?

Hallo,

so wie das ausschaut ist das ein Problem mit der Addresse.

>The device code bytes 0,1,2: 0xff, 0xff, 0xff were read
>from parallel port 0x378 and indicate the following:
>You have connected an unknown device, or no device

>Als User kommt nur "ioperm error at 0x278:
>Operation not permitted"

Oben steht 0x378 und unten versucht er auf 0x278 zuzugreifen. Schon
etwas komisch wenn "cat textdatei > /dev/parport#" nich geht. Dann
existiert eigentlich das Device nicht wirklich. Funktioniert "cat
textdatei > /dev/null"? Wenn nich ist irgendwas nicht mehr so wie es
sein sollte.

Seb

von Thomas Burkhardt (Gast)


Lesenswert?

Hi, es geht ja nunmehr offensichtlich mit dem sp12 als root auf 0x378.
Das ist ja Standard für die LPT1. Der Rechner hat also offenbar nen
parallelen Anschluss :)
Leuchtet mir aber nicht ein, warum es beim Betrieb als User versuchen
sollte plötzlich nen anderen Port zu verwenden...

von Sebastian (Gast)


Lesenswert?

Nunja ich hab hier mehrere Linuxrechner. Die /dev/lp0 muss nicht auf die
Adresse 0x278 zeigen. Wie gesagt erstma rausfinden welcher Link auf den
Parport zeigt. Dann findet sich der Rest.

seb

von Thomas Burkhardt (Gast)


Lesenswert?

hab' ja nicht behauptet, dass lp0 auf 0x278 zeigen würde... Aber die
Programmer gehen eh nicht über /dev/lp

von µC-n00b (Gast)


Lesenswert?

Heute morgen habe ich mal die Konfigurationsdateien (_sp12*) von /etc in
mein Homevertzeichnis verlegt und siehe da: Es geht auch als User (über
0x378).

> wem "gehört" die ausführbare Datei des sp12?
Wie es in readme.linux steht:
-r-sr-xr-x  1 root root 52376 Oct 15 00:11 /usr/local/bin/sp12

> Funktioniert "cat textdatei > /dev/null"?
Ja. Nach /dev/null und anderen Devices - außer parport und lp - kann
ich "catten".

Sehr mysteriös...

von Sebastian (Gast)


Lesenswert?

Das ist in der Tat misteriös. Wenigstens als root sollte man Texte
drucken können. Naja Hauptsache es läuft.

seb

von µC-n00b (Gast)


Lesenswert?

Hätte ich keinen USB-Drucker hätte ich das Problem vielleicht schon
früher bemerkt.

von mastercpp (Gast)


Lesenswert?

Darf ich mal den Output von "dmesg | grep parport" sehen?

von µC-n00b (Gast)


Lesenswert?

# dmesg | grep parport
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,EPP]
parport0: irq 7 detected
i2c-parport: attaching to parport0

von mastercpp (Gast)


Lesenswert?

> i2c-parport: attaching to parport0

Du solltest CONFIG_I2C_PARPORT ausschalten.

von µC-n00b (Gast)


Lesenswert?

Jaa! Jetzt funktioniert avrdude problemlos. Danke! An alle.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.