Die start.sh

In die Startprozedur der open_FW wurde eine Abfrage eingearbeitet, welche prüft, ob eine User-Startscript-Datei start.sh im Verzeichnis bzw. der Dateifreigabe userconf existiert. Wird diese start.sh gefunden: wird sie abgearbeitet (und bis der open-FW-Version 0.2 der interne Start von VSFTP und Last_Power_State nicht ausgeführt).

Exisitiert die Datei oder das Verzeichnis nicht: wird der Start normal fortgesetzt.

Wichtig: Zur Verwendung dieser Funktion darf das standardmäßg vorhandene Volume Main nicht umbenannt sein!

Das Verzeichnis userconf wird mit dem Netcenter-Manager auf dem Volume Main angelegt, wahlweise mit NFS- und CIFS-Zugriff und unbedingt mit einem starken Passwort (also eine Kombination aus Buchstaben und Zahlen). Darin wird dann ganz normal über das Betriebsystem die Datei start.sh gespeichert und ab dem nächsten Start des Netcenters verwendet.

Notfallprozedur start.sh
Durch unkorrekte oder unzulässige Anweisungen innerhalb der start.sh kann es u.U. dazu kommen, dass das Netcenter in eine reboot-Endlos-Schleife fällt und/oder der Zugriff auf die Verzeichnisse über das Betriebsystem nicht mehr möglich ist. Dadurch wäre dann auch der Zugriff auf die start.sh nicht mehr möglich, um die Anweisung korrigieren zu können. In einem solchen Fall bleibt momentan nur übrig, die im Forum -> Updates -> "FAG: Netcenter-Firmware wieder herstellen" beschriebene Prozedur auszuführen (ich arbeite schon an einer Notstart-Funktion in Verbindung mit dem Soft-Reset, die dann die start.sh nicht ausführt). Daher bitte bei kritischen Befehlszeilen erst mal im Forum rückfragen, ich kann diese per serieller Konsole testen und sehe dann auch die Rückmeldungen.

Anweisungen, wie reboot o.ä., werden so eine Endlosschleife verursachen und gehören daher niemals in die start.sh!

Update 26.09.2006: Der mögliche Inhalt der start.sh:

# USER START SCRIPT
# edit with unix-compatible editor!

# set timezone
nvram set time_zone=Europa/Berlin
nvram commit
(Korrektur der Zeitzonenanzeige)

# start set time
ntpclient -d -s -i 1 -h ptbtime1.ptb.de
(Zeitsynchronisation über Internet)

# timeout harddisk inactiv
#nvram unset initial_disk_spin_down_setting
#nvram commit
(Deaktivierung der zeitgesteuerten Abschaltung des Spindelmotors der Festplatte /
bei Verwendung muss die nachfolgende Option "harddisk activ ..." auskommentiert werden)

# timeout harddisk activ 600 seconds
nvram set initial_disk_spin_down_setting=600
nvram commit
(Abschaltung des Spindelmotors der Festplatte erfolgt 600 Sekunden nach letztem Zugriff /
Standardeinstellung ist 180 Sekunden)

# set network mode
#ifconfig eth0 media 100baseT media opt full-duplex
ifconfig eth0 media 100baseT media opt half-duplex
#ifconfig eth0 media 10baseT media opt full-duplex
#ifconfig eth0 media 10baseT media opt half-duplex
(Einstellungen der Netzwerkschnittstelle)
>> Diese Zeilen müssen noch überarbeitet werden,
da das Lan-Interface (wohl) nicht darauf reagiert
Überarbeitung erfolgt in einer nächsten FW-Version

# set vsftp user-directory
#echo "secure_chroot_dir=/..." >> /tmp/vsftpd.conf
(Zugriff auf ein bestimmtes Verzeichnis beschränken)
>> Diese Zeilen müssen noch überarbeitet werden,
da das user-directory so nicht verwaltet werden kann!
Überarbeitung erfolgt in einer nächsten FW-Version

# vsftp
vsftpd &
(Start des VSFTP-Servers)

# Last-Power-State
nvram unset kernel_boot_wait_gpio
nvram commit
(siehe Erläuterungen weiter unten)

# system log
#syslogd
#klogd

# copy log to userconf
# ...für zukünftige Log-Funktionen reserviert
#cp /var/log/messages /shares/Main/userconf/messages
#chmod 777 /shares/Main/userconf/messages
(Mitloggen des Netcenter-Starts etc. in einer dann über Windows zugänglichen Datei)
>> Diese Zeilen müssen noch überarbeitet werden,
da das Loggen noch eine Umleitung der Konsole erfordert!
Überarbeitung erfolgt in einer nächsten FW-Version

... to be continued

Allgemeine Beschreibung

Die start.sh sollte grundsätzlich nur mit einem Unix-fähigem Editor bearbeitet werden! (Windows-User sollten den Notespad-Editor verwenden, zu finden durch Google - bitte genau die Schreibweise mit s beachten und nicht mit dem Windows-Notepad-Editor verwechseln). Nach Änderungen an der start.sh immer das Netcenter mit dem Fronttaster manuell herunter- und wieder hochfahren.

In der start.sh können nun alle sonst nur intern ausführbare Linux-Befehle verwendet werden. Zum Beispiel wget, um Dateien aus dem Internet zu laden (wobei der interne Verweis auf das Verzeichnis userconf komplett /shares/Main/userconf lautet) oder nvram set/unset um die Einstellungen/Optionen des NVRAM zu ändern (siehe dazu auch unter FIRMWARE _serial -> DUMP-Log den Abschnitt NVRAM-SETTINGS, da sind die Grundeinstellungen bei jedem Start des Netcenters aufgelistet).

Zeilen die hinter dem # ein Leerzeichen haben, sind reine Beschreibungszeilen ohne Funktion. Bei Zeilen, die kein Leerzeichen zwischen # und dem nachfolgenden Text haben, handelt es sich um einen deaktivierte Befehlszeile (oder einen Schreibfehler ;-). Das Einfügen/Entfernen des vorangestelltes # deaktiviert/aktiviert die Ausführung dieser Befehslzeile in der start.sh.

Erläuterung der Funktionen

start set time
Synchronisiert die interne Uhr des Netcenters mit einem Zeitserver im Internet. Dazu muss eine Verbindung ins Internet bestehen (Anschluss an einen Router).

timeout harddisk
Aktiviert/Deaktiviert das Abschalten der Festplatte im Netcenter nach einer einstellbaren Zeitspanne (in Sekunden), die seit dem letzten Zugriff vergangen ist.

set network mode
Interessant für D-Box-Besitzer dürften die Optionen bei set network mode sein, besonders die letzte Zeile. Damit wird der Netzwerkanschluss fest auf 10baseT half-duplex eingestellt. Ich bin aber noch nicht sicher, ob diese Anweisung vom Broadcomm-Chip des Netcenters auch korrekt ausgeführt wird. Die Befehle werden zwar ohne Fehlermeldung angenommen und per serieller Konsolenausgabe das darauf folgende intern notwendige Beenden und Neustarten des Netzwerkdienstes angezeigt, aber getestet habe ich das mit der D-Box noch nicht. Rückmeldungen dazu bitte im Forum im Sammelthread zur open0.2-Fimmware.

set vsftp user-directory und vsftpd
Legt ein bestimmtes Verzeichnis als Startverzeichnis beim Einloggen über den mit vsftpd gestarteten VSFTP-Server fest.

system log und copy log to userconf
Nach Aktivieren der Logginfunktion wird der Systemstart und weiteres in eine Datei messages mitgeloggt. Damit diese leicht mit Notespad & Co angesehen werden kann, wird sie ins Verzeichnis userconf kopiert und dabei die Dateirechte geändert.

--------------------

Und hier einige vorbereitete start.sh-Dateien zum Downloaden:
(einfach in das Netcenter-Verzeichnis userconf kopieren und dann in start.sh umbenennen)

01_start.sh - nur Zeitsysnchronisation beim Hochfahren aktiviert (Netcenter benötigt eine direkte Verbindung ins I-Net)
02_start.sh - nur VSFTP aktiviert
03_start.sh - nur Last_Power_State aktiviert
04_start.sh - Netzwerkschnittstelle auf 10baseT / half_duplex eingestellt + Last_Power_State (für D-Box)
05_start.sh - VSFTP + Last_Power_State + Festplatten-Spindown nach 10 Minuten + Zeitzonenkorrektur

Home