/var/etc/rc.boot-x

Aus open7x0.org

Wechseln zu: Navigation, Suche

Die Script-Dateien /var/etc/rc.boot-3 bis /var/etc/rc.boot-9 bestimmen die Menu-Einträge 3 bis 9 des Boot-Menus. Sie legen sowohl den Menu-Text als auch die Aktion fest.


Inhaltsverzeichnis


Menu-Text

Der Text für das Boot-Menu kann statisch mit '#menutext#' oder dynamisch mit '#generic-menutext#' vorgegeben werden, wobei '#generic-menutext#' Vorrang hat.

#menutext#

Es wird erste Zeile gesucht, die mit dem Schlüsselwort '#menutext#' beginnt, wobei Groß-/Kleinschreibung unerheblich ist. Der Text hinter diesem Schlüsselwort wird 1:1 übernommen, wobei überlange Texte abgeschnitten werden.

Syntax: '#menutext#' Der Menu-Text

#generic-menutext#

Es wird erste Zeile gesucht, die mit dem Schlüsselwort '#generic-menutext#' beginnt, wobei Groß-/Kleinschreibung unerheblich ist:

Syntax: '#generic-menutext#' ['enabled']

Sollte das erste Wort hiernach 'enabled' lauten, dann wird das Script mit zwei Parametern aufgerufen:

  • Der erste Parameter lautet '--menutext'. Damit wird dem Script angezeigt, dass es zur Erzeugung des Menu-Textes aufgerufen wird.
  • Der zweite Parameter ist eine Ziffer aus dem Bereich '3' bis '9' und gibt die Nummer des Menu-Eintrages an.

Das Script hat nun die Aufgabe, den Menu-Text zu erzeugen und auf stdout auszugeben. Dabei wird nur die erste Ausgabezeile berücksichtigt, wobei überlange Texte abgeschnitten werden.

Aufruf nach Auswahl

Wird der entsprechende Menu-Punkt im Boot-Menu ausgewählt, dann wird das Script mit einem Parameter ausgerufen:

  • Der Parameter ist eine Ziffer aus dem Bereich '3' bis '9' und gibt die Nummer des Menu-Eintrages an.

Rückgabewert (exit status)

Das Script signalisiert durch seinen EXIT-Status, ob das Boot-Menu wieder angezeigt oder endgültig beendet werden soll:

  • Ein EXIT-Status von 0 (==true) signalisiert, dass das Boot-Menu ohne weietre Anzeige beendet werden soll.
  • Ein EXIT-Status ungleich (==false) signalisiert, dass das Boot-Menu wieder angezeigt und aktiviert werden soll.

Beispiele

Die meisten der folgenden Beispiele und weitere Scripts befinden sich in SVN unter »bootmenu«.

Boot-Menu beenden

Mit dem folgenden Script (rc.boot-9) kann das Boot-Menu beendet werden:

#!/bin/sh
#menutext# bootmenu beenden

Text, der im Boot-Menu erscheint.

/usr/bin/txt2osd -r -d0 ""

Bildschirm löschen.

exit 0

Script mit Status 0 beenden → das Boot-Menu beenden.

Start des VDR

In diesem Abschnitt werden für das Boot-Menu relevante Stellen des VDR-Start-Scriptes (rc.boot-3) erläutert.

#generic-menutext# enabled

Die generische Erzeugung des Boot-Menu-Textes wird aktiviert.

#menutext# VDR

Für alte Firmware-Versionen, die '#generic-menutext#' nicht unterstützen, existiert auch ein statischer Menu-Text.

# Option --menutext?
menutext=0
if [[ "$1" == "--menutext" ]]
then
   menutext=1
   shift
fi

Falls die Option --menutext existiert, dann soll der Menu-Text generisch erzeugt werden. Das Vorhandensein der Option wird in der Variable menutext festgehalten.

Hiernach (durch 'shift') enthält $1 auf jeden Fall den Nummer des Menu-Eintrages.

# Datei mit den lokalen Einstellungen
setup="/var/etc/vdr-settings-$1.txt"

Hier wird zuerst eine Setup-Datei definiert, die abhängig von der Nummer des Menu-Eintrages ist.

[[ ! -f "$setup" ]] && setup="/var/etc/vdr-settings.txt"

Falls diese Datei nicht existiert, dann wird eine Standard-Datei (ohne Nummer) verwendet.

# diverse Einstellungen
...

Nun folgen divere Einstellungen...

if [[ -f "$setup" ]]
then
   DEVICE_MODE=UNKNOWN
   dos2unix -u "$setup"
   source "$setup"
fi

... und das laden der Konfigurationsdatei. Vor dem Laden wird durch den Aufruf von 'dos2unix -u' dafür gesorgt, dass die Datei auf jeden Fall im Unix-Zeilenenden besitzt.

...
if (( $menutext ))
then
   echo "$TITLE1 $TITLE2"
   exit
fi

Nach der Auswertung der Konfigurationsdatei wird entweder der Menu-Text ausgegeben und das Script weiter abgearbeitet.

...
exit 1

Ganz zum Schluß terminiert das Script mit dem Status 1. Hierdurch wird das Boot-Menu aktiviert und wieder angezeigt.

Start des VDR II

Dieses Beispiel (rc.boot-4) ist ein Wrapper für das vorherige VDR-Start-Script. Es wird ein weiterer Menu-Eintrag erzeugt, für den andere Einstellungen verwendet werden.

#!/bin/sh
#menutext# VDR

Für alte Firmware-Versionen, die '#generic-menutext#' nicht unterstützen, existiert auch ein statischer Menu-Text.

#generic-menutext# enabled

Die generische Erzeugung des Boot-Menu-Textes wird aktiviert.

/var/etc/rc.boot-3 "$@"

Das Orignal-VDR-Start-Script wird aufgerufen und erhält alle Variablen.

exit $?

Der Exit-Status des Orignal-VDR-Start-Scriptes wird hier verwendet. Der befehl ist nicht notwendig, verdeutlicht aber den Willen, den Exit-Status zu übernehmen.

Links zum Thema »Lemmis Firmware« 

Persönliche Werkzeuge