Enigma2-Update: 30 Sekunden schnellere Boot-Zeit mit UBIFS

Dieses Wochenende gab es wieder ein tolles Update, von dem derzeit vor allem die DM7020 HD und DM8000 profitieren. Durch die Nutzung von UBIFS wird der gesamte Flash-Speicher freigegeben und die Performance ist deutlich besser!

Bevor ich darauf eingehe, wie UBIFS auf den Images aktiviert werden kann, gibt es zunächst eine kleine Einführung über die vorher und jetzt genutzten Dateisysteme bei Enigma2 und woher der Fortschritt kommt. Anschließend gibt es eine kleine Anleitung, wie UBIFS schon jetzt aktiviert werden kann und was es mit Marsu, dem neuen Tool von Gutemine, auf sich hat. Bisher betreffen die Neuerungen nur die DM8000 und DM7020 HD — auf allen anderen Dreamboxen wird UBIFS nicht genutzt.

Was ist UBIFS?

Der Flash-Speicher der Dreamboxen ist bekanntlich unterteilt in mehrere Partitionen. Eine davon ist die Boot-Partition, die bei den kleinen Dreamboxen stark komprimiert ist und dadurch zu beachtlichen Performance-Einbußen führt. Wie durch einfaches Auslagern und Dekomprimierung dieser Partition die Geschwindigkeit der kleinen Dreamboxen merklich verbessert werden kann, wurde bereits in diesem Artikel genau beschrieben.

Neben der Boot-Partition gibt es aber noch Root-Partition, in der eigentlich alle Daten des Systems, inklusive PlugIns etc., abgespeichert sind. Bisher wurde für diese Partition das Dateisystem JFFS2, ein spezielles Dateisystem für Flash-Speicher, genutzt.

Die Problematik bzw. die Nachteile von JFFS2 zeichnen sich insbesondere beim Mounten und im Umgang mit großen Datenmengen wieder. Das Dateisystem wird mit JFFS2 aufgeteilt in fehlerhafte, freie und belegte Blöcke. Bei jedem Starten muss das Dateisystem komplett gescannt die Dateistruktur neu aufgebaut werden, was Performance und vor allem viel Zeit kostet. Je größer die Anzahl der Dateien, desto langsamer wird es — und das insbesondere bei der DM7020 HD und dem dort vorhandenen 1 GB großen Flash-Speicher.

Ein alternatives und besseres Dateisystem ist UBIFS. Die Abkürzung „UBI“ steht für „Unsorted Block Images“. Im Gegensatz zu JFFS2 speichert UBIFS die Speicherstruktur ebenfalls ab und liest diese nicht bei jedem Einhängen — und damit bei jedem Booten der Dreambox — neu ein. Zwar kostet das dann ein wenig mehr Speicherplatz, bei dem großen Flash-Speichern der DM7020 HD und DM8000 fällt das aber nicht ins Gewicht (es sind wohl ca. 10 %, die mit UBIFS weniger zur Verfügung stehen). Dafür werden rekordverdächtige Boot-Zeiten erreicht: Die Bootzeit auf der DM7020 HD verringert sich um ca. 30 Sekunden, auf der DM8000 sind es sogar 45 Sekunden weniger. Um das ganze etwas mehr zu verdeutlichen, gibt es hier ein kleines Boot-Video im Split-Screen (links mit JFFS2 und rechts mit UBIFS).

Die verbesserte Boot-Zeit ist nicht der einzige Vorteil, den UBIFS mit sich bringt. Das Dateisystem verbraucht weniger Ressourcen und insbesondere weniger Arbeitsspeicher. Durch das Abspeichern der Speicherstruktur gibt es auch keine Performanceprobleme mit größeren Datenmengen. Zudem spielt auch die Tatsache, dass JFFS2 für kleine Flash-Speicher konstruiert ist und daher eine stärkere Komprimierung nutzt als UBIFS, in Bezug auf den Arbeitsspeicher und die CPU-Belastung und ebenfalls eine Rolle. Daher sollte zumindest theoretisch auch im Gebrauch von Enigma2 eine kleine Verbesserung in der Performance spürbar sein — jedoch ist der Unterschied hier nicht so groß wie bei den Boot-Zeiten. Zumindest vom Gefühl her fühlt sich HbbTV ein bisschen schneller an, wobei das aber auch nur Einbildung sein kann.

Wie komme ich an UBIFS?

Das Wechseln des Dateisystems für die Root-Partition stellt einen größeren Eingriff in das System dar und nicht „einfach so“ im laufenden Betrieb möglich. Zunächst muss sichergestellt werden, dass das genutzte Image auch die nötigen Voraussetzungen mitbringt. Im Zweifel sollte hier unbedingt vorher beim jeweiligen Image-Team nachgefragt werden.

Grundsätzlich wird für die Umstellung auf UBIFS empfohlen, das Image neu zu flashen — ein einfaches Upgrade und Konvertierung ist nicht ohne weiteres möglich. Alle neuen Images, die mindestens den Stand von heute haben, nutzen UBIFS bereits standardmäßig. Dazu zählt auch das neuste experimentelle Image von Dream. Es bringt bereits die Voraussetzungen und entsprechenden Kernel und Kernel-Anpassungen von Haus aus mit, sodass hier nichts schief gehen kann. Bei anderen Images sollte es spätestens in ein paar Tagen auch so weit sein.

Die sauberste und sicherste Vorgehensweise ist das komplette Neu-Flashen des neusten Images. Damit verbunden ist aber auch ein nicht zu unterschätzender Aufwand: Alle Konfigurationen, Bouquets etc. müssen vorher gesichert und anschließend neu eingestellt werden. Dafür müssen keine zusätzlichen Einstellungen mehr getroffen werden.

Nach dem Neu-Flashen werden auf der DM7020 HD zudem noch die vollen 1 GB freigeschaltet und stehen auf der /data-Partition bereit!

Hier noch ein kleiner Vorher-Nachher-Vergleich. Vorher sah die Speicherplatzverteilung auf einer DM7020 HD mit dem neusten Merlin OE 2.0 Image so aus:

root@dm7020hd:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               248.0M    108.3M    139.7M  44% /
devtmpfs                154.8M         0    154.8M   0% /dev
none                    154.9M    236.0K    154.7M   0% /var/volatile
/dev/mtdblock2            7.0M      3.8M      3.2M  55% /boot
/dev/disk/by-uuid/[...]   1.8T      1.3T    496.6G  73% /media/hdd

Nach dem Update mit UBIFS sieht es schon ganz anders aus:

root@dm7020hd:~# df -h
Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs             358.0M    104.8M    253.2M  29% /
devtmpfs                154.8M         0    154.8M   0% /dev
none                    154.9M    232.0K    154.7M   0% /var/volatile
/dev/mtdblock2            7.0M      3.9M      3.1M  55% /boot
/dev/disk/by-uuid/[...]   1.8T      1.3T    496.5G  73% /media/hdd

Dass UBIFS erfolgreich genutzt wird, kann an „ubi0:rootfs“ erkannt werden. Zudem stehen nun 29 % statt 44 % freien Speicherplatz zur Verfügung (mit der gleichen Anzahl an PlugIns etc.).

Marsu: Dateisystem konvertieren

Wer keine Lust auf neues Flashen hat, kann auch das neue PlugIn von gutemine ausprobieren: Marsu. Neben zusätzlichen Einstellungen gibt es die Möglichkeit, das die Partition von JFFS2 nach UBIFS zu konvertieren.

Wichtig: Vor der Konvertierung muss sichergestellt sein, dass das genutzte Image alle nötigen Pakete, den neuen Kernel und die entsprechenden Kernel-Erweiterungen anbietet. Falls ja, muss eine die automatische Softwareaktualisierung mit einem anschließenden Neustart durchgeführt werden.

Das ist derzeit noch nicht bei allem Images der Fall. Fehlen die Pakete, klappt die Konvertierung nicht. Falls die Pakete noch nicht angeboten werden, einfach ein paar Tage warten bis das jeweils verantwortliche Image-Team die Updates bereitgestellt hat. Zumindest die experimentellen Images von Dream, Merlin und OoZooN bieten bereits die nötigen Updates an.

Für die Konvertierung des Images sind die folgenden Schritte nötig:

  • Installation von Marsu
  • Neustart von Enigma2
  • Image mit Marsu konvertieren
  • Das durch die Konvertierung erstellte NFI-Image flashen

Es ist also auch ein etwas größerer Aufwand, aber zumindest alle Einstellungen, PlugIns etc. bleiben komplett erhalten, sodass die Neukonfiguration vermieden wird.

Nach der Installation von Marsu und einem Enigma2-Neustart steht die Erweiterung über Menü > Erweiterungen > Marsu bereits zur Verfügung.

marsu

Die Bedienung ist denkbar einfach und unterscheidet sich von dFlash kaum. Marsu erstellt aus dem im Flash vorhandenen Image ein Backup und konvertiert die Root-Partition, damit hier UBIFS statt JFFS2 genutzt wird.

Es gibt über die blaue Taste noch ein paar Konfigurationsmöglichkeiten.

marsu-config

So kann das Verzeichnis eingestellt werden, in dem das konvertierte NFI-Image gespeichert wird. Standardmäßig ist /hdd/backup voreingestellt. Zudem gibt es noch erweiterte Konfigurationsmöglichkeiten, wie bspw. die genutzte Kompression des UBIFS. Nutzer der kleinen Dreamboxen können bzw. sollten hier eine stärkere Konvertierung einstellen, um etwas Platz zu sparen (zlib statt lzo). Aber: Das ist nur was für fortgeschrittene Nutzer. An den Einstellungen sollte nur etwas verändert werden, wenn man wirklich weiß um was es sich dabei handelt!

Wurden alle Einstellungen vorgenommen und gespeichert kann die Konvertierung mit der grünen Taste gestartet werden. Das dauert je nach Größe des Images drei bis fünf Minuten. Sobald die Konvertierung abgeschlossen ist, gibt es eine entsprechende Meldung.

Anschließend kann das NFI-Image, das sich standardmäßig im Backup-Verzeichnis auf der Festplatte befindet, über FTP heruntergeladen und geflasht werden. Wenn alles geklappt hat startet die Dreambox nun mit UBIFS, was schon beim allerersten Boot-Vorgang gemerkt werden kann — dieser ist nun 30 Sekunden schneller.

Marsu ist übrigens nicht nur für die Konvertierung da, sondern ersetzt auch dFlash. Denn dFlash kann kein Backup von Images anfertigen, die UBIFS nutzen — dafür ist nun Marsu da.

Fazit

UBIFS macht die Dreambox definitiv schneller, zumindest im Boot-Vorgang — und das deutlich! Im laufenden Betrieb sind Performancesteigerungen theoretisch zwar da, wenn dann aber nur gering merkbar. Und dennoch, zumindest auf der DM7020 HD ist es allein wegen der Vergrößerung des Flash-Speichers schon fast pflicht.

Zwar wird empfohlen das Image neu zu flashen, jedoch scheint es auch mit Marsu ganz gut zu klappen. Bisher konnte ich noch keine Probleme feststellen, jedoch habe ich das Image auch erst seit kurzem im Betrieb. Ob es auf Dauer zu irgendwelchen Problemen o.ä. führt, kann derzeit noch nicht beurteilt werden.

Wer eine der kleinen Dreamboxen nutzt, möglicherweise zusammen mit einem Tool zur Flash-Erweiterung, sollte sich vor der Konvertierung darüber informieren, ob es von Marsu auch unterstützt wird. Zumindest bei den kleinen Dreamboxen würde ich daher auch dazu raten, das Image neu zu flashen und auf eine Konvertierung zu verzichten — auf diese Weise wird das Fehlerpotenzial deutlich reduziert.

Alle Infos zu UBIFS und Marsu sowie die nötigen Installationspakete und Hinweise gibt es im OoZooN-Board und bei dreambox-tools.info.

Was haltet ihr von UBIFS und Marsu — lohnt sich aus eurer Sicht allein wegen der deutlich schnelleren Bootzeit ein Umstieg auf UBIFS? Gab es irgendwelche Probleme während der Konvertierung? Nutzt die Kommentarfunktion zu diesem Artikel und berichtet ein wenig!

Ähnliche Beiträge:

26 Gedanken zu „Enigma2-Update: 30 Sekunden schnellere Boot-Zeit mit UBIFS“

  1. Ich habe mein vorhandenes Image mit Marsu Plugin konvertiert, und gleichzeitig mit dflash geflasht. Und bin begeistert was das Bootzeit betrifft.

  2. Ich hab gleich das Originalimage neugeflasht, läuft bis jetzt stabil und performant.
    Die verbesserten Bootzeiten sind nun Top und insgesamt fühlt sich die Box flotter an.

  3. Hallo zusammen,

    habe gerade meine 8000´er und 7020´er mit aktuellen MerlinImages neu geflasht und bin jetzt voll auf UBIFS unterwegs.
    Mit dem Marsu Plugin auch bereits erfolgreich Images gesichert und wieder hergestellt.
    Grosse Sache !!

    Speziellen Dank wieder an gutemine für seine tollen Imagebackup-Plugins.
    Da ich viel mit den Boxen herum experimentiere, wäre alles ohne diese Backuptools eine Katastrophe.

  4. Hört sich gut an, wenn das nur alles nicht wieder so kompliziert wäre.

    Gibt es irgendwo einen guten Artikel zum Thema Backup – mir ist irgendwie nicht klar, was ich wie sichern muss, damit ich es im Anschluss an ein Neuflashen wieder zurückspielen kann.

    1. Hey James T., das ist wirklich ganz einfach. Entweder du flasht komplett neu – ein aktuelles OE2 experimental deiner Wahl hat vermutlich UBIFS schon dabei. ODER du nutzt marsu 1.1. Das installierst Du, machst einen GUI Neustart und anschließend startest Du das Plugin. Das erzeugt auf /hdd/backup ein .nfi image deines laufenden Systems, welches du dir nach Fertigstellung auf den PC lädst. Dann entweder mit dflash (direkt von der hdd) oder per „Knopf drücken Webbrowser“ Variante das gesicherte nfi flashen. Alles bleibt wie es war, es ist ja dein Image, nur konvertiert.

    2. Ja, OK, hab ich verstanden. Ein Neuflashen wäre sicher das Richtige, aber dann müsste ich mal wissen, was ich vorher alles sichern und hinterher wieder einspielen müsste.

    1. Das würde mich auch interessieren!

      Weiss dazu jemand was? Ich hab mal auf einer dm800hd und einer dm500hd nachgeschaut, bei beiden ist die root partition nur 2/3 gefüllt. Auf 10% freien Platz würde ich also jederzeit verzichten.

  5. Also bei mir wollte Marsu allerdings unter /media/hdd/backup nichts machen.

    Er sagte mir zwar das die Konvertierung durchgeführt wird, aber nach 5 Sekunden
    meinte fertig zu sein. Ein Ordner namens Backup gab es nicht und demzufolge auch
    kein konvertiertes Image.

    Erst als ich den Pfad in der Konfig auf media/hdd verkürzte, funktionierte es.

    Ob es nur bei mir so war, oder ein Bug in Marsu ist, weiß ich allerdings nicht.

  6. @blacky08 Dieses Problem tritt auf wenn der Order Backup nicht existiert. Marsu hat bei mir den ordner nicht automatisch erstellt. Nachdem Ich den Ordern manuell erstellt hatte funktionierte auch das Backup.

  7. Ein wichtiges Zitat von Gutemine vom 13. April:
    „Mit der release 9.4 von dFlash ist Marsu ab sofort NICHT mehr unterstützt, weder zum Konvertieren noch zum Sichern.

    dFlash 9.4 kann alles was Marsu kann und sogar den umgekehrten Weg nämlich die die Konvertierung von ubifs zu jffs2 für die Nostalgiker.

    Also kann das Marsupilami erstmal zurück in den Dschungel … „

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert