[Frage] 7390 - NAND Flash als root benutzen?

starmagoo

Mitglied
Mitglied seit
20 Okt 2006
Beiträge
281
Punkte für Reaktionen
0
Punkte
16
Servus,

kurz und knapp. :)

Ist es Möglich den NAND Flash als root "/" zu benutzen?
Der interne Flash ist ja dennoch recht klein und ich stoße immer wieder an die Grenzen...

bzw. kann ich Teile des Root nach "/var/dev/nand" auslagern?
 
Klar, kannst du Pakete mit external auf den NAND auslagern.

Aus dem NAND booten hab ich noch nicht geschafft. Dabei gab es bei meinen Versuchen mehrere Hürden:
1. Direktes Booten über die Kernelargs ging nicht, da AVM den root Parameter fest vorgibt
2. Gepatchter Kernel und booten von NAND -> Problem im Fehlerfall, da man das nicht so einfach wieder abschalten kann (mit serieller Konsole jedoch kein Problem)
3. häufige Abstürze (Ich vermute, dass es da noch Probleme mit dem Kernel gab, die inzwischen vielleicht auch behoben sind)

Wäre aber auf alle Fälle ein Thema, das man nochmal angehen könnte...

Gruß
Oliver
 
zu 2.: könnte man das nicht irgendwie so lösen, dass man einstellt, dass abwechselnd vom NAND und dann wieder normal bootet?
Das gibts für meine Dockstar, allerdings hat die uboot als Bootloader... keine Ahnung welcher in der 7390 steckt, habe keine.
 
Das Problem mit dem Nand ist, dass man einen USB-Stick einfach abziehen kann was mit dem NAND nicht geht. Wir bräuchten also auf alle Fälle einen Mechanismus, der bei einem nicht abgeschlossenen NAND-Boot normal (ohne NAND-Root) bootet. Das ganze müsste in ein Skript, da wir kein uboot haben...

Gruß
Oliver
 
Klar, kannst du Pakete mit external auf den NAND auslagern.

Aus dem NAND booten hab ich noch nicht geschafft. Dabei gab es bei meinen Versuchen mehrere Hürden:
1. Direktes Booten über die Kernelargs ging nicht, da AVM den root Parameter fest vorgibt
2. Gepatchter Kernel und booten von NAND -> Problem im Fehlerfall, da man das nicht so einfach wieder abschalten kann (mit serieller Konsole jedoch kein Problem)
3. häufige Abstürze (Ich vermute, dass es da noch Probleme mit dem Kernel gab, die inzwischen vielleicht auch behoben sind)

Wäre aber auf alle Fälle ein Thema, das man nochmal angehen könnte...

Gruß
Oliver

USBroot ist doch im Prinzip aber nix anderes (bis auf den Hinweis mit dem abziehen des Sticks sollte mal was nicht gehen...). Oder irre ich mich da?

Wie linuxkasten schrieb ist das bei einer DockStar super gelöst. ich vermute eine Bootloader ala uboot zu integrieren wird niht funktionieren...!?

Klar ist das ein "geiles" Thema da man sich den Stick als "root" oder "external" schenken kann...

Ich bin leider nicht so gut drin in der Materie das ich direkt was zum ansetzen hätte aber vielleicht schafft man es ja gemeinsam! :)

@olistudent
Mich würde da mal interessieren wie du deine Tests angestellt hast denn ich entnehme deinem Post das du es hin bekommen hast... nur eben bedingt (abstürze, fehlendes abfangen bei Bootschleife, etc...).

:cool:
 
Prinzipiell kann man die Bootpartition mit z.B. "root=/dev/mtdblock4" als cmdline-Argument angeben. AVM hat diesen Weg verbaut, da sie die root-Partition fest vorgeben. Nachdem man sich einen Kernel ohne diese Vorgabe gebaut hat kann man darüber umschalten von welcher Partition gebootet wird. Ohne serielle Konsole brauchst du aber gar nicht anfangen...

Gruß
Oliver
 
Nachdem man sich einen Kernel ohne diese Vorgabe gebaut hat kann man darüber umschalten von welcher Partition gebootet wird.

Kannst du mir da genauer sagen was ich auswählen müsste?

Ohne serielle Konsole brauchst du aber gar nicht anfangen...

Ich vermute du meinst folgendes?

http://www.wehavemorefun.de/fritzbox/Serielle_Konsole

http://www.wehavemorefun.de/fritzbox/index.php/Bauanleitung_für_serielle_Konsole

So was habe ich mir aus einem Handy Kabel für die Dockstar auch gebaut. Sollte ich demnach für die FB auch schaffen... :cool:
 
Wenn es so einfach wäre...

Der Kernel muss gepatched werden. So in die Richtung:
Code:
--- linux-2.6.28/arch/mips/fusiv/fusiv_mips32/fusiv_mtd.c.orig  2012-02-22 21:45:08.361141466 +0100
+++ linux-2.6.28/arch/mips/fusiv/fusiv_mips32/fusiv_mtd.c       2012-02-22 21:46:43.129137241 +0100
@@ -34,6 +34,7 @@
 
 #include <asm/setup.h>
 #include <asm/io.h>
+#include <asm/prom.h>
 
 #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
 #define DO_MTD
@@ -602,6 +603,7 @@
 void fusiv_mtd_add_notifier(struct mtd_info *mtd) {
 
     int i, index;
+    char *cl;
 
     if(!mtd->name) {
         DEBUG_MTD("Leeres MTD �bergeben!");
@@ -609,6 +611,11 @@
     }
     DEBUG_MTD("name %s" , mtd->name);
 
+       cl = prom_getcmdline();
+       if (strstr(cl, "root=") != NULL) {
+               return;
+       }
+
     for (i = 0; i < sizeof(str_rootfs) / sizeof(char*) ; i++) {
         if (!strcmp(mtd->name, str_rootfs[i])) {
             DEBUG_MTD("found %s", mtd->name);
--- linux-2.6.28/arch/mips/fusiv/fusiv_mips32/prom.c.orig       2011-03-31 10:50:42.000000000 +0200
+++ linux-2.6.28/arch/mips/fusiv/fusiv_mips32/prom.c    2012-02-22 21:36:23.153164882 +0100
@@ -142,6 +142,10 @@
 }
 EXPORT_SYMBOL(board_memsize);
 
+char* prom_getcmdline(void) {
+    return &(arcs_cmdline[0]);
+}
+
 /*------------------------------------------------------------------------------------------*\
 \*------------------------------------------------------------------------------------------*/
 /*--- #define DEBUG_WLAN_DECT_CONFIG ---*/
Gruß
Oliver
 
Ohje... :gruebel:

Ich denke das wird zu hoch für mich. Ich will nicht sagen Böhmische Dörfer aber viel verstehe ich von "C" bzw. Programmieren allgemein nicht...

Dachte ein auswählen diverser Optionen in "make kernel-menuconfig" würde hier reichen... :???:

schade. Ich schaue dennoch mal drüber ob ich was herauslesen kann...
 
Du musst hier nichts selbst programmieren oder den Code von Olistudent verstehen. Das ist ein Patch, den du anwenden musst.
 
Das ist mir schon bewusst allerdings die Aussage "So in die Richtung" heißt für mich "das wäre ein Ansatz aber nix endgültig fertiges"! Bevor ich hier mir durch unwissenheit mein System zerschieße versuche ich es lieber mal zu verstehen! ;)

Ohne die angesprochene Konsole lass ich sowieso vorerst die Finger davon...
 
Ich habe den Patch nicht auf der Box getestet. Die Änderung hat aber kompiliert... (Vielleicht passt er, vielleicht hab ich was nicht beachtet...) :mrgreen:

Gruß
Oliver
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.