Da die Receiver bezüglich MultiBoot gleich sind, habe ich die einzelnen Beiträge zu einem zusammengefasst.
Dank redblue-pkt ist es möglich, ähnlich wie bei der HD51 ein MultiBoot zu haben, was bis zu 4 Images ermöglicht. In Zusammenarbeit mit ihm konnten noch kleinere Fehler beseitigt werden, so daß es nun stabil funktioniert und auch so, wie es soll. Ich habe das Multiboot von der VU+ SOLO 4K auch auf die VU+ DUO 4K SE, VU+ DUO 4K, VU+ UNO 4K SE, VU+ ZERO 4K, VU+ ULTIMO 4K und VU+ UNO 4K adaptiert, so daß auch dort ein Multiboot möglich wurde. Die Partitionsgrößen betragen dabei 4x 921 MB für Root und 4x 6 MB für die Kernel. Der Rest verteilt sich auf STARTUP, Splash (das Haupt-Startlogo) und initrd ("2. Loader"). Aber auch der Normal-Betrieb hat eine leicht geänderte Partitionierung bekommen, so daß auch da für Root etwas mehr Speicher möglich wurde. Die neue initrd unterstützt somit beide Varianten und wird daher auch so im GIT statt der originalen initrd enthalten sein.
Allerdings sollte man folgendes beachten: Startet die Partition nicht mehr, von der gestartet wurde, so muß diese Partition neu geflasht werden, da es keine "Notfall-Umschaltung" zu einer anderen Partition gibt. Das könnte nur der Loader, aber der kennt ja kein MultiBoot. Das flashen der einzelnen Partition funktioniert jedoch problemlos vom USB Stick, ohne dabei die anderen Partitionen zu beeinflussen.
Die neuen Partitionen für Kernel und Root sind wie folgt angeordnet:
Partitionen | VU+ DUO 4K SE | VU+ DUO 4K | VU+ UNO 4K SE | VU+ ZERO 4K | VU+ ULTIMO 4K | VU+ UNO 4K | VU+ SOLO 4K |
---|---|---|---|---|---|---|---|
Kernel 1 | mmcblk0p9 | mmcblk0p9 | mmcblk0p4 | mmcblk0p7 | mmcblk0p4 | mmcblk0p4 | mmcblk0p4 |
Root 1 | mmcblk0p10 | mmcblk0p10 | mmcblk0p5 | mmcblk0p8 | mmcblk0p5 | mmcblk0p5 | mmcblk0p5 |
Kernel 2 | mmcblk0p11 | mmcblk0p11 | mmcblk0p6 | mmcblk0p9 | mmcblk0p6 | mmcblk0p6 | mmcblk0p6 |
Root 2 | mmcblk0p12 | mmcblk0p12 | mmcblk0p7 | mmcblk0p10 | mmcblk0p7 | mmcblk0p7 | mmcblk0p7 |
Kernel 3 | mmcblk0p13 | mmcblk0p13 | mmcblk0p8 | mmcblk0p11 | mmcblk0p8 | mmcblk0p8 | mmcblk0p8 |
Root 3 | mmcblk0p14 | mmcblk0p14 | mmcblk0p9 | mmcblk0p12 | mmcblk0p9 | mmcblk0p9 | mmcblk0p9 |
Kernel 4 | mmcblk0p15 | mmcblk0p15 | mmcblk0p10 | mmcblk0p13 | mmcblk0p10 | mmcblk0p10 | mmcblk0p10 |
Root 4 | mmcblk0p16 | mmcblk0p16 | mmcblk0p11 | mmcblk0p14 | mmcblk0p11 | mmcblk0p11 | mmcblk0p11 |
Dateien des USB Stick für Normal-Boot (Standard)
- kernel_auto.bin -> Kernel des Wunsch-Images
- rootfs.tar.bz2 -> Root des Wunsch-Images
- initrd_auto.bin -> wahlweise die des Wunsch-Images oder die neue für "MultiBoot"
- splash_auto.bin -> optional, eigenes Bild
- reboot.update -> (0 Byte dummy) - optional, automatischer Neustart nach Update, nicht bei VU+ ZERO 4K und VU+ UNO 4K vorhanden
- mkpart.update -> (0 Byte dummy) - damit die Partitionen erzeugt werden
- force.update -> (0 Byte dummy) - Update direkt vom USB-Stick starten, nur bei VU+ ZERO 4K und VU+ UNO 4K notwendig da keine Powertaste vorhanden
Neue Dateien des USB Stick für MultiBoot, alle Partitionen gleichzeitig flashen, auch mit unterschiedlichen Images
- kernel1_auto.bin -> neues Kernel für MultiBoot
- kernel2_auto.bin -> wie 1 (auch für E2 das Neutrino-Kernel benutzen und nicht das von E2 mitgelieferte, sonst hängt der Bootvorgang!)
- kernel3_auto.bin -> wie 1 (auch für E2 das Neutrino-Kernel benutzen und nicht das von E2 mitgelieferte, sonst hängt der Bootvorgang!)
- kernel4_auto.bin -> wie 1 (auch für E2 das Neutrino-Kernel benutzen und nicht das von E2 mitgelieferte, sonst hängt der Bootvorgang!)
- rootfs1.tar.bz2 -> Root Wunsch-Image 1
- rootfs2.tar.bz2 -> Root Wunsch-Image 2
- rootfs3.tar.bz2 -> Root Wunsch-Image 3
- rootfs4.tar.bz2 -> Root Wunsch-Image 4
- initrd_auto.bin -> die neue für "MultiBoot"
- splash_auto.bin -> optional, eigenes Bild
- reboot.update -> (0 Byte dummy) - optional, automatischer Neustart nach Update, nicht bei VU+ ZERO 4K und VU+ UNO 4K vorhanden
- mkpart.update -> (0 Byte dummy) - damit die neuen Partitionen erzeugt werden
- rootfs.tar.bz2 -> (0 Byte dummy) - damit geflasht wird
- kernel_auto.bin -> (0 Byte dummy) - damit geflasht wird
- force.update -> (0 Byte dummy) - Update direkt vom USB-Stick starten, nur bei VU+ ZERO 4K und VU+ UNO 4K notwendig da keine Powertaste vorhanden
Wichtig
Beim ersten umstellen auf Multiboot müssen ALLE Partitionen mit einem Image geflasht werden, d.h. es müssen alle 4 rootfsX.tar.bz2 und kernelX_auto.bin vorhanden sein,
da ansonsten die Box auch nicht starten wird. Hierzu ggf. dazu das rootfs1.tar.bz2 nach rootfs2.tar.bz2, rootfs3.tar.bz2 und rootfs4.tar.bz2 umkopieren. Erst danach ist auch das
flashen der einzelnen Partitonen separat möglich.
Neue Dateien des USB Stick für MultiBoot, nur eine der 4 Partitionen flashen, hier für Partition 3
- kernel3_auto.bin -> neues Kernel für MultiBoot
- rootfs3.tar.bz2 -> Wunsch-Image für Partition 3
- initrd_auto.bin -> die neue für "MultiBoot"
- reboot.update -> (0 Byte dummy) - optional, automatischer Neustart nach Update, nicht bei VU+ ZERO 4K und VU+ UNO 4K vorhanden
- rootfs.tar.bz2 -> dummy (0 Byte) - damit geflasht wird
- kernel_auto.bin -> dummy (0 Byte) - damit geflasht wird
- force.update -> (0 Byte dummy) - Update direkt vom USB-Stick starten, nur bei VU+ ZERO 4K und VU+ UNO 4K notwendig da keine Powertaste vorhanden
Wichtig
Wer zurück auf den Normal-Betrieb will, nimmt die Dateien des zu flashenden Images, ABER es muß beim ersten umstellen auf Normal-Boot unbedingt die initrd_auto.bin von mir
benutzt werden, ansonsten wird das Image nicht starten, da der Startbereich noch falsch (auf Multiboot und nicht mehr existierender bzw. nun ungültiger Partition) eingestellt ist.
Erst danach kann man wie gewohnt ein "normales" Image flashen mit den vom Image mitgelieferten Dateien.
Hier mal einige Bilder, wie es mit MultiBoot bei mir auf den entsprechenden Receivern aussieht.
Das MultiBoot wurde bisher getestet mit den E2 Images:
- Original Image -> OK (ABER: stb-startup v1.04 benutzen mit manuellem fstab Eintrag und es ist die IPK des STB-Startup von Hand auszupacken und zu kopieren)
- openATV 6.3/6.4/6.5/7.0/7.1/7.2/7.3/7.4/7.5 -> OK - ab Neutrino rev18770 neues Kernel verfügbar für VUDUO4K/VUUNO4KSE/VUZERO4K, notwendig ab openATV 6.4 (Mai 2020)
- Hyperion 6.4 -> OK
- OpenVIX 5.3 -> OK
- OpenVIX 6.2 -> STARTET NICHT
- VTI 14.0.5 / 15.0.0 -> OK (ABER: stb-startup v1.04 benutzen mit manuellem fstab Eintrag)
- openPLI 7.1/9.x -> OK (ABER unter OpenPLI 9.x stb-startup benutzen, Austausch der MultiBoot.py nicht möglich)
- EGAMI 10 -> OK
Im Prinzip sollte es keine Probleme mit den Images im Multibootbetrieb geben. Lediglich ein volles Upgrade z.B. von OATV 6.3 auf OATV 6.4 innerhalb des Images wird schief gehen, da zum einen das Flashprogramm von E2 keine Multiboot-Partitionen beherrscht und daher damit nicht umgehen kann und zum anderen ggf. auch das Kernel, was nicht Multiboot fähig ist, geflasht wird.
redblue-pkt hat das ofgwrite für die VU+ SOLO 4K angepasst (und ich entsprechend erweitert für die VU+ DUO 4K SE, VU+ DUO 4K, VU+ UNO 4K SE, VU+ ZERO 4K, VU+ ULTIMO 4K und VU+ UNO 4K), so daß auch hiermit wie bei der HD51 in andere Partitionen (mit -mX oder --multi=X), geflasht werden kann.
Wichtig
Es sollten auch mit ofgwrite immer die korrekten Kernel- und Root-Dateinamen benutzt werden und NICHT einfach nur kernel_auto.bin und rootfs.tar.bz2,
da das ansonsten ALLE Partitionen beschädigen kann und ein vollständiges neues flashen aller Partitionen dann notwendig macht. Das wäre dann so, als
wenn man neu von Normal- auf Multiboot umstellen würde. Ist aber dann notwendig, damit die Partitionen repariert werden können.
Und: Es muss ofgwrite von Neutrino verwendet werden, denn das von E2 unterstützt dieses Multiboot nicht.
Besten Dank auch an devil7 für das ausführliche testen auf der VU+ UNO 4K. Er hatte es nicht leicht mit mir.
Es wird nur MultiBoot-Images geben - das "normale" Boot-Image ist nicht geplant.