PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6: Linux make geht nicht



TedRobby
08.08.2007, 16:48
Hallo,

benutze Linux und kompiliere munter für meinen asuro. Wenn ich die RP6 Examles kompiliere, dann erhalte ich folgende Meldung:

-s-c-h-n-i-p-p--------------------

ubuntu@ubuntu-desktop:~/RP6Loader/RP6Examples/RP6BASE_EXAMPLES/Example_01_LEDs$ make

-------- begin --------
avr-gcc (GCC) 4.1.0
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

make: *** Keine Regel vorhanden, um das Target »RP6Base_LEDs.elf«,
benötigt von »elf«, zu erstellen. Schluss.

-s-c-h-n-i-p-p---

Hat jemand eine Idee? Steh da, wie der Ochs vorm Berg.
8-[

TedRobby
10.08.2007, 15:37
Hmm, komisch.. benutzt denn keiner Linux zum kompilieren? :-s
Denke nämlich, dass das makefile an sich Schuld an der Fehlermeldung ist.

Habe z.B. versucht, das HEX File des Selftest zu kompilieren.
Dazu bin ich als ROOT ins entsprechende Verzeichnis und habe make aufgerufen.

Es kann sein, dass das Problem mit der shell zu tun hat, die Ubuntu benutzt: nämlich dash anstatt der (alten, langsamen aber häufig benutzten) bash.

Es währe also gut die make files anzupassen und anstatt shell= sh (was den symbolisch Link benutz, der bei Ubuntu auf dash steht) shell = bash zu verwenden...

Wo müsste ich denn die makefile verändern?

Alternativ könnte mal
ls -la /bin/sh
sudo ln -sf /bin/bash /bin/sh
anwenden (http://www.dream-multimedia-tv.de/board/thread.php?threadid=2774&threadview=1&hilight=&hilightuser=0&sid=b49c1b38ae65b04681b571207636fa04)

Bin mir aber der weiteren Nebenwirkungen nicht bewußt!

TedRobby
10.08.2007, 15:47
Oh, noch was vergessen:
Ich benutze Ubuntu, Feisty mit gcc version 4.1.0

-s-c-h-n-i-p-p-
Using built-in specs.
Target: avr
Configured with: ../build-tree/gcc-4.1.0/configure -v --enable-languages=c,c++ --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=i486-linux-gnu --host=i486-linux-gnu --target=avr
Thread model: single
gcc version 4.1.0
-s-c-h-n-i-p-p-

Danke

roboterheld
10.08.2007, 16:09
lol... mit windows wäre es nicht passiert, funktioniert ganz toll mit dem rp6

SlyD
10.08.2007, 17:47
Hallo TedRobby,

habe ja schon auf Deine Mail geantwortet, aber hier nochmal für alle:


Hast Du den GCC selbst eingerichtet oder ist es nur das Ubuntu Paket?
Zum aktuellen Ubuntu Paket kann ich nix sagen - das habe ich nur vor ein paar Monaten mal getestet und da hats gar nicht geklappt damit. Also bin ich gleich zum selbst übersetzten GCC mit diversen Patches übergegangen.
(Das es mit dem Standard Paket i.d.R. nicht klappt, steht aber auch in der Anleitung!)


--> Musst es also schon selbst übersetzen anhand der ausführlichen Anleitung! Geht auch einfach mit dem automatischen build script was dabei ist.
Wenn Du die Schritte in der Anleitung genau befolgst und alle sonstigen benötigten Pakete installiert sind (--> texinfo ) sollte es mit dem Script klappen.
Unter Ubuntu musst Du es evtl. folgendermaßen aufrufen:


chmod -x ./avrgcc_build_and_install.sh
sudo bash ./avrgcc_build_and_install.sh


Und wenn alles geklappt hat mit


sudo rm -rf /usr/local/avr/source /usr/local/avr/build


die ganzen temporären Dateien löschen die während des Übersetzens angefallen sind.
Dann den Pfad setzen, neustarten, fertig.

Wenn es mit dem Skript nicht klappt, kannst Du das immer noch manuell machen wie es auch in der Anleitung im Abschnitt danach beschrieben ist.


Es werden auch einige z.T. wichtige Patches von WinAVR eingespielt damit der GCC auch unter Linux zu dem in WinAVR kompatibel ist.

Mit dabei ist auch eine schönere Ausgabe der Programmgröße
( z.B.
AVR Memory Usage
----------------
Device: atmega32

Program: 6750 bytes (20.6% Full)
(.text + .data + .bootloader)

Data: 152 bytes (7.4% Full)
(.data + .bss + .noinit)

)
und die Binär Darstellung (0b010101) für Zahlen.
Lohnt also sowieso nicht das Ubuntu Paket zu nehmen!


MfG,
SlyD

TedRobby
10.08.2007, 22:03
Hallo SlyD,

danke für deine Antwort. Habe nochmal nach dem Skript kompiliert. Hat auch bestens geklappt, Version ist auch die richtige. Leider immer noch die Fehlermeldung:

make: *** Keine Regel vorhanden, um das Target »RP6Base_SELFTEST.elf«,
benötigt von »elf«, zu erstellen. Schluss.

Komisch, oder...

Gruss
TedRobby :(

SlyD
11.08.2007, 12:54
Oh sorry - da war ein ganz ganz dummer Tippfehler in den Makefiles.

RP6lib
vs.
RP6Lib

#-o

Das hatte ich vor ein paar Wochen mal abgeändert, aber nicht mit in die Makefiles übernommen...

Also probiers mal hiermit:
http://www.arexx.com/rp6/downloads/RP6Examples_20070811.zip

Damit sollte es mit dem selbst übersetzten avr-gcc auf jeden Fall funktionieren!

MfG,
SlyD

TedRobby
12.08.2007, 18:50
Danke, es funktioniert.. mit diesen makefile geht es bestens...

=D>