grasshopper Atmel buildroot 2.3.0 kompilieren avr32.ext2 make error 1

OP #1395343
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:
1
$ make
2

3
Checking build system dependencies:
4
BUILDROOT_DL_DIR clean:        Ok
5
CC clean:          Ok
6
CXX clean:          Ok
7
CPP clean:          Ok
8
CFLAGS clean:          Ok
9
INCLUDES clean:          Ok
10
CXXFLAGS clean:          Ok
11
which installed:        Ok
12
sed works:          Ok (/bin/sed)
13
GNU make version '3.81':      Ok
14
C compiler '/usr/bin/gcc'
15
C compiler version '4.4.0':      Ok
16
C++ compiler '/usr/bin/g++'
17
C++ compiler version '4.4.0':      Ok
18
patch installed:        Ok
19
awk installed:          Ok
20
bison installed:        Ok
21
flex installed:          Ok
22
gettext installed:        Ok
23
makeinfo installed:        Ok
24
curses installed:        Ok
25
zlib installed:          Ok
26
lzo2 installed:          Ok
27
Build system dependencies:      Ok
28

29
rm -rf /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/buildroot-config
30
mkdir -p /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper
31
cp -dpRf package/config/buildroot-config /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/buildroot-config
32
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
33
find /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/usr/lib -name '*.a' -delete
34
find /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/lib -name '*.a' -delete
35
find /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/usr/lib -name '*.la' -delete
36
find /home/klemmi/grasshopper/buildroot-avr32-v2.3.0_patched_grasshopper/project_build_avr32/grasshopper/root/lib -name '*.la' -delete
37
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
38
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
Gast #1395449
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.
Gast #1395487
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.
OP #1396269
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.
OP #1398437
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
1
ICnova> nfs 11000000 192.168.2.102:/nfs/uImage
2
[...]
3
Filename '/nfs/uImage'.
4
Load address: 0x10000000
5
Loading: #################################################################
6
         #################################################################
7
         #################################################################
8
         #################################################################
9
         #*** ERROR: Cannot umount

oder eben
1
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
2
ICnova> boot
3
[...]
4
root@grasshopper:/tmp# wget http://192.168.2.6/rootfs.avr32.ext2
5
Connecting to 192.168.2.6 (192.168.2.6:80)
6
rootfs.avr32.ext2    100% |*******************************| 15676k 00:00:00 ETA
7
root@grasshopper:/tmp# dd if=rootfs.avr32.ext2 of=/dev/mtdblock2 bs=65535
8
dd: writing '/dev/mtdblock2': Operation not permitted
9
1+0 records in
10
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:
1
root@grasshopper:/tmp# ls -la /dev/mtd*
2
brw-rw----    1 root     disk      31,   0 Dec 31 23:00 /dev/mtdblock0
3
brw-rw----    1 root     disk      31,   1 Dec 31 23:00 /dev/mtdblock1
4
brw-rw----    1 root     disk      31,   2 Dec 31 23:00 /dev/mtdblock2
Gast #1398547
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?
OP #1398915
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!
Gast #1399009
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."
Gast #1399114
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.
OP #1399162
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:
1
SEND-class command failed.
2
 Packets sent: 2
3
 Retransmissions: 11
4
 Timeouts: 0
5
 Damaged packets: 0
6
 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!
#1399591
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:
1
 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 
2
 ICnova> protect off all      // <------ das fehlte hier an dieser Stelle
3
 ICnova> boot
4
.....
5
 root@grasshopper:/tmp# wget http://192.168.2.6/rootfs.avr32.ext2
6
.....
7
 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
OP #1399628
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren