Default-config in Firmware-Image integrieren

frank.nord

Neuer User
Mitglied seit
14 Okt 2019
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Hallo,

Ich würde gerne einige default-Optionen in das Firmware-Image integrieren. Z.B. sollte das Gast-WLAN aktiv sein, wenn die Box auf Werkseinstellungen zurück gesetzt wird.
Grundsätzlich scheint es in den AVM-Firmwares Provider-Profiledaten - d.h. auch defaults - zu geben, fwmod und die Freetz-Buildchain haben Optionen um Images zu verändern. Aber so den richtigen Durchblick habe ich leider nicht.

Wie würdest Ihr hier vorgehen? Gibt es bspw. ein Tutorial?

Danke,
Gruß, Frank
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,879
Punkte für Reaktionen
959
Punkte
113
Z.B. sollte das Gast-WLAN aktiv sein, wenn die Box auf Werkseinstellungen zurück gesetzt wird.
Schwierig ... das geht schon damit los, daß da erst einmal gar kein PSK für das Gastnetz vorhanden ist - den müßte man also gleich mitkonfigurieren oder zufällig setzen und irgendwie anzeigen.

Aber generell gilt für dieses Ändern von Standardeinstellungen, daß es da mehrere Stellen gibt, wo sie gesetzt werden und das auch noch von Modell-Reihe zu Modell-Reihe variiert. Bei der 7490 finden solche Aktionen z.B. in den Dateien "/etc/init.d/S01-head", "/etc/init.d/S08-tffs" und "/etc/init.d/S12-defaults" statt ... und das gilt nur für die Firmware bis 07.19, denn hier wirft AVM wieder vieles über den Haufen und versucht nun offenbar selbst, da etwas mehr Ordnung ins Chaos zu bringen.

Die einfachste Möglichkeit ist und bleibt es vermutlich, die Box einmal so zu konfigurieren, wie man sie nach dem Zurücksetzen auf Werkseinstellungen "sehen" will und dann diese Konfiguration zu exportieren. Danach dann das Shell-Skript zum Zurücksetzen (/bin/setfactorydefaults) so ändern, daß es nach dem Löschen aller alten Einstellungen gleich noch die gewünschten Daten wiederherstellt - das bietet dann auch den Zugriff auf Stellen, die man mit anderen Möglichkeiten (u.a. der "/etc/default.$(CONFIG_PRODUKT)/$OEM/wlan.cfg", wo man das mit dem Gastnetz auch lösen könnte) nicht erreichen kann ... angefangen bei einem vorkonfigurierten Benutzer (und der Anmeldung mit Namen und Kennwort) und z.B. einem abgeschalteten Media-Server.

Aber nach einem Tutorial wirst Du (afaik) vergeblich suchen ... wie schon geschrieben - das variiert derzeit von Modell zu Modell und von Version zu Version und AVM versucht wohl gerade selbst, da wieder etwas "Linie" hineinzukriegen, wo, wann, welche Einstellungen gesetzt werden, wenn die Box noch "leer" ist. Daher kann vieles mit der nächsten Release-Version schon wieder Makulatur sein ... der Weg, anstelle eines kompletten Löschens in "/bin/setfactorydefaults" gleich wieder die "Basis-Einstellungen" zu laden, sollte aber auch diesen Versionswechsel überstehen.

Wobei man das schlauerweise dann nicht direkt in der "/bin/setfactorydefaults" ändert (solange man das nicht automatisiert hat, dann kann man darüber nachdenken), sondern es in eine eigene Datei auslagert, die man dann aus dem AVM-Skript heraus aufruft, wenn sie denn existiert. Macht man das in einer Art und Weise, daß diese Einstellungen zunächst mal auf ihre Authentizität überprüft werden (z.B. durch eine Signatur oder ggf. auch nur durch das - komplizierte - Export-Passwort), kann man diese "Basis-Einstellungen" auch an einer Stelle ablegen, wo man sie einfacher ersetzen kann (z.B. auf NAS-Speicher) und nicht jedesmal ein neues Firmware-Image erzeugen muß (bzw. nicht einmal ein spezielles für jede betroffene Box).
 

frank.nord

Neuer User
Mitglied seit
14 Okt 2019
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Hallo,

danke für die Rückmeldung,

Schwierig ... das geht schon damit los, daß da erst einmal gar kein PSK für das Gastnetz vorhanden ist - den müßte man also gleich mitkonfigurieren oder zufällig setzen und irgendwie anzeigen.

Aber generell gilt für dieses Ändern von Standardeinstellungen, daß es da mehrere Stellen gibt, wo sie gesetzt werden und das auch noch von Modell-Reihe zu Modell-Reihe variiert. Bei der 7490 finden solche Aktionen z.B. in den Dateien "/etc/init.d/S01-head", "/etc/init.d/S08-tffs" und "/etc/init.d/S12-defaults" statt ... und das gilt nur für die Firmware bis 07.19, denn hier wirft AVM wieder vieles über den Haufen und versucht nun offenbar selbst, da etwas mehr Ordnung ins Chaos zu bringen.

Die einfachste Möglichkeit ist und bleibt es vermutlich, die Box einmal so zu konfigurieren, wie man sie nach dem Zurücksetzen auf Werkseinstellungen "sehen" will und dann diese Konfiguration zu exportieren. Danach dann das Shell-Skript zum Zurücksetzen (/bin/setfactorydefaults) so ändern, daß es nach dem Löschen aller alten Einstellungen gleich noch die gewünschten Daten wiederherstellt - das bietet dann auch den Zugriff auf Stellen, die man mit anderen Möglichkeiten (u.a. der "/etc/default.$(CONFIG_PRODUKT)/$OEM/wlan.cfg", wo man das mit dem Gastnetz auch lösen könnte) nicht erreichen kann ... angefangen bei einem vorkonfigurierten Benutzer (und der Anmeldung mit Namen und Kennwort) und z.B. einem abgeschalteten Media-Server.
Hier gibt es erstmal nur um Fritzboxes 7312 mit aktueller Software-Version. Die Idee, /etc/default.Fritz_Box_HW189/avm find' ich gut. Auch nach langem Suchen konnte ich keine Doku zu den Dateien dort finden. Ich vermute fast, dass AVM die Dinge nur an ein paar wenige ISP-Kunden heraus gibt.

Die Alternative zu diesen Hacks wär' halt GenieACS - also vermutlich ähnlich viel Arbeit.

Gruß, Frank
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
12,202
Punkte für Reaktionen
291
Punkte
83
Moinsen


Wie jetzt @PeterPawn ?
Das ist doch nur ein Gastzugang, den man nur so...
Bildschirmfoto vom 2020-04-25 17-05-20.png
...konfigurieren mussß ;)
...aber wahrscheinlich nicht mit der aktuellen Software einer 7312?
 
Zuletzt bearbeitet:

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,879
Punkte für Reaktionen
959
Punkte
113
Kommt halt darauf an, was man unter "konfigurieren" versteht. Die SSID für das "normale" WLAN ist (bei neueren Boxen) im Urlader-Environment hinterlegt, für das Gastnetz gibt es nicht mal eine SSID und das Gastnetz jetzt ständig unverschlüsselt zu betreiben, ist zwar (in Grenzen) möglich, aber auch nicht unbedingt im Sinne jedes FRITZ!Box-Besitzers - spätestens dann braucht's auch einen PSK. Und diese Angaben "fix" in der Firmware zu hinterlegen, ist in meinen Augen auch nicht so besonders schlau ... außer wieder in absoluten Spezialfällen, wie z.B. einem unverschlüsselten Freifunk-Node, wo ein PSK nicht gebraucht wird und die SSID fix ist. Dafür spielt es auch kaum eine Rolle, wie alt die Firmware ist ... ggf. gestatten ältere Versionen kein unverschlüsseltes Gastnetz.

Es ist ja nun auch nichts vollkommen Neues, daß jemand "vorkonfigurierte Boxen" verwenden will, die sich auch beim Zurücksetzen immer wieder auf eine providerspezifische Konfiguration (oder meinetwegen auch eine nutzerspezifische, wenn man das als Hobby im eigenen Netz machen will) einstellen.

Dafür hat AVM schon früher verschiedene Wege angeboten, bis hin zu TAR-Files, die von einem angesteckten USB-Stick gelesen wurden (m.W. kriegt man die bei Netcologne noch heute als Download). Auch die "provider_additive.tar" und deren "Schutzvariable" im Urlader-Environment sind ja weithin bekannt - es gibt also (für bestimmte Einstellungen) auch genug Optionen, das bei originaler Firmware vorzubelegen.

Nur kann man da eben nicht wirklich beliebige Einstellungen vorgeben ... u.a. auch kein Gast-WLAN und/oder irgendeinen administrativen Benutzer. Der Umfang dessen, was man über diese "provider additive configuration" einstellen kann, ist deutlich begrenzt - und wenn man darüber hinausgehen will, braucht man entweder tatsächlich wieder eine angepaßte Firmware oder den eigenen ACS, dessen Adresse man dann wieder über die "üblichen Mechanismen" konfigurieren könnte.
 

frank.nord

Neuer User
Mitglied seit
14 Okt 2019
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Hallo,

Kommt halt darauf an, was man unter "konfigurieren" versteht. Die SSID für das "normale" WLAN ist (bei neueren Boxen) im Urlader-Environment hinterlegt, für das Gastnetz gibt es nicht mal eine SSID und das Gastnetz jetzt ständig unverschlüsselt zu betreiben, ist zwar (in Grenzen) möglich, aber auch nicht unbedingt im Sinne jedes FRITZ!Box-Besitzers - spätestens dann braucht's auch einen PSK. Und diese Angaben "fix" in der Firmware zu hinterlegen, ist in meinen Augen auch nicht so besonders schlau ... außer wieder in absoluten Spezialfällen, wie z.B. einem unverschlüsselten Freifunk-Node, wo ein PSK nicht gebraucht wird und die SSID fix ist. Dafür spielt es auch kaum eine Rolle, wie alt die Firmware ist ... ggf. gestatten ältere Versionen kein unverschlüsseltes Gastnetz.
Jo - es geht um ein einen absoluten Spezialfall ;-).

Alles Gute
Frank
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
12,879
Punkte für Reaktionen
959
Punkte
113
Klingt interessant und offenbar hat sich da ja auch schon jemand intensiver mit Freetz auf der 7312 befaßt.

Vielleicht wäre es das Schlaueste, dann einfach mal aufzulisten, was da als "Basiseinstellungen" nach einem Reset alles aktiv sein soll - im Gegensatz zu den Standardeinstellungen von AVM.

Erst mit einer solchen Aufstellung kann man überlegen, welche dieser Einstellungen sich auf welchem Weg setzen ließe und welcher Weg letztlich derjenige wäre, der alle Einstellungen gleichzeitig "bedienen" könnte.

Auch heute noch ist das "allcfgconv" Bestandteil der Firmware, mit dem man sich nur die Differenzen zu den Standardeinstellungen ausgeben lassen kann bzw. diese auch wieder "mischen" könnte.
Code:
# allcfgconv -?
usage: allcfgconv [options]
options:
  -?                 - print this help
  -C STRING          - configtype. ("ar7")
  -i STRING          - input configfile instead of flash. (NULL)
  -M STRING          - input configfile to merge. (NULL)
  -m STRING          - input diff file to merge. (NULL)
  -O STRING          - input configfile to overwrite. (NULL)
  -o STRING          - output configfile. ("")
  -e                 - output even if load error. (NOTSET)
  -t                 - debug in gettoken. (NOTSET)
  -d STRING          - input destination configfile to diff (diff is "dest - src") (default is current config). (NULL)
  -s STRING          - input source configfile to diff (default is real factory default). (NULL)
  -D STRING          - switch debug logs on. (FUNC)
convert configuration
#
- wobei ich das schon lange nicht mehr getestet habe, ob das bei den ganzen neuen Einstellungen, die AVM in letzter Zeit eingeführt hat, immer noch funktioniert.

Aber die 7312 ist ja auch schon ein paar Tage älter ... da sind einige der neuen Einstellungen auch noch gar nicht vorhanden.