Hi Linuxianer, ich bin Neuling in der Linux/AVR32 Welt und habe zu Weihnachten eine ICnova OEM+ mit ADB1000 bekommen und versuche seitdem diese per NFS zu booten. Mein Board ist über einen Router (ohne DHCP) mit dem PC verbunden auf dem Ubunut 8.04 läuft. Ich habe uf meinem PC Buildroot durchlaufen lassen. In /etc/network/interfaces habe ich "auto eth0" auskommentiert. Danach habe ich den nfs-kernel-server mit den Daten aus dem HOW-TO PDF gefüttert, uImage und ext2 aus dem Ordner ICnova/binaries/oemplus gemountet. Danach habe ich alle Parameter wie im HOW-TO beschreiben eingestellt. Also: setenv ipaddr 192.168.2.10 setenv serverip 192.168.2.4 setenv bootcmd nfs 10400000 $(serverip):/home/marskopf/ICnova/binaries/oemplus/uImage;bootm setenv bootargs nfsroot=$(serverip):/home/marskopf/ICnova/binaries/oemplus setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip)::255.255.255.0::eth0:none Anschliessend habe ich alles gesichert mit saveenv und per boot gebootet. Allerdings bekomme ich jetzt folgende Fehlermeldung beim booten hier der Ausschnitt: IP-Config: Complete: device=eth0, addr=192.168.2.10, mask=255.255.255.0, gw=255.255.255.255, host=192.168.2.10, domain=, nis-domain=(none), bootserver=192.168.2.4, rootserver=192.168.2.4, rootpath= Looking up port of RPC 100003/2 on 192.168.2.4 eth0: link up (100/Full) Looking up port of RPC 100005/1 on 192.168.2.4 VFS: Mounted root (nfs filesystem) on device 0:12. Freeing init memory: 80K (90000000 - 90014000) Warning: unable to open an initial console. Kernel panic - not syncing: No init found. Try passing init= option to kernel. mfg Willi
Willi A. schrieb: > setenv Längere Einträge solltest du mit askenv eintragen, da u-boot mit setenv bei längeren Einträgen Probleme hat. > $(serverip) Ich bin mir nicht sicher, ob $(argument) von u-boot unterstützt wird. Wenn du mit festen IP-Adressen arbeitest, trag die doch ein. > Damit beim Booten über NFS die Einstellungen des Bootloaders nicht > überschrieben werden, sollte vor dem Kompilieren auf dem PC in der Datei > ICnova/project_build_avr32/oem/root/etc/network/interfaces die Zeile > "auto eth0" auskommentiert werden. Hast du das gemacht?
@...: > Damit beim Booten über NFS die Einstellungen des Bootloaders nicht > überschrieben werden, sollte vor dem Kompilieren auf dem PC in der Datei > ICnova/project_build_avr32/oem/root/etc/network/interfaces die Zeile > "auto eth0" auskommentiert werden. Ja, "auto eth0" habe ich auskommentiert und buildroot durchlaufen lassen. > $(serverip) So steht es hier: http://www.ic-board.de/data/manual/301000002E_HowTo_ICnova_ADB1000.pdf Und dann wird das stimmten denke ich. Ich habe alles so gemacht wie in dieser Anleitung beschrieben. Und eigentlich funktioniert es ja auch er findet schienbar das Image nur irgend was mit init nicht. Liege ich da richtig? Deshalb wird setenv auch funktioniert haben. > setenv Wie würde der Syntax aussehen wenn ich statt setenv mit askenv arbeite. mfg
> Wie würde der Syntax aussehen wenn ich statt setenv mit askenv arbeite. z.B: U-Boot> askenv bootcmd Please enter 'bootcmd': nfs 10400000 $(serverip):/home/marskopf/ICnova/binaries/oemplus/uImage;bootm dito mit bootargs. > Ja, "auto eth0" habe ich auskommentiert und buildroot durchlaufen > lassen. Dann wird buildroot es evtl. wieder geändert haben. Du musst das, nachdem du buildroot hast durchlaufen lassen, ändern. > Ich bin mir nicht sicher, ob $(argument) von u-boot unterstützt wird. sorry, da habe ich mich vertan, u-boot kann das schon, aber der Kernel nicht. Ich zitiere mal aus dem anderen Thread: "Natürlich kann man bootargs nicht aus Platzhaltern zusammen setzen: root=nfs nfsroot=$(serverip):$(prjpath)/rootfs ip=$(ipaddr):$(serverip)::$(netmask)::eth0:off denn die kann nur das UBoot auseinandernehmen. Dem Kernel stehen die nicht zur Verfügung!"
Erstmal danke für den Syntax werde mich gleich daran setzen. >Dann wird buildroot es evtl. wieder geändert haben. Du musst das, >nachdem du buildroot hast durchlaufen lassen, ändern. Nein habe extra nachgesehen ist auskommentiert. Ich werde mein erfolg/miserfolg damit dann gleich morgen posten. Danke. PS: Jetzt hätte ich noh zwei grundlegende Fragen zum einen was ist die Datei uImage was befindet sich in ihr - das Kernel oder was. Und zum anderen die Datei ....ext2 ist ein Image der kompletten Dateisrtuktur spirich das Linuxsystem oder wie. mfg
Ich bin verwirrt: Also das bootcmd habe ich nun so eingegeben wie du es beschrieben hast aber bei denn bootargs bin ich verwirrt. Stimmt das, sieht das dann so aus: Please enter 'bootargs': $(bootargs) ip=$(ipaddr):$(serverip)::255.255.255.0::eth0:none Ehmals bei mir: setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip)::255.255.255.0::eth0:none Und was mache ich dann hiermit: setenv bootargs nfsroot=$(serverip):/home/marskopf/ICnova/binaries/oemplus
ok, ich hab die Vorgaben von icnova mal gerade auf meinem NGW eingegeben. Das Funktioniert so, wie sie es schreiben. Die Variablen werden durch die Vorgaben ersetzt. Naja, warum einfach, wenns auch kompliziert geht... Fazit: müsste so gehen wie icnova das schreibt, allerdings müssen IP, Server-IP ect. vorher eingegeben werden.
das müsstest du aber mit printenv überprüfen bzw. das Ergebnis dann sehen können.
... schrieb: >> Ja, "auto eth0" habe ich auskommentiert und buildroot durchlaufen >> lassen. > Dann wird buildroot es evtl. wieder geändert haben. Du musst das, > nachdem du buildroot hast durchlaufen lassen, ändern. Hast du das auch mal überprüft?
@...: Das es so geht zeigt ja ganz oben der Auswurf der ICnova aus meiner Konsole nur dann wirft er ja das hier aus: Freeing init memory: 80K (90000000 - 90014000) Warning: unable to open an initial console. Kernel panic - not syncing: No init found. Try passing init= option to kernel. Demnach findet er irgend ein init nicht was immer das heisst. Also findet ICnova den NFS Server, lädt uÍmage und findet in diesem dann kein Einstieg oder wie. Mit was hat das zutun. Versteh ich nicht bin völlig neu in dieser Welt. Ja, auto eth0 ist vor und nach dem durchlaufen auskommentiert. Also in dieser Form: #auto eth0 mfg
Ok, ich hab das NFS mal aus dem Fenster geworfen und bin auf tftp umgestiegen. Funktioniert soweit er lädt das Kernelimage. Aber immer noch das init Problem. Aber des auto eth0 ist auskommentiert vor und nach sudo make. Kann das daran liegen das ich buildroot mit sudo make durchlaufen lassen habe. Allerdings ging einfach nur make nicht da hat er abgebrochen und permission diened oder so gesagt. mfg
ok, ich bin immer als root auf dem Host angemeldet. Lösch doch einfach mal die von Buildroot erstellten Images und lass es neu bauen. Vielleicht hat sich Buildroot irgendwo verschluckt. Hat dein Image eigentlich unter sbin die Datei "init" ?
Du bist immer als root angemeldet ok. Ich dachte nur weil Ulrich hier Beitrag "Re: AP7000 und ICnova ADB1000: Bisschen wenig?" geschrieben hatte man solle buildroot nicht mit root-Rechten laufen lassen. Ja, habe unter ICnova/project_build_avr32/oemplus/root/sbin die Datei init. Gut dann lösche ich denn ICnova Ordner mal komplett und starte buildroot nocheinmal von vorn. Das kann dann einige Zeit dauern.
Willi A. schrieb: > a, habe unter ICnova/project_build_avr32/oemplus/root/sbin die Datei > init. mmh, ich meinte in deinem fertigen Build, das was du booten willst. Unter /sbin .
Das musst du mir jetzt genauer erklären in welcher Datei in uImage oder der ext2 Datei das von buildroot erzeugt wird und wie komme ich dann daran also wie kann ich dann da hinein kucken. uImage ist ja das was sich die ICnova per tftp holt, oder?
Nein, ist klar, in uImage und die ext2 Datei kannst du nicht rein schauen, das sind Binärdateien. Deshalb aktiviere ich auch immer in "make menuconfig" unter "Target filesystem options"/ "tar the root filesystem"/ "gzip". In die dann zusätzlich erzeugte .tar.gz Datei kannst du dann rein schauen.
Ah ok. Diese Option habe ich noch gar nicht gesehen. Werde sie aktivieren und das build rennen lassen. Melde mich dann wieder.
Also hab mal nachgesehen und eine Datei init ist neben vielen anderen mit einer Größe von 0Byte in sbin vorhanden.
> Größe von 0Byte das ist ok, es ist nur ein Link. Ok, wenn es mit dem neuen Build auch nicht läuft, weiß ich auch nicht mehr weiter. Versuch mal die Anleitung aus dem Forum hier: http://www.mikrocontroller.net/articles/AVR32_Grasshopper
Ok. Ich teste das mal aus. Und melde mich dann wieder. Kann sich das System im Flash eigentlich durch unkontrolliertest reseten selbst verletzten sprich können einzelne Speicherzellen gelöscht werden. Mfg
Normalerweise ist das Flash protected. Zum flashen eines neuen Image mußt du es erst freigeben. Insofern kann ich mir nicht vorstellen, dass Daten im Flash durch das System verändert werden können.
Also ich hab mein OEMplus Board nun eine Zeit lang Ruhen lassen in der Hoffnung das wenn ich mich irgendwann wieder ran setzte mir ein Licht aufgeht (oder meinem Kernel) und ich dann nicht mehr den zu lesen bekomme: VFS: Mounted root (nfs filesystem) on device 0:12. Freeing init memory: 84K (90000000 - 90015000) Warning: unable to open an initial console. Kernel panic - not syncing: No init found. Try passing init= option to kernel. Allerdings war dem nicht so. Nun würde ich jemanden bitte mir einmal nur sein Kernel hier hineinzustellen um zusehen ob es nicht an meinen NFS/TFTP/BUILDROOT usw. Settings liegt. Oder was noch besser wäre vll. hat jemand das gleich Porblem und könnte Helfen oder vll. auch nur einen Anhaltspunkt ich drehe nähmlich langsam so durch das ich nämlich mit h schreibe und bald dämmlich werde. mfg
Hier mal mein printenv: ICnova> printenv baudrate=115200 ethact=macb0 ethaddr=00:1F:E5:00:0D:57 ipaddr=192.168.2.10 serverip=192.168.2.4 tftpboot=tftpboot $(serverip):$(bootfile);bootm bootcmd=run tftpboot bootfile=uImage bootdelay=3 bootargs=nfsroot=192.168.2.4:/home/marskopf/ICnova/binaries/oemplus ip=192.168.2 .10:192.168.2.4::255.255.255.0::eth0:none ip=192.168.2.10:192.168.2.4::255.255.2 55.0::eth0:none stdin=serial stdout=serial stderr=serial Vll findet sich hier der Fehler. Bin wie gesagt noch Linux Anfänger.
Willi A. schrieb: > bootargs=nfsroot=192.168.2.4:/home/marskopf/ICnova/binaries/oemplus > ip=192.168.2 > .10:192.168.2.4::255.255.255.0::eth0:none > ip=192.168.2.10:192.168.2.4::255.255.2 > 55.0::eth0:none hier stimmt was nicht. Schau mal hier, da sind ein paar gute Tipps: http://www.hs-augsburg.de/~hhoegl/elinux/ext/doc/FAQ.html#booten-mit-nfs
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.