CVS Flash Partition

  • Hier wird die Flashaufteilung fuer den CVS Kernel, in besonderem fuer die 500, beschrieben.


    Der Flash ist im sieben Bereiche unterteilt. Die Definition dieser Unterteilung ist im Kernel fest geankert. Im Enigma wird an mindestens einer Stelle (fuer die root.cramfs Methode) referenziert.


    Als Beispiel dient der 500 MaxVar Kernel.

    Code
    root@dreambox> cat /proc/mtd
    dev:    size   erasesize  name
    mtd0: 00500000 00020000 "DreamBOX cramfs+squashfs"
    mtd1: 002c0000 00020000 "DreamBOX jffs2"
    mtd2: 00040000 00020000 "DreamBOX OpenBIOS"
    mtd3: 007c0000 00020000 "DreamBOX (w/o bootloader)"
    mtd4: 00800000 00020000 "DreamBOX (w/ bootloader)"
    mtd5: 003e0000 00020000 "DreamBOX SquashedFS"
    mtd6: 00120000 00020000 "DreamBOX Cramfs"

    Die raw Devices sind als /dev/mtd/[0-6] zufinden. Die Funktion der jeweiligen Bereich ist wie folgt zu verstehen:


    mtd0
    Eine Zusammenfassung den Flashbereichen mtd5 und mtd6. Dieser Bereich erleichtert die Speicherung eines gesamt Images. Die maximale Groesse betraegt 0x00500000 (5242880) Bytes.


    mtd1
    Enthaelt eine Partitition, die nach dem Booten uebliche Weise unter /var gemountet wird. Die Partition ist eine jffs2 Partition. Die maximale Groesse betraegt 0x002c0000 (2883584) Bytes.


    mtd2
    Hier ist der Bootloader gespeichert. Wann dieser Bereich kaputt ist kann die Box nicht mehr Ordungsgemaess gestartet werden. Und die Box muss hoechst wahrscheinlich kostenpflichtig an DMM geschickt und neu programmiert werden.


    mtd3
    Die Flashbereiche mtd0 bzw. mtd5/mtd6 und mtd1 werden hierdurch dargestellt.


    mtd4
    Der gesamt Flashbereich vom Vorne bis Ende ist abgebildet.


    mtd5
    Enthaelt die root also / Dateisystem: also alles was man als busybox, enigma, gemini versteht. Dieser Flashbereich wird als squashfs abgebildet. Das root Verzeichnis, das waehrend dem Booten gemountet wird ist durch die Befehlszeile im Kernel bestimmt. Die Maximale Groesse betraegt 0x003e0000 (4063232) Bytes.


    mtd6
    Dieser Flashbereich, wann gultig, wird vom Bootloader geladen und ausgefuehrt. Er enthaelt das Startbild (bild) und den linux Kernel (os). Der Bereich wird als cramfs abgespeichert. Da liegt eine Verzeichniskette (root/platform/kernel). Die Maximale Groesse betraegt 0x00120000 (1179648 ) Bytes.


    Alle Bereiche werden ueber den zugehoerigen Blockdevice angesprochen werden:
    /dev/mtdblock/[0-6].

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze

    Einmal editiert, zuletzt von johnbock ()

  • Ein root.cramfs Image Datei sieht so aus:

    Code
    Dateianfang           Bereichsuebergang              Dateiende
         V                      V                          V
         | boot Image      .....| root Image          .....|
                             V                          V
                    boot Imageleerraum          root Imageleerraum
    
    
         |      Bereich 6       |        Bereich 5         |
         |                   Bereich 0                     |

    Der gesamt Image ist einer direkte Abbild des Flashbereiches 0. Er besteht aus zwei Teilen der boot (Flashbereiches 6) und root (Flashbereiches 5) Bereichen. Alle Bereichen sind Distri abhaengig.


    Die Bereichsgroesse wird durch den Kernel vorgegeben. Der Anzahl der Blocks kann aus /proc/partitions ausgelesen werden. Und die Blockgroesse ist 1024 Bytes.


    Der Image muss "kleiner gleich" des entsprechenden Flashbereichs sein. Dadurch, entsteht praktisch immer einen Leerraum von boot Imageende bis zur Bereichsende bzw root Imageanfang.


    Soviel zur Grundlage...
    Ein root.cramfs Image kann wie folgt aus den boot und root Teilen gebastelt werden.

    Code
    root@dreambox > padding=$((<Groesse des Flashbereichs 6> - <boot.img Groesse>))
    root@dreambox > [ "$padding" -gt 0 ] &&
    {
       dd if=/dev/zero of=padding bs=1 count=$padding &&
       cat <boot.img> padding <root.img> > root.cramfs
    }


    Vorsicht... Diese Methode funktioniert offenbar noch nicht mit der sogenannten root.cramfs Methode. Mit DreamUp soll es klappen;)
    Update... Die root.cramfs Methode wurde mit noch im /var/... aktivem Swap ausgefuerht. Da sollte man die Methode ohne Swap versuchen!

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze

    5 Mal editiert, zuletzt von johnbock ()

  • Hallo John,


    geschafft, ich habe ein Immage mit 5173248Bytes gebaut und mit dem Hexeditor ueberprueft der Squash-Teil beginnt genau bei 0x120000, sieht gut aus, mal sehen ob ich mich heute noch getraue es mal mit root.cramfs zu flashen, im notfall hilft ja noch Dreamup und 0-Modem-Kabel.
    Das immage enthaelt den Swapkernel von Johnbock, ein /opt-Verzeichnis als mount-Point im root, der rest stammt vom Gemini3.40, mal sehen obs klappt.


    Uebrigens alles auf der DM500 gebaut. :)

  • chriwi
    hast Du auch losetup drin? Aber dafuer mach wir ein andere Thread auf...

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze

  • Hallo John,


    > hast Du auch losetup drin? Aber dafuer mach wir ein andere Thread auf...


    Ja und nein, ich hab die binary nicht mit reingepackt, aber die Symlinks auf meine gemountete /hdd habe ich fest nach /bin kopiert, ist halt ne Spezialloesung fuer mich, aber so ein Backupimmage mit Geminiteilen darf man ja sowiso nicht verteilen.


    Wenn wir das Blue-Panel behalten wollen koenne wir unser Immage nur als Bausatz anbieten.

  • Zitat

    Originally posted by johnbock
    chriwi
    Aber dafuer mach wir ein andere Thread auf...

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze

  • Hallo John,


    nurnoch soviel, geschafft nach einem schrecken, root.cramfs ist gescheitert mit dem neuen Immage, also hab ich nachdem ich eh Dreamup anschmeissen musste erstmal probiert das neue zu flashen und ..... Erfolgreich, liess sich flashen laeuft kann swappen hat /opt im root, nfs laesst sich darauf mounten, soweit ein voller Erfolg fuer den ersten Versuch. :) :) :)


    Ist das jetzt das erste Johnbock&chriwi-Immage oder eher ein geklautes Gemini? :winking_face: :winking_face: :winking_face:

  • Finde ich Klasse, das der Bereich hier so gut ankommt bei Euch. Vielleicht kommt ja das eine oder andere brauchbare irgendwann mal für unsere Dream raus.
    Weiterhin frohes monotone und puddeln :wmbiggrin:

    Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. <br>
    Mahatma Gandhi

  • Wer weiss, wer weiss;) Mit'n bissle Fleis finden wir bestimmt amal was. Aber mir gehts premaer um das Lernen und Do'n :)


    Puddeln...? Was is'n das denn?

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze

  • Zitat

    Originally posted by chriwi
    nurnoch soviel, geschafft nach einem schrecken, root.cramfs ist gescheitert mit dem neuen Immage, also hab ich nachdem ich eh Dreamup anschmeissen musste erstmal probiert das neue zu flashen und ..... Erfolgreich, liess sich flashen laeuft kann swappen hat /opt im root, nfs laesst sich darauf mounten, soweit ein voller Erfolg fuer den ersten Versuch. :) :) :)

    War /var noch in Ordnung? Hast Du auf der rs232 geschaut bevor Du geD'upt hast. Waere interresant zuwissen wo das Problem lag. Bin aber froh das nix groessers passiert is!


    Zitat

    Originally posted by chriwi
    Ist das jetzt das erste Johnbock&chriwi-Immage oder eher ein geklautes Gemini? :winking_face: :winking_face: :winking_face:

    Nicht das GP auch noch einen Hologram braucht :tongue:

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze

    • Offizieller Beitrag
    Zitat

    Original von johnbock
    Ahhh, natuerlich puddeln.


    Nicht ganz .. bei uns hier ist "puddeln", mit basteln, arbeiten, programmieren gleichzusetzen ... so "puddeln" wir Images, die Programmierer sind die Puddler und die Oberprogrammierer sind die Oberpuddler :winking_face:

    Nur wer erwachsen wird und ein Kind bleibt, ist ein Mensch.
    Erich Kästner


    8000HD-PVR | 800HD-PVR | 500HD | 7025+SS | 7025SS | 7020S | 7000S | 600-PVR | 500+S | 500S | 5620S | 100S
    Astra 19,2° Ost | Hotbird 13° Ost | Sky (komplett)


    seddi@i-have-a-dreambox.com

  • Hallo Schaedel & Seddi,


    da bin ich aber froh das das bei euch so gut ankommt, ich habe schon befürchtet, daß ihr Howtos die zu einem gemoddeten Gemini fürhren genauso ablehnt wie das Hochladen von Backupimmages. :)


    Leider passt diesesTema nur sohalb zu CVS, da ich ja nur ausgepckt, gebastelt und wieder eingepackt habe, vielleicht ware noch eine extra Gruppe für Softwaremods und experimente angebracht.


    johnbock
    das /var war selbst nach dem Flashen mit Dreamup noch OK undich fahre bisher weiterhin ohne Flasherase, da ich ja quasi das selbe immage wieder aufgespielt habe nur mit neuem Kernel und /opt + einige symlinks in /bin.
    Läuft bisher einwandfei.

  • Everything you need is the database;)

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze

  • Thanks!


    I have completed Gemini 3.4 swap. :winking_face:


    But I still need "mksquashfs2.2-r2+lzma for CVS" or "mksquashfs2.2-r2+lzma for mkderamboxfs". :face_with_rolling_eyes:


    I would like to join the Chinese language support for Gemini 3.4.


    Help,me.

  • Check out the board search!

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze

  • Hi,


    The original version is too old. :loudly_crying_face: :loudly_crying_face: :loudly_crying_face:


    Please give me an updated version of "mkdreamboxfs+mksquashfs2.2-r2+lzma"!


    Thanks!

  • Hello zxygyp,


    I used alos only the version here from the board and it worked fine with Gemini3.40, so I cannot understand what you need a newer Version for.

  • If you require something newer you must get it from the net and patch the kernel. Be aware that the newly patched kernel, more than likely, will not match any image out there.

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze