Wenn man ein Shell-Skript "tracen" will (also die ausgeführten Kommandos verfolgen möchte), kann man entweder beim Aufruf der Shell das Flag "-x" mit angeben (das gilt sowohl für die Form "/bin/sh -x <scriptname> <parameter>" auf der Kommandozeile als auch für die Angabe im "SheBang", wo man tatsächlich auch "#! /bin/sh -x" setzen kann) oder man kann dieses Flag nachträglich per "set"-Kommando an einer gewünschten Stelle im Skript erst setzen, dann beginnt die Ausgabe erst dann, wenn diese Stelle zum ersten Mal passiert wurde (falls das Skript da mehrfach vorbeikommt bei der Abarbeitung).
Hat man ein längeres Skript und will - rein aus Gründen der Übersichtlichkeit - nur einen Ausschnitt darin "verfolgen", dann setzt man vor die erste interessante Zeile einfach eine weitere mit dem Inhalt "set -x" und hinter die letzte interessante Zeile wieder ein "set +x" ... damit werden einem bei der Abarbeitung genau die Zeilen dazwischen auf STDERR angezeigt, BEVOR sie ausgeführt werden.
Wobei ich noch einmal daran erinnern will, daß der Umweg über die ältere Version von mir nur deshalb empfohlen wurde, weil Du Dir daraus die benötigte Konfigurationsdatei für das andere OpenVPN-GUI-Paket kopieren wolltest/solltest. Das sind also zwei verschiedene Paar Schuhe bzw. unterschiedliche Ziele, die hier verfolgt werden ... einmal die Suche nach der Problemursache unter 07.10 und einmal die Suche nach einer funktionierenden Konfigurationsdatei für das andere OpenVPN-GUI (openvpn-v2-gui).
Wenn Du bei einer TUN-Verbindung schon mal bis zu der Stelle kommst, wo Dir irgendwas im Freetz-Interface mit "grün" angezeigt wird, dann gab es ja schon sehr, sehr viele weitere Schritte, die nach dem Start des OpenVPN-Daemons noch ausgeführt wurden ... denn bis zur Aktualisierung im Freetz-GUI passiert da schon noch so einiges. Das mit dem "Sekundenbruchteil" mag also auf der t-Achse stimmen, sagt aber nur wenig darüber aus, was da im Hintergrund passiert.
------------------------------------------------------------------------------------------------------------
Gerade weil Du - nach eigener Einschätzung - so wenig Erfahrung hast, würde ich an Deiner Stelle zuerst mal unter 07.01 versuchen, eine funktionsfähige Konfiguration für das neuere OpenVPN-GUI zu erstellen (schließlich hast Du diesen "Wunsch" des Wechsels des GUI ja in #80 deutlich zum Ausdruck gebraucht), weil man dort eben weiß, daß es (zumindest bei anderen) noch funktioniert. Danach erst würde ich mich mit genau dieser Konfiguration auf eine 07.10 stürzen ... nach den jüngsten Ergebnissen halte ich es jedenfalls für extrem wahrscheinlich, daß das Problem gar nicht durch den OpenVPN-Daemon direkt verursacht wurde, sondern eher durch das "brctl addif", was vom rc-Skript bei einer Verbindung mit einem TAP-Device aufgerufen wird.
Allerdings kann man das ja auch wieder sehr gut testen, indem man aus dem regulären rc-Skript genau dieses Kommando entfernt (einfach mit einem Editor vor dem Build-Aufruf die vier Zeilen (
https://github.com/Freetz/freetz/blob/master/make/openvpn-cgi/files/root/etc/init.d/rc.openvpn#L40) löschen) und dann - bei konfigurierter TAP-Verbindung, die man zuvor unter 07.01 auch auf korrekte Funktion getestet hat - das "brctl addif lan tapX" einfach von Hand aufruft. Dann sollte das System - wenn die angenommene Ursache stimmt - eben erst bei dieser manuellen Eingabe abstürzen.
Es ist auch nicht so vollkommen unerwartet und unwahrscheinlich, daß bei einem "brctl" für das Interface "lan" (über das u.a. auch eine Telnet- oder SSH-Session läuft) die Bridge noch einmal (über entsprechende Callback-Routinen) von der AVM-Firmware neu initialisiert wird - da hat sich (zumindest darf man das auch aufgrund anderer Probleme beim WLAN vermuten) wohl durch das Mesh einiges an den inneren Zusammenhängen bei AVM geändert - was auch nicht wirklich verwunderlich wäre, wenn man bedenkt, daß beim Mesh auch schon mal etwas getrickst wurde und wird, wenn man einen Client ohne entsprechende Fähigkeiten (mit den passenden Erweiterungen des WLAN-Standards) partout auf ein anderes Interface "zwingen" will - da wird dann auch schon mal die Anmeldung an dem einen verweigert (obwohl sie eigentlich richtig wäre) oder auch mal ein Interface kurz stillgelegt - allerdings weiß ich nicht, ob das in den neuesten Versionen immer noch so ist.
------------------------------------------------------------------------------------------------------------
Warum Du nun nicht mehr von der 07.10 auf eine 07.01 downgraden kannst unter Freetz-Bedingungen, kann ich Dir jedenfalls auch nicht so aus dem Stand sagen ... ich gehe mal davon aus, daß Freetz das "/var/install"-Skript auch mit dem korrekten Parameter (das wäre in diesem Falle ein "-d") aufruft? Mich hat dieser Mechanismus der Installation in Freetz nie wirklich interessiert, daher kenne ich dort den aktuellen Stand auch nicht (früher gab es jedenfalls auch mal ein Protokoll des Aufrufs von "/var/install"?).
Aber mit der Labor-Reihe 07.08 hat AVM eben auch selbst diesen neuen Downgrade-Mechanismus etabliert und der hat auch Auswirkungen auf die "/var/install" (habe ich mal ganz am Beginn der Labor-Reihe - inzwischen vermutlich vor über einem halben Jahr - im IPPF aufgeschrieben) und sollte auch irgendwelche Änderungen in Freetz nach sich ziehen.
Ich bin mir nicht mal sicher, ob bei AVM die "/var/install" jetzt noch in jedem Falle sauber arbeitet, wenn man diese nur mit "-f" aufruft. Warum? Weil da gleich bei der Feststellung, daß als Parameter ein "-f" angegeben wurde (was von der Bedeutung her ein Downgrade mit Werkseinstellungen ist, im Gegensatz zum "-d", wo die Einstellungen erhalten bleiben), die bisherigen Einstellungen gelöscht werden und zwar schon zu einem Zeitpunkt, wo noch nicht einmal geprüft wurde, daß die neuen Dateien für Kernel und Dateisystem tatsächlich vorhanden und gültig sind (die könnten ja - zumindest theoretisch - auch durch mangelnden Platz beim Entpacken nur partiell den richtigen Inhalt haben).
Dann kommt noch hinzu, daß i.d.R. der "ctlmgr" ja auch beim Herunterfahren des Systems noch die eine oder andere Einstellung (quasi als "Abschluß") schreibt ... und wenn der noch läuft und irgendetwas Neues schreibt, macht er die Bemühungen zum Löschen der alten Einstellungen gleich wieder zunichte. Das erscheint mir - zumindest wenn meine Annahmen noch stimmen, die ja i.d.R. auf der Beobachtung älterer Versionen beruhen - zu wenig getestet ... auch weil es bei AVM (außer über TR-069, bei TR-064 weiß ich es nicht) wohl gar nicht mehr so ohne weiteres auszulösen ist, daß die "/var/install" mit "-f" als Parameter aufgerufen wird vom "firmwarecfg"-Binary.
------------------------------------------------------------------------------------------------------------
Generell zum Freetz und zur Installation neuer Firmware:
Wobei eben auch in Freetz
inzwischen viel Bullshit passiert, wenn man sich das tatsächlich ausgeführte Update-Skript mal genauer ansieht:
https://github.com/Freetz/freetz/blob/master/make/mod/files/root/usr/lib/mww/do_update_handler.sh
Das geht bei Zeile 88 los, wo für ein "Downgrade" gerade mal noch die "/etc/version" durch eine andere ersetzt wird, die eine uralte Versionsnummer vorgaukelt. Vom Löschen irgendwelcher Einstellungen, wie es bei AVM bei einem echten Downgrade mit "-f" geschieht, ist da weit und breit nichts zu sehen.
Zwar wird auch von Freetz dann (wie vom originalen "firmwarecfg") noch das "prepare_fwupgrade" aufgerufen, welches tatsächlich einen Teil der Dienste von AVM beendet, aber das ersatzlose Löschen der "/var/post_install" von AVMin Zeile 170 ist auch deutlich "old school" und reichlich kühn, wenn man sich die aktuellen "/var/install" von AVM ansieht:
Code:
# next: prepare_update
#! /bin/sh
##################################################################################
# prepare install
##################################################################################
# do no longer overwrite/remove /var/post_install
if [ ! -f /var/post_install ] ; then
# create, if not present
echo "#! /bin/sh" >/var/post_install
fi
# append sequence to /var/post_install
echo 'echo $0: start' >>/var/post_install
und das steht da nicht erst seit FRITZ!OS 7 drin.
In der originalen "/var/post_install" werden halt viele Dienste noch einmal
sauber (oder zumindest sauberer) beendet, die sich in "prepare_fwupgrade" nicht so ohne weiteres beenden ließen und trotzdem vor dem "harten Reboot" noch einigermaßen vernünftig beendet werden sollten.
Am Ende wäre meine Einschätzung, daß man in Freetz das Installieren einer anderen Firmware (egal ob mit oder ohne Downgrade und hier auch noch, ob mit oder ohne Verlust der bisherigen Einstellungen) mal dringend überarbeiten müßte ... für jeden dieser Fälle bieten die (aktuellen) Skripte von AVM die passende Option an und irgendwelche Kunstgriffe sind da gar nicht (mehr) notwendig. Ebenso ist die Annahme (bzw. die Aussage im Text), man könne auch nach dem Abarbeiten der "/var/install" das alles noch in jedem Falle wieder ungeschehen machen, indem man einfach den Stecker zieht, lange nicht mehr für alle Modelle richtig - die Abläufe bei der Installation sind ganz unterschiedlich, je nach Architektur und Freetz täte (in meinen Augen jedenfalls) gut daran, sich bei der Installation auf die Erfahrungen der AVM-Leute zu verlassen. Wenn diese zu der Einschätzung gelangen, daß man die Vorgänge auf unterschiedlichen Modellen auch unterschiedlich ablaufen lassen sollte, würde ich mich nur dann wagen, dieser Einschätzung zu widersprechen, wenn ich es tatsächlich - zumindest auf empirischer Basis - besser weiß. Bis dahin würde ich einfach meine Images signieren und über das Datei-Update von AVM einspielen ... der "firmwarecfg" sollte auch in aktueller Firmware wissen, wie er mit einem Update umgehen muß.
Schon das Löschen der "/var/post_install" vor dem Aufruf der "/var/install" durch Freetz ist jedenfalls ein Schritt, der in vielen Fällen tatsächlich keine Auswirkungen haben mag, weil sich z.B. alle Dienste sauber beenden lassen.
Ist das aber mal bei einem nicht der Fall und werden deshalb z.B. gepufferte Schreibzugriffe auf den USB-Speicher (oder auch auf den internen) nicht mehr ausgeführt, hat man sich schneller irgendein Dateisystem oder irgendeine wichtige Datei zerschossen, als man es wahrhaben will. Anders als die ganz frühen FRITZ!Boxen, wo das Steckerziehen noch ein probates Mittel gewesen sein mag und wo seitens AVM für die Einstellungen (als einzige zu beschreibende Stelle) entsprechende Transaktionssicherheit durch das TFFS gewährleistet wurde, gibt es heute in den Boxen schon mit der originalen Firmware und erst recht mit Freetz genug denkbare Stellen, wo Dateien über lange Zeit offengehalten werden und wo - schon aus Gründen der Performance, aber bei Flash-Speicher auch aus Gründen der Lebensdauer - solche Schreiboperationen gepuffert werden.
Dann kann man sich aber mit dem "Power-Reset" auch schnell mal etwas kaputtmachen an Daten ... das sollte man immer im Hinterkopf haben und dort, wo es noch irgendwie machbar ist, das System immer zuerst zu einem definierten Reboot veranlassen - zumindest sollte man es nach Kräften versuchen und auch die ganzen Kopfstände, die von AVM so nach und nach in die "/var/post_install" gepackt wurden, basieren sicherlich nicht nur auf einem "it would be nice to have it", sondern wohl eher auf Erfahrungen, die man mit FRITZ!Boxen in Grenzfällen gesammelt hat.