www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik grasshopper Atmel buildroot 2.3.0 kompilieren avr32.ext2 make error 1


Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich versuche gerade, wie hier
Beitrag "AVR32 grasshopper patch für ATMEL buildroot 2.3.0"
beschrieben den buildroot zu kopilieren. Leider schlägt es fehl.

Leider weiß ich nicht, wo ich ansetzen muss zu suchen, da hier keine 
Fehlerbeschreibung ausgegeben wird, die mir hilft.

ein erneutes make brachte folgende Ausgabe:
$ make

Checking build system dependencies:
BUILDROOT_DL_DIR clean:        Ok
CC clean:          Ok
CXX clean:          Ok
CPP clean:          Ok
CFLAGS clean:          Ok
INCLUDES clean:          Ok
CXXFLAGS clean:          Ok
which installed:        Ok
sed works:          Ok (/bin/sed)
GNU make version '3.81':      Ok
C compiler '/usr/bin/gcc'
C compiler version '4.4.0':      Ok
C++ compiler '/usr/bin/g++'
C++ compiler version '4.4.0':      Ok
patch installed:        Ok
awk installed:          Ok
bison installed:        Ok
flex installed:          Ok
gettext installed:        Ok
makeinfo installed:        Ok
curses installed:        Ok
zlib installed:          Ok
lzo2 installed:          Ok
Build system dependencies:      Ok

rm -rf /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/buildroot-config
mkdir -p /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper
cp -dpRf package/config/buildroot-config /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/buildroot-config
rm -rf /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/usr/include /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/usr/lib/pkgconfig
find /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/usr/lib -name '*.a' -delete
find /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/lib -name '*.a' -delete
find /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/usr/lib -name '*.la' -delete
find /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/lib -name '*.la' -delete
test -x /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/build_avr32/staging_dir/sbin/avr32-linux-uclibc-ldconfig && /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/build_avr32/staging_dir/sbin/avr32-linux-uclibc-ldconfig -r /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root 2>/dev/null
make: *** [/home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/binaries/grasshopper/rootfs.avr32.ext2] Fehler 1

Kann mir jemand sagen, wo ich nach einer Lösung suchen sollte?
(ich nutze Arch-Linux, schließe deshalb einen Konflikt durch 
unterschiedliche Pfade nicht aus.)

Bereits vorgenommene Änderungen:
ich musste bereits in der
./buildroot-avr32-v2.3.0_patched_grasshopper/toolchain_build_avr32/uClib 
c-0.9.30/extra/scripts/unifdef.c
die Methode getline(void) in die Methode parseline(void) umbenennen, da 
ein Konflikt mit der lib vorlag.

Weiterhin musste ich per ln den /bin/install auf /usr/bin/install legen.

Es wäre lieb, wenn jemand eine Idee hat!
Danke
Markus

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du schon Probleme mit Arch-Linux erkannt hast, warum wechselst du 
nicht auf Ubuntu 8.04 (nicht die neueren Versionen nehmen, damit soll es 
auch Probleme geben) ? Das wird von Atmel so vorgeschlagen und hat bei 
mir immer gut funktioniert. Ok, ein paar Pakete müssen mit apt get 
nachgeladen werden, aber das sagt dir dann buildroot.

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, ich werds versuchen bzw. bin schon dabei, aber das kann doch 
nicht die Lösung sein?!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmel hat ihren buildroot auf die Belange von Ubuntu zugeschnitten. 
Sicher werden andere Pakete auch gehen, dann würde ich aber auf das 
upstream-buildroot ausweichen. Das kannst du auch für den GH nehmen. 
Musst im Kernel eben nur die Besonderheiten vom GH einstellen.

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe mir jetzt in einer VM Ubuntu aufgesetzt und werde es einfach 
einmal damit versuchen!

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, danke, das hat mit ubuntu soweit funktioniert.

Ich habe den Grasshopper mittels NFS gestartet und wollte nun das neue 
Image in den Flash schreiben. Leider wurde ich mit folgenden Problem 
konfrontiert:

root@grasshopper:/tmp# dd if=rootfs.avr32.jffs2-root of=/dev/mtdblock2 
bs=65535
dd: writing '/dev/mtdblock2': Operation not permitted
1+0 records in
0+0 records out

Ich weiß jedoch auch nicht, ob mein Vorgehen richtig ist.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bist du nach dieser Anleitung vorgegangen:
http://www.mikrocontroller.net/articles/AVR32_Grasshopper

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im Grunde: ja

Wenn cih die Alternative versuche nfs direkt aus uboot aufzurufen, 
passiert genau das:

Beitrag "Grasshopper AVR32: Kernel über NFS laden"

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mmh, da ich immer von SD-Karte boote, hab ich jetzt nicht die Erfahrung 
mit NFS.
Bei IC-Nova gibt es noch eine Anleitung: 
http://www.ic-board.de/data/manual/301000002E_HowT...
Ansonsten bei avrfreaks nachfragen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem verlinkten Thread wird eine Wiki-Seite angegeben, die folgende 
Angaben enthält:
Sind diese Werte richtig?
Ich dachte, das U-Boot-Environment käme direkt nach der 
U-Boot-Pratition?

0x000000 - 0x01FFFF    U-Boot partition. You'll need a JTAGICEmkII if 
you corrupt this
0x020000 - 0x7EFFFF   Linux root partition. (This is what we'll update 
with this guide)
0x7F0000 - 0x7FFFFF   U-Boot environment area. Handled by U-Boot.

ich habe im U-Boot einmal, bevor ich das nfs-System gestartet habe, 
"protect off all" eingegeben, es blieb jedoch ohne Ergebnis.
Entweder per
ICnova> nfs 11000000 192.168.2.102:/nfs/uImage
[...]
Filename '/nfs/uImage'.
Load address: 0x10000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #*** ERROR: Cannot umount

oder eben
ICnova> setenv bootargs root=nfs nfsroot=192.168.2.102:/nfs ip=192.168.2.5:192.168.2.102::255.255.255.0::eth0:none
ICnova> boot
[...]
root@grasshopper:/tmp# wget http://192.168.2.6/rootfs.avr32.ext2
Connecting to 192.168.2.6 (192.168.2.6:80)
rootfs.avr32.ext2    100% |*******************************| 15676k 00:00:00 ETA
root@grasshopper:/tmp# dd if=rootfs.avr32.ext2 of=/dev/mtdblock2 bs=65535
dd: writing '/dev/mtdblock2': Operation not permitted
1+0 records in
0+0 records out

Ich habe erstmal keine sinnvolle Idee, was ich unternehmen soll.
Danke trotzdem für die bisherige Hilfe ersteinmal!

EDIT: kurze Ergänzung zur Info:
root@grasshopper:/tmp# ls -la /dev/mtd*
brw-rw----    1 root     disk      31,   0 Dec 31 23:00 /dev/mtdblock0
brw-rw----    1 root     disk      31,   1 Dec 31 23:00 /dev/mtdblock1
brw-rw----    1 root     disk      31,   2 Dec 31 23:00 /dev/mtdblock2

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> "protect off all"
Damit wäre ich vorsichtig. Wenn du dir uboot überschreibst brauchst du 
einen JTAG-Brenner.Obwohl ich mir nicht sicher bin ob die Option "all" 
funktioniert, ich kenne nur "adr1" bis "adr2"
Die Werte von der avrfreaks-Wiki beziehen sich auf das NGW100.
Hier hat sich schnitzeltony über NFS ausgelassen:
Beitrag "NFS mit grasshopper / AVR32"
Evtl. auch bei dir ein Rechteproblem? Unter wen hast den build gebaut? 
Unter root?

Autor: Werner B. (werner-b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich dachte, das U-Boot-Environment käme direkt nach der
>U-Boot-Pratition?

Beim Grashopper - Ja.
Beim NGW100 - Nein, da ist das Environment am Ende des Flash.

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe immer versucht, alles als User zu kompilieren.
Die Dateien, die im nfs liegen, waren dann allerdings immer als root 
erstellt.

Ich versuche jetzt einmal, das ganze als root zu kompilieren. Wieso ist 
das eigentlich notwendig bzw. ist es das überhaupt?

kann mir jemand bitte die korrekten Einstellungen für den protect-Befehl 
im uboot aufschreiben, ehe ich hier noch etwas falsch mache? Wäre echt 
nett!

Danke schonmal!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Verwendung war mir schon klar, die Doku kannte ich auch, mir geht es 
nur um die richtige Adresse - wann der Schutz aufhören sollte, damit ich 
das Linux-Dateisystem einspielen kann, aber am uboot nichts kaputt 
machen kann.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich zitiere mal aus dem AVR32-Grasshopper-Artikel:

"Die 8 MiB Flash-Speicher auf dem Board sind in drei Bereiche 
aufgeteilt: In den untersten 128 kiB befindet sich der Bootloader 
U-Boot. Der Bereich von 128 - 192 kiB ist für die Umgebungsvariablen 
(environment) des Bootloaders reserviert. Das JFFS2-Dateisystem mit der 
Linuxumgebung (root file system) belegt den Rest."

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, danke, aber das ist ja dann noch lange nicht die Adresse des 
Speichers.
Meine Rechnung wäre
192*1024=196608 Byte
macht Hexadezimal 0x030000
Stimmt das?

Übrigens: altes Problem mit der per root kompilierten Umgebung.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also durch uboot belegt: 0x000000 - 0x02FFFF

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Version hat dein uboot?

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
U-Boot 1.3.2-g02c22ce0-dirty (May 14 2008 - 13:13:06)

kann ich vielleicht direkt aus uboot flashen?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist auch nicht die neueste Version von uboot. Ich meine, die letzte 
Version ist 1.3.4 .
Buildroot erstellt dir aber auch immer eine uboot.bin als aktuellste 
Version.
Es wäre gut, die erst mal zu flashen. Aber Vorsicht, wenn dabei etwas 
schief geht brauchst du einen JTAG. Die Anleitung dazu findest du in dem 
Artikel von diesem Forum.
Du kannst natürlich auch das JFFS2-Dateisystem mit uboot flashen. Auch 
die Anleitung dazu steht in dem Artikel.

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm, naja, uboot flashen - da traue ich mich nicht so richtig heran.

ich habe jetzt versucht per nfs das image in dn RAM zu laden
- per nfs wie vorher schon beschrieben -  ERROR: Cannot umount
- per loadb:
SEND-class command failed.
 Packets sent: 2
 Retransmissions: 11
 Timeouts: 0
 Damaged packets: 0
 Fatal Kermit Protocol Error: Too many retries
Ich gebe es bald auf - und das alles nur, auf der Suche nach einer 
Lösung, ein magic paket versenden zu können!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
geht das denn nicht mit dem build, der auf dem Gh drauf ist?

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wkenne keine Variante, wie ich das hinbekommen soll

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, verstehe ich jetzt nicht.Der GH wird doch schon fertig mit einem 
bootfähigen Linux- build geliefert. Wolltest du jetzt noch zusätzliche 
Pakete in deinen build einkompilieren?

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, genau, ich hatte versucht php einzukompilieren, weil das z.b. diese 
Funktion erfüllt.

Mir würde es schon reichen, wenn etherwake oder ähnliches auf dem 
grasshopper läuft.

Autor: Udo S. (udo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

> Markus Klemm (klemmi) wrote:
> Datum: 03.09.2009 00:53
> ICnova> setenv bootargs root=nfs nfsroot=192.168.2.102:/nfs
> ip=192.168.2.5:192.168.2.102::255.255.255.0::eth0:none
> ICnova> boot
> [...]
> root@grasshopper:......

Zu diesem Zeitpunkt hast du doch dein neues Filesystem über NFS 
gebootet.
Also das klappt doch!
Du könntest jetzt deine Anwendungen starten.

Aber wenn du dein neues Fs ins flash brennen willst, müsste die 
Befehlsfolge so aussehen:
 ICnova> setenv bootargs root=nfs nfsroot=192.168.2.102:/nfs ip=192.168.2.5:192.168.2.102::255.255.255.0::eth0:none 
 ICnova> protect off all      // <------ das fehlte hier an dieser Stelle
 ICnova> boot
.....
 root@grasshopper:/tmp# wget http://192.168.2.6/rootfs.avr32.ext2
.....
 root@grasshopper:/tmp# dd if=rootfs.avr32.ext2 of=/dev/mtdblock2 bs=65535

Nach dem nächsten Reset ist protect wieder ON.

Mit dem brennen des neuen Fs ins flash würde ich aber warten, bis alles 
so funktioniert, wie du dir das vorstellst.

Gruß
Udo

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, udo.
Genau so weit war ich schon.
Und dann habe ich versucht das ins Flash zu schreiben, mit folgenden, 
oben genannten, Ergebnis:
root@grasshopper:/tmp# dd if=rootfs.avr32.ext2 of=/dev/mtdblock2 bs=65535
dd: writing '/dev/mtdblock2': Operation not permitted
1+0 records in
0+0 records out

Autor: Udo S. (udo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> dd: writing '/dev/mtdblock2': Operation not permitted

Der Bereich war nicht freigegeben.
Schau dir die Befehlsfolge in meinem Post oben an.

Gruß
Udo

Autor: Markus K. (klemmi)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs extra noch einmal probiert und die Ausgabe in den Anhang 
gestellt.

Autor: Udo S. (udo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups, noch was vergessen.
So sollte es aussehen:
 root@grasshopper:/tmp# mount / -o remount,ro
 root@grasshopper:/tmp# dd if=rootfs.avr32.ext2 of=/dev/mtdblock2 bs=64k

Gruß
Udo

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm, das verstehe ich gerade nicht.
Wieso soll ich das root-fs als reedonly remounten?
Das liegt doch eh im nfs-Share oder ahbe ich jetzt einen Querdenker?

Autor: Udo S. (udo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne, sorry, du hast recht. Jetzt komm ich schon selbst durcheinander.
Irgendwas stimmt mit der Freigabe nicht. Evtl gibt uboot trotz "protect 
off all" nicht alles frei. Ich würde uboot mal updaten.

Gruß
Udo

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nach den ganzen Problemen, die ich beim falshen des normalen Linux schon 
habe, habe ich irgendwie Skrupel davor, an uboot heranzugehen - ist das 
wirklich die einzige Möglickeit?

Autor: Udo S. (udo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mir fällt sonst nichts mehr ein, sorry.
Evtl. noch "bs=65535" ändern in "bs=64k".

Gruß
Udo

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, sorry, auch das hat keinen Effekt.

Gibt es eine Möglichkeit Etherwake per Cross Compiler zu kompilieren und 
auf den grasshopper zu kopieren?

avr-libc, avr-gcc?

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.