Moin Leute,
ich bin Linux und Grasshopper Anfänger und habe ein kleines Problem.
Nachdem ich jetzt ein funktionierendes Ubuntu 8.04 habe und die
erforderlichen Pakete installiert habe kann ich make ausführen. Dabei
verwende ich Buildroot 2.3.0 mit dem Patch aus dem zugehörigen Thread.
Allerdings bricht make wie folgt ab:
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.2.4': Ok
C++ compiler '/usr/bin/g++'
C++ compiler version '4.2.4': Ok
patch installed: FALSE
You must install 'patch' on your build machine
Welchen patch muss ich denn hier installieren??
Vielen Dank
Dirk
Wenn du schon dabei bist, solltest du auch direkt alle anderen wichtigen
Pakete prüfen, die fürs Buildroot installiert sein müssen (siehe
Dokumentation).
MfG
Marius
Autsch - Das war ja sehr einfach ;-)
Jetzt klappt es, patch und gettest waren nicht auf der "HowTo-Liste".
Leider kann ich momentan die MPFR Libary nicht runterladen. Kann jemand
die mpfr-2.3.0.tar.bz2 hier reinstellen?
Und reicht es wenn ich die Datei vor dem nächstem make in das
buildroot/dl Verzeichnis stecke?
Vielen Dank
Dirk
Vielen Dank, das hat geholfen.
Jetzt ist er nach über einer Stunde gerödel ausgestiegen, weil ihm die
termcap-Libary fehlt :-(
configure: error: no termcap library found
make[2]: *** [configure-gdb] Fehler 1
Wenn ich es richtig recherchiert habe sollte es zu beheben sein indem
ich emacs installiere - mal sehen
Nö!
Ich habe zwar die termcap-1.3.1.tar.gz, aber wohin muss ich die
entpacken?
Das wird wohl noch ein langer Weg bis ich das alles überblicke...
Wichtig ist, daß du nicht nur irgendwelche Bibliotheken installiert
hast, sondern auch die dazugehörigen "development" - Pakete. Diese
enthalten die Header-Dateien zu der Bibliothek und meistens auch eine
statische Ausgabe der Bibliothek. Insbesondere die Header-Dateien
brauchst du, um auf deinem System eigene Programme kompilieren zu
können, die diese Bibliotheken nutzen. Die dev-Pakete sind meistens
nicht von Haus aus installiert, da fertig kompilierte Programme diese
nicht brauchen.
Meistens enden die Pakete mit -dev oder -devel.
Ok, wer lesen kann ist im Vorteil.
Wenn man die Datei entpackt kann man auch das Readme und die
Installationsanleitung für die Bibliothek lesen und schon funktioniert
es mit der Installation ;-)
Jetzt rödelt make wieder weiter ------- das dauert ja ewig!
Ich dokumentiere meinen Weg mal weiter, vielleicht hilft es ja
irgendwann mal jemanden:
Jetzt fehlte noch dies:
http://zlib.net/
compr_lzo.c:29:23: Fehler: lzo/lzo1x.h: No such file or directory
compr_lzo.c: In Funktion »jffs2_lzo_cmpr«:
compr_lzo.c:54: Warnung: Implizite Deklaration der Funktion
»lzo1x_999_compress«
compr_lzo.c:56: Fehler: »LZO_E_OK« nicht deklariert (erste Benutzung in
dieser Funktion)
compr_lzo.c:56: Fehler: (Jeder nicht deklarierte Bezeichner wird nur
einmal aufgeführt
compr_lzo.c:56: Fehler: für jede Funktion in der er auftritt.)
compr_lzo.c: In Funktion »jffs2_lzo_decompress«:
compr_lzo.c:74: Warnung: Implizite Deklaration der Funktion
»lzo1x_decompress_safe«
compr_lzo.c:76: Fehler: »LZO_E_OK« nicht deklariert (erste Benutzung in
dieser Funktion)
compr_lzo.c: In Funktion »jffs2_lzo_init«:
compr_lzo.c:95: Fehler: »LZO1X_999_MEM_COMPRESS« nicht deklariert (erste
Benutzung in dieser Funktion)
Gibt es eigentlich irgendwo eine vollständige Liste der nötigen Pakete?
Die Angaben im HowTo sind ja nicht wirklich vollständig.
Bis dann
Dirk
Es fehlte nicht die zlib, sondern:
http://www.oberhumer.com/opensource/lzo/download/
Allerdings gibt es jetzt wieder einen anderen Fehler:
collect2: ld gab 1 als Ende-Status zurück
make[1]: *** [mkfs.jffs2] Fehler 1
Damit kann ich bisher nichts anfangen, mal sehen wer schneller ist Ihr
oder ich ;-)
Hallo,
nach der Kubuntu-Installation (8.04) habe ich noch die folgenden Pakete
nachinstalliert um alles korrekt übersetzen zu können:
build-essential
flex
bison
gettext
libtool
texinfo
autoconf
autoconf2.13
automake
libncurses-dev
zlib1g-dev
libacl1-dev
liblzo2-dev
Ich hoffe es hilft weiter.
Sebastian
Die Liste der Pakete, die du für einen erfolgreichen Durchlauf vom
buildroot brauchst, sollten in der Dokumentation vom buildroot drin
stehen.
Bei www.atmel.no/buildroot gibts die Liste auf jeden Fall, aber derzeit
siehts irgendwie danach aus, als wäre der Server down.
Wenn du alles installiert hast und es dennoch nicht klappt, lösch
einfach mal das Buildroot-Verzeichnis (dl-Unterverzeichnis vorher
sichern erspart erneuetes Downloaden). Bei mir hats unter Kubuntu 8.04
auf jedenfall einwandfrei gelaufen.
MfG
Marius
Ja der norwegische Atmel Server ist seit einiger Zeit offline und auch
die AVRfreaks-Seite funktioniert nicht mehr.
Wenn ich es richtig sehe entsteht das Betriebssystem im Ordner
project_build_avr32/grasshopper/? Das werde ich mal löschen, wenn ich
das ganze buildroot-Verzeichniss lösche kann ich ja auch kein make mehr
ausführen.
Die Lösung lag auf dem Atmel.no Server, dank Google-Cache funktioniert
es jetzt :-)
1
Undefined reference to `crc32_table'
2
3
The user experiences, when compiling mkfs.jffs2, that it fails with errors about undefined reference to crc32_table. The error message is something similar to:
4
5
mtd_orig/crc32.h:15: undefined reference to 'crc32_table'
6
mtd_orig/crc32.h:15: undefined reference to 'crc32_table'
7
mtd_orig/crc32.h:15: undefined reference to `crc32_table'
8
mtd_orig/crc32.h:15: undefined reference to `crc32_table'
9
mtd_orig/crc32.h:15: undefined reference to `crc32_table'
10
mkfs.jffs2.o: mtd_orig/crc32.h:15: more undefined references
11
to `crc32_table' follow
12
mkfs.jffs2.o: In function `write_regular_file':
13
14
Solution is to delete the directory toolchain_build_avr32_nofpu/mtd_orig and type make to continue the build process.
15
16
If the user experiences the same problem again, contact the support line.
So weiter geht's:
NFS läuft und ich kann mir Dateien ins RAM kopieren, nur welche?
Im buildroot-Verzeichnis habe ich:
rootfs.avr32.jffs2-root
rootfs.avr32.ext2
Ich tippe ja auf die Erste, aber da es ja nur einen Versuch gibt das
System neu zu flashen (ohne JTAG) sollte nun ja nichts schief gehen.
Wenn ich die Datei in /tmp habe dann mache ich mich zum Superuser und
gebe noch:
mount -o remount,ro /
dd if=/tmp/DATEINAME of=/dev/mtdblock2 bs=65535
ein und dann sollte ich ein neues System haben, oder???
Vielen Dank
Dirk
Hallo
Was du vorhast ist "relativ" gefährlich.
Wenn du dich vertippst überschreibst du ev den Bootloader. Sehr
ungünstig.
Schau dir lieber im Wiki an wie man über NFS bootet.
Du mountest dann dein "ext2" Datei in das NFS Verzeichniss und gibts im
U-Boot die richtigen Befehle ein. (Auswendig weiß ich die jetzt nicht,
findest du aber im Wiki nfs 0x11000000 severip:/nfs/boot/uImage)
Dann startet dein Kernel aus dem Ram und es kann nichts passieren.
Was du vorhast kannst du aber auch bequemer und sicherer direkt aus
U-Boot heraus machen. Die "jffs2" Datei (ist das Joliet FLASH File
System) in dein Flash schreiben (die korekkten Addressen findest du auch
im Wiki) und damit starten. Ev müssen die bootcmds im U-Boot geändert
werden.
PS: ext2 ist ein Dateisystem genauso wie jffs2 eines ist. Unterscheidet
sich im Aufbau und in der Verwendung. Auch hier google.
Sorry für die recht spärliche Antwort, aber ich hoffe es zeigt dir
erstmal den Weg.
Michael
Vielen Dank Michael,
das hilft mir weiter. Ich werde mir das U-Boot mal näher anschauen. Wenn
ich über NFS boote, dann habe ich aber mein Betriebssystem nicht im
Flash und müsste dann ja das gleiche machen wie beim booten aus dem
Flash.
Wirklich sicherer ist dann ja nur wenn ich mit dem Unterseeboot mein
Flash beschreibe. Werde ich morgen mal testen.
Welche Wiki meinst Du eigentlich? Ich habe keine zum Grasshopper oder
zum NFS gefunden? Stehe ich mal wieder auf dem Schlauch wie beim Patch?
Bis morgen
Dirk
So, hier noch eine Abschlussbemerkung:
Das booten über NFS mit U-Boot wie im Artikel beschrieben klappt
einwandfrei.
Allerdings finde ich das es komplizierter beschrieben ist als es
wirklich ist.
Meine Kurzfassung:
mount -o loop rootfs.avr32.ext2 /mnt auf dem Server durchführen
/mnt für NFS freigeben
Auf dem Grashüpfer den Bootvorgang abbrechen und folgendes machen:
set ipaddr xxx.xxx.xxx.xxx
set serverip xxx.xxx.xxx.yyy
nfs 11000000 xxx.xxx.xxx.yyy:/mnt/boot/uImage
bootm
und schon läuft es :-)
Vielen Dank an alle, jetzt folgen Tastatur und Display...
Genau ist richtig so:
mit root=nfs nfsroot=10.10.10.1:/nfs/root holst du dir halt noch dein
komplettest Filesystem via NFS, so wie du es beschreibst bootest du nur
den Kernel, neue Prorgramme die du mit buildroot einbaust erscheinen so
nicht, sondern müssen trotzdem ins Flash geschrieben werden. Mountest du
das RootFS aber direkt über NFS hast du Zugriff auf alle Datein vom PC
und vom Grasshopper aus, ganz praktisch um mal eine Datei hin und her zu
kopieren.
Michael
Genau,
Du kannst dir übrigens die bootargs speichern
mit saveenv(?) dann bootet er automatisch hoch bzw mit dem befehl
"bootm", das andere kannst dir ja aufschreiben, für spätereinmal (und
hier posten weil ich meine versehntlich überschrieben hab ohne
aufzuschreiben :D)
Schöne Grüße
Michael