[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?
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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
 

linuxkasten

Aktives Mitglied
Mitglied seit
2 Feb 2009
Beiträge
889
Punkte für Reaktionen
0
Punkte
0
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.
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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
 

starmagoo

Mitglied
Mitglied seit
20 Okt 2006
Beiträge
281
Punkte für Reaktionen
0
Punkte
16
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:
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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
 

starmagoo

Mitglied
Mitglied seit
20 Okt 2006
Beiträge
281
Punkte für Reaktionen
0
Punkte
16
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:
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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
 

starmagoo

Mitglied
Mitglied seit
20 Okt 2006
Beiträge
281
Punkte für Reaktionen
0
Punkte
16
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...
 

linuxkasten

Aktives Mitglied
Mitglied seit
2 Feb 2009
Beiträge
889
Punkte für Reaktionen
0
Punkte
0
Du musst hier nichts selbst programmieren oder den Code von Olistudent verstehen. Das ist ein Patch, den du anwenden musst.
 

starmagoo

Mitglied
Mitglied seit
20 Okt 2006
Beiträge
281
Punkte für Reaktionen
0
Punkte
16
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...
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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
 

Zurzeit aktive Besucher

3CX

Statistik des Forums

Themen
235,885
Beiträge
2,067,230
Mitglieder
356,872
Neuestes Mitglied
Machsgut