Wiki: Einstellungen speichern im Urlader-Environment

kriegaex

Aktives Mitglied
Mitglied seit
7 Nov 2006
Beiträge
2,927
Punkte für Reaktionen
3
Punkte
36
Ich habe mal wieder eine meiner kleinen Ideen im Entwickler-Wiki verewigt: das Setzen und Auslesen von Konfigurationsschaltern über proc/sys/urlader/environment, die sofort beim Start der Box, ggf. auch in einem vor rc.S startenden Init-Skript verfügbar sind, ohne deswegen gleich einen Zugriff auf /var/flash basteln zu müssen, welcher ja normalerweise erst nach Ablauf von rc.S zur Verfügung steht.

Diskussion dazu bitte hier und nicht im Thread zu ds26-14.3.
 
Vorsicht bei Verwendung der Serialnumber. Die geht in den Schlüssel für die Usernamen-Verschlüsselung in den AVM-Configdateien ein, IIRC. Kann also sein, dass man sich bei jeder Änderung die Config zerschießt ...
 
Enrik hat Recht, es hat Auswirkungen. Nachdem ich online die SN geändert hatte, konnte ich noch übers Web-UI rein mit PW, aber schon nicht mehr über Telnet. Nach Eingabe des PW wurde ich abgewiesen. Das war mir nicht aufgefallen, weil ich extern SSH verwende und intern kein PW aktiviert habe normalerweise. Das wäre also nur noch was für andere Benutzer mit inaktivem PW, wenn, ja wenn... die geänderte SN den Reboot überleben würde, was sie nicht tut. Das habe ich eben überrascht feststellen dürfen. Seltsam, den Annex kann man wohl so ändern, wieso aber nicht die SN? Und weshalb ist sie dann bei mit 0000000000000000?

Scheint eine Sackgasse zu sein, tut mir leid. Ich warte mal, ob sich noch jemand mit einer Idee oder Erklärung meldet. Falls das nicht weiter führt, lasse ich den Thread schließen und vermerke es dann im Wiki.

Update: Es gibt doch eine Möglichkeit, der Box beim Start Informationen mitzugeben. Jedenfalls funktioniert das bei mir und ist im Grunde sogar eleganter als das Ändern der Seriennummer (überlebt ja sowieso den Reboot nicht, was ich zunächst nicht bemerkt hatte). Man kann dem Parameter kernel_args nicht nur mitgeben, daß er den Annex dauerhaft ändern soll, sondern die Box bootet auch sauber, wenn man eigene Parameter mitgibt, z.B. so etwas:
Code:
echo "kernel_args [COLOR="Blue"]MySetting=yes[/COLOR]" > /proc/sys/urlader/environment
Diese Einstellung überlebt nicht nur einen Reboot sondern mehrere und auch ein FW-Update.

@Enrik & others: Welche eventuellen Nebenwirkungen sind da zu erwarten? Bisher sind mir keine aufgefallen. Anstatt nur laut zu denken wie beim Schreiben des Wiki-Artikels, habe ich dieses Mal auch ein wenig getestet und nichts Nachteiliges bemerkt. Was eine serielle Konsole sagen würde zu dem Parameter, weiß ich nicht, aber die Box bootet ja sauber und startet alle Dienste.
 
Zuletzt bearbeitet:
Update: Wiki-Artikel beschreibt jetzt die Verwendung von kernel_args und auch kurz die Verwendung des seit 15.0 eingeführten und intern benutzten kernel_args-API. Von der Verwendung der Seriennummer ist keine Reder mehr, der Artikel wurde komplett überarbeitet.
 
DS-Mod Einträge im Environment?

Was mir letztens mal durch den Kopf ging, fällt mir jetzt hier wieder ein: Wie wäre es in dem Zusammenhang mit dem Abfragen einer Variable "disable_dsmod" beim Starten desselben? Existiert di und steht auf "yes" wird der Mod nicht (oder nur bestimmte Minimaldinge, das wäre zu diskutieren). Alternativ könnte man bedenken, das auf Paket-Ebene zu tun ("disable_ds_openvpn" oder so).

Damit könnte man eine "vergurkte" Mod-Konfig durch Eingriffe im ADAM noch retten, falls man sich dadurch ausgesperrt hat (falsches Routing im Openvpn, irgend ein Problem beim Starten eines Dienstes, wie es mal beim Callmonitor war usw.)

Nur so eine Idee, vielleicht mal was für die Zukunft.

Jörg
 
Gute Idee, ich notiere mir das mal als Idee in der To-Do-Liste.
 
"DS-Notaus" ;-)

Hi,

fiel mir heute wieder ein ;-)

Wie wäre es mit einem:
Code:
--- root/etc/init.d/rc.mod.ori  2007-12-01 18:52:40.000000000 +0100
+++ root/etc/init.d/rc.mod      2007-12-01 19:45:19.000000000 +0100
@@ -32,6 +32,10 @@
        /etc/init.d/rc.swap
 }
 
+if [  -n "`grep -e "disable_dsmod=[Y|y|1]" /proc/sys/urlader/environment`" ]; then
+    echo "Start of ds-mod disabled!"
+    exit 1
+fi
 case "$1" in
        "")
dann wird ein "kernel_args disable_dsmod=y" (oder =1 oder =Y) den Start verhindern (tut er zumindest bei mir).

Jörg
 
Die Kernel Parameter stehen übrigens auch in /sbin/init als Environment zur Verfügung, und in jedem anderen von init gestarteten Programm, wenn init nicht das Environment löscht.
 
Wenn's dadurch einfacher wird...
Ich wollt nur "sichergehen", dass der Parameter auch gelesen wird ;-).
An sich wäre es vielleicht noch gut, wenn man noch ein "enable_RudiShell" oder "enable_telnet" oder sowas zusätzlich einführt, dann kann man mit dem "Problem", was das "Notaus" nötig gemacht hat, besser umgehen.

Mal sehen, demnächst...

Jörg
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.