MLD - Addons erstellen

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K
 
(14 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''erst einmal nur eine Sammlung von bereits geschriebenen Artikeln'''
+
== Aufbau ==
  
Im Install-Script /tmp/install werden nur Aktionen ausgeführt die nur einmalig wehrend der ersten Installation durchzuführen sind (ohne Aktiviertem FastBoot werden diese bei jedem Booten ausgeführt). Aktionen die bei jedem Booten erforderlich (Also auch bei aktiviertem FastBoot) sind gehören nach /etc/rc.d/ADDONNAME und werden von /etc/rc.d/boot/SxxADDONNAME verlinkt, wobei xx die ausführungsreihenfolge bestimmt und ADDONNAME durch den Namen des Addons zu ersetzen ist und S für start (booten) bzw. K für kill (runterfahren) steht. Die Skripte werden beim booten und runterfahren automatisch aufgerufen, müssen also im install-Script nicht aufgerufen werden.
+
Addons haben einen sehr einfachen Aufbau. Jede enthaltene Datei ist im Addon so platziert, wie sie nach der Installation auch im root Dateisystem platziert sein soll. Enthält ein Addon z.B. das Skript myScript und soll dieses im Ordner /usr/bin platziert werden, so ist es auch im Addon unter usr/bin/myScript zu finden. Addons sind also einfach dadurch zu erstellen, das man einen Ordner mit dem Namen des Addons erstellt, alles so da drin platziert wie es später im root Dateisystem platziert werden soll, und anschließend diesen Ordner komprimieren.
  
 +
Es gibt jedoch einige Kleinigkeiten zu beachten:
 +
* Nach dem Installieren des Addons wird das Skript '/INSTALL install' ausgeführt, sofern es im Addon enthalten ist.
 +
** mit 'register_setting' lässt sich eine Konfigurations Variable in /etc/rc.config anlegen
 +
** mit 'register_config' lässt sich eine im Ordner /tmp liegende Konfigurationsdatei so speichern, das diese dauerhaft editierbar ist (dies geht auch mit Ordnern)
 +
*** dadurch werden die Dateien im Konfigurationsverzeichnis auf der Festplatte /etc/mld/etc abgelegt und nach /etc verlinkt
 +
* vor dem deinstallieren eines Addons wird das Skript '/INSTALL uninstall' ausgeführt
 +
* Skripte die im Ordner /etc/rc.d abgelegt sind und vom Ordner etc/rc.d/boot.d verlinkt sind werden bei jedem Systemstart/Shutdown oder installieren/deinstallieren ausgeführt.
 +
** die Skripte in /etc/rc.d haben den Namen des Addons
 +
** die Namen der Links in etc/rc.d/boot.d beginnen mit einem S wenn diese beim Systemstart, mit einem K wenn sie beim Shutdown, mit einem H wenn sie beim Wechsel in den suspendToRam modus, oder mit einem R wenn sie beim Wechsel aus den suspendToRam Modus ausgeführt werden sollen. Es folgt eine zweistellige Nummer welche die Reihenfolge regelt in der die Skripte ausgeführt werden sollen (meistens die Nummer des Addons), und der Name des Addons (Bsp.: S13addonname, K45addonname).
 +
* Abhängigkeiten von anderen Addons werden in /INSTALL eingetragen, wobei jede Zeile den Namen eines Addons enthält
 +
* jedes Addon sollte eine Dokumentation enthalten die unter usr/share/doc/ADDONNAME/ abgelegt wird.
  
 +
== Installation ==
  
'''ne kurtze Beschreibung zum Aufbau des /etc Ordners:'''
+
Alle im Ordner /etc/addons liegenden Addons werden bei jedem Systemstart installiert, da das Dateisystem bei jedem Systemstart neu eingerichtet wird. Eine Ausnahme ergibt sich wenn die FastBoot Option aktiviert ist. Nachdem alle Addons Installiert wurden, wird das Fastboot Image angelegt und anschließend werden alle unter /etc/rc.d/boot.d liegenden Startskripte ausgeführt.
  
Die meisten Configurationsdatein im /etc Ordner gehen nach dem Abschalten des MLD-PCs verloren. Sie werden nicht dauerhaft gespeichert. Sollen Konfigurationsdatein dauerhaft editierbar sein, so werden diese vom /tmp/install Script der jeweiligen Addons in den etc Ordner auf dem Installationslaufwerk gelegt (typischerweise /mnt/hda1/mld/etc). In /etc wird anschliessend ein symbolischer Link zum eigendlichen Speicherplatz der Datei angelegt.
+
Mit dem apm Tool (addon packet manager) können Addons von Hand De-/Installiert werden. Hierbei wird sowohl das un-/install Skript als auch das Startskript aufgerufen.
Diese Datein können nun im Ordner /etc dauerhaft editiert werden. Werden im Ordner /etc jedoch Datein neu angelegt, gehen diese beim nächsten Booten verloren. Im allgemeinen sollte dies jedoch kein Problem darstelllen, da alle Interessanten Datein zum Installationslaufwerk verlinkt sind.
+
Übrigens ist z.B. der gesammte /etc/vdr Ordner verlinkt.
+
Um zu schauen welche Datein permanent sind reicht ein einfaches 'ls -l' im Ordner /etc
+
  
 +
== FastBoot ==
  
 +
Bei aktiviertem FastBoot wird das Dateisystem nur dann neu eingerichtet und die Addons installiert, wenn sich etwas an der Zusammenstellung der Addons geändert hat. Andernfalls wird mit einem Abbild des Dateisystems gearbeitet das Direkt nach dem Installieren der Addons erstellt wurde.
  
'''Bootvorgang der MLD'''
+
So werden dann auch nicht die im Addon enthaltenen tmp/install Skripte ausgeführt, sondern lediglich die unter /etc/rc.d/boot.d liegenden Startskripte. Aus diesem Grund muss das Laden von Treibern und das Starten von Dämons im Startskript erfolgen.
  
Diese Beschreibung geht davon aus das die MLD auf dem Laufwerk /dev/hda1 installiert ist
+
[[Kategorie:MLD]]
 
+
- der Bootloader wird geladen
+
- Der Bootloader läd die Initial Ram Disk (/mnt/hda1/mld/boot/initrd.gz) und den Kernel (/mnt/hda1/mld/boot/image) und entzippt beide
+
- Der Kernel startet und mountet die initrd nach /
+
- Der Kernel übergibt die Kontrolle an das script /linuxrc
+
- linuxrc kopiert das root Filesystem (die gemountete initrd) in ein ramfs Laufwerk (das ist ein ram Laufwerk das die größe dynamisch an den Inhalt anpasst), aktiviert dieses als root entmountet das alte root (initrd), startet /bin/init und beendet sich
+
- init schaut in /etc/inittab nach welches script als erstes zu starten ist und ruft dieses auf (/etc/rc.d/rc.sysinit)
+
- rc.sysinit
+
- steht der Kernelparameter logs (append Parameter in der lilo.conf) auf 2 werden alle Meldungen ausgegeben, ansonsten nur die im Normalbetrieb interessanten
+
- wenn logs aktivier ist ruft rc.sysinit sich selber auf und lenkt sämptliche ausgaben sowol auf den Bildschirn als auch in die Datei /var/log/sysinit
+
- systemdevices werden gemountet (/proc, /sys, ...)
+
- logging wird gestartet (syslogd und klogd)
+
- cd-Laufwerk wird gesucht und /dev/cdrom und /dev/dvd werden angelegt
+
- Festplatten werden gesucht in /etc/fstab eingetragen und gemountet
+
- ...
+
- Addons werden geladen und nach / entzippt
+
- /tmp/install wird aufgerufen
+
- /tmp/* wird gelöscht
+
- /etc/rc.d/rc.start wird aufgerufen
+
- alle /etc/rc.d/boot.d/S* Scripte werden der reihenach gestartet
+
- init startet die login Konsolen
+

Aktuelle Version vom 18. August 2013, 14:11 Uhr

[Bearbeiten] Aufbau

Addons haben einen sehr einfachen Aufbau. Jede enthaltene Datei ist im Addon so platziert, wie sie nach der Installation auch im root Dateisystem platziert sein soll. Enthält ein Addon z.B. das Skript myScript und soll dieses im Ordner /usr/bin platziert werden, so ist es auch im Addon unter usr/bin/myScript zu finden. Addons sind also einfach dadurch zu erstellen, das man einen Ordner mit dem Namen des Addons erstellt, alles so da drin platziert wie es später im root Dateisystem platziert werden soll, und anschließend diesen Ordner komprimieren.

Es gibt jedoch einige Kleinigkeiten zu beachten:

  • Nach dem Installieren des Addons wird das Skript '/INSTALL install' ausgeführt, sofern es im Addon enthalten ist.
    • mit 'register_setting' lässt sich eine Konfigurations Variable in /etc/rc.config anlegen
    • mit 'register_config' lässt sich eine im Ordner /tmp liegende Konfigurationsdatei so speichern, das diese dauerhaft editierbar ist (dies geht auch mit Ordnern)
      • dadurch werden die Dateien im Konfigurationsverzeichnis auf der Festplatte /etc/mld/etc abgelegt und nach /etc verlinkt
  • vor dem deinstallieren eines Addons wird das Skript '/INSTALL uninstall' ausgeführt
  • Skripte die im Ordner /etc/rc.d abgelegt sind und vom Ordner etc/rc.d/boot.d verlinkt sind werden bei jedem Systemstart/Shutdown oder installieren/deinstallieren ausgeführt.
    • die Skripte in /etc/rc.d haben den Namen des Addons
    • die Namen der Links in etc/rc.d/boot.d beginnen mit einem S wenn diese beim Systemstart, mit einem K wenn sie beim Shutdown, mit einem H wenn sie beim Wechsel in den suspendToRam modus, oder mit einem R wenn sie beim Wechsel aus den suspendToRam Modus ausgeführt werden sollen. Es folgt eine zweistellige Nummer welche die Reihenfolge regelt in der die Skripte ausgeführt werden sollen (meistens die Nummer des Addons), und der Name des Addons (Bsp.: S13addonname, K45addonname).
  • Abhängigkeiten von anderen Addons werden in /INSTALL eingetragen, wobei jede Zeile den Namen eines Addons enthält
  • jedes Addon sollte eine Dokumentation enthalten die unter usr/share/doc/ADDONNAME/ abgelegt wird.

[Bearbeiten] Installation

Alle im Ordner /etc/addons liegenden Addons werden bei jedem Systemstart installiert, da das Dateisystem bei jedem Systemstart neu eingerichtet wird. Eine Ausnahme ergibt sich wenn die FastBoot Option aktiviert ist. Nachdem alle Addons Installiert wurden, wird das Fastboot Image angelegt und anschließend werden alle unter /etc/rc.d/boot.d liegenden Startskripte ausgeführt.

Mit dem apm Tool (addon packet manager) können Addons von Hand De-/Installiert werden. Hierbei wird sowohl das un-/install Skript als auch das Startskript aufgerufen.

[Bearbeiten] FastBoot

Bei aktiviertem FastBoot wird das Dateisystem nur dann neu eingerichtet und die Addons installiert, wenn sich etwas an der Zusammenstellung der Addons geändert hat. Andernfalls wird mit einem Abbild des Dateisystems gearbeitet das Direkt nach dem Installieren der Addons erstellt wurde.

So werden dann auch nicht die im Addon enthaltenen tmp/install Skripte ausgeführt, sondern lediglich die unter /etc/rc.d/boot.d liegenden Startskripte. Aus diesem Grund muss das Laden von Treibern und das Starten von Dämons im Startskript erfolgen.