Nachdem ich Stunden damit verbracht habe auf diversen Seiten alle Informationen zusammenzutragen um deb Dateien erstellen zu können, bzw. diese dann auf einem Feed beizustellen, möchte ich nun die Erkenntnisse teilen.
1. DEB Dateien entpacken/erstellen
Das einzige was im OE 2.5 für das Erstellen der DEB Dateien direkt auf der Dreambox fehlt, ist das volle tar statt dem von der Busybox, aber das kann man nachinstallieren
Noch eine kleine Anmerkung: Nach dem Installieren des tar wird der busybox link zum tar entfernt, daher sollte man das tar Paket NICHT mehr deinstallieren wenn euch das Image lieb ist, denn ohne tar funktioniert die Paketverwaltung nicht mehr.
Um die Struktur zu sehen, kann man eine ähnliche Datei von einem Feed herunterladen, also wenn ich einen Skin erstellen will, lade ich mir mal einen Skin herunter und entpacke diesen um die volle Struktur zu erhalten.
mit diesem Beispiel befindet sich nun im Verzeichnis "directory1" der Aufbau der Dateien bzw. auch der Ordner "DEBIAN". In diesem Ordner sind die Dateien je nach Wunsch anzupassen. Siehe auch Quelle.
Anschließend kann die Datei wieder zu einer deb Datei umgewandelt werden und wie gewohnt installiert werden.
womit man eine directory1.deb erhält
2. Feed erstellen
Vorausgesetzt man hat einen laufenden Webserver (hier gehe ich nicht näher darauf ein) können wir nun mit dem Feed starten. Dafür installieren wir ein paar Pakete und kopieren noch ein paar Dateien
apt-get install dpkg-dev
apt-get install perl-module-getopt-long
apt-get install perl-module-overloading
apt-get install perl-module-file-find
apt-get install perl-module-digest
apt-get install perl-module-feature
apt-get install perl-module-parent
apt-get install perl-module-posix
apt-get install perl-module-filehandle
apt-get install perl-module-tie-handle
apt-get install perl-module-digest-md5
apt-get install perl-module-digest-sha
apt-get install perl-module-data-dumper
apt-get install perl-module-bytes
apt-get install perl-module-ipc-open2
apt-get install perl-module-file-temp
apt-get install perl-module-file-copy
apt-get install perl-module-file-glob
apt-get install apt-utils
Alles anzeigen
Und installiert die unten angehängte Pakete:
Jetzt wird es tricky. Um den Feed als vertrauenswürdig zu erhalten, müssen wir Dateien signieren. Den notwendigen Schlüssel erzeugen wir uns und fügen ihn anschließend der DM900 hinzu. Wer es nachlesen will, hier die Quelle.
Damit genug zufällige Bytes entstehen können, musste ich 2 Terminals öffnen. In einem startete ich folgenden Befehl und führte ihn nach Ende wieder aus (Pfeil nach oben und Enter Taste)
Im zweiten Fenster starten wir
Geben ein (nach jeder Eingabe Enter drücken)
- 5
- 4096
- 0
- y
- Repository
- (keine Eingabe, nur Enter drücken)
- (keine Eingabe, nur Enter drücken)
- o
- (gewünschtes Passwort)
- (gewünschtes Passwort)
Danach sollten wir den Schlüssel haben
Jetzt herausfinden wie er heißt
und die Zahlen/Buchstabenkombi merken (zB C0000CCB)
danach den Public Key exportieren mit der gemerkten Nummer
Nun können wir uns den Schlüssel importieren um den Feed auch als vertrauenswürdig zu erhalten
Nun erstellen wir uns einen Ordner wo wir alle deb Dateien ablegen werden, legen die Dateien hinein und wechseln in das Verzeichnis
Nun werden wir in den einzelnen Schritten die deb Dateien signieren (mit dem oben gewählten Passwort!), und danach die Packages und Release Dateien erzeugen.
dpkg-sig --sign builder meinerstesdebfile.deb
apt-ftparchive packages . > Packages
gzip -c Packages > Packages.gz
apt-ftparchive release . > Release
gpg --clearsign -o InRelease Release
gpg -abs -o Release.gpg Release
Fast geschafft
Jetzt können wir die Dateien auf den Webserver legen, können zB den gleichen Unterordner "debian" verwenden. Folgende Dateien müssen am Webserver liegen:
- meinerstesdebfile.deb (natürlich eure deb bzw. auch mehrere deb's)
- InRelease
- keyFile (optional, erkläre ich später)
- Packages
- Packages.gz
- Release
- Release.gpg
3. Feed an der Dreambox bekanntmachen
Der letzte Part ist relativ leicht, dazu erstellen wir eine Datei mcpat.list (oder wie ihr sie auch nennen wollt) unter /etc/apt/sources.list.d/ mit folgenden Inhalt:
Danach geht ihr in das BP unter Addons und ihr solltet euer Depfile finden können (am besten geht ihr gleich unter "Alle")...
4. Feed mittels deb Datei verteilen (optional)
Wer will kann seinen Feed auch verteilen, dafür habe ich schon mal oben das nötige keyFile auf den Webserver gelegt. Die Struktur ist im Anhang, muss natürlich angepaßt werden, sollte selbsterklärend sein, schaut einfach in alle Dateien rein... Danach erstellt ein deb-File (siehe ganz oben) und los gehts...
Bei Fragen einfach Fragen, ich hoffe für den ersten Wurf ist es verständlich...
Gruß
MCPat