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.
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.
Um das ganze etwas mehr zu verdeutlichen, gibt es hier ein kleines Boot-Video im Split-Screen (links mit JFFS2 und rechts mit UBIFS).
http://www.youtube.com/watch?feature=player_embedded&v=fg-MvUcC9zY
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 -hFilesystem Size Used Available Use% Mounted on/dev/root 248.0M 108.3M 139.7M 44% /devtmpfs 154.8M 0 154.8M 0% /devnone 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 onubi0:rootfs 358.0M 104.8M 253.2M 29% /devtmpfs 154.8M 0 154.8M 0% /devnone 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:
[*=center]Installation von Marsu
[*=center]Neustart von Enigma2
[*=center]Image mit Marsu konvertieren
[*=center]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.
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.
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!