www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik problem mit avrdude unter linux


Autor: µC-n00b (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: µC-n00b (Gast)
Datum:

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

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kernel ohne Parallelport-Support kompiliert?

Autor: µC-n00b (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: s hoffmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhardt (Gast)
Datum:

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

chmod 770 macht crwxrwx---

Autor: s hoffmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sicher?
bei "normalen" files steht das erste bit ja auch fuer executable!

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CONFIG_PPDEV=m/y sollte helfen.

Autor: µC-n00b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Option habe ich bereits drin:

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

Ich bin am verzweifeln.

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, versuchs doch mal mit sp12

Autor: µC-n00b (Gast)
Datum:

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

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
-c ??

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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: µC-n00b (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.
#

Autor: µC-n00b (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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".

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: µC-n00b (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wem "gehört" die ausführbare Datei des sp12?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhardt (Gast)
Datum:

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

Autor: µC-n00b (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Sebastian (Gast)
Datum:

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

seb

Autor: µC-n00b (Gast)
Datum:

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

Autor: mastercpp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Darf ich mal den Output von "dmesg | grep parport" sehen?

Autor: µC-n00b (Gast)
Datum:

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

Autor: mastercpp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> i2c-parport: attaching to parport0

Du solltest CONFIG_I2C_PARPORT ausschalten.

Autor: µC-n00b (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.