[Gelöst] yf-Bootmanger mit Freetz-NG und FW 7.50 nicht nutzbar?

FischersFreetz

Mitglied
Mitglied seit
22 Feb 2019
Beiträge
282
Punkte für Reaktionen
43
Punkte
28
Hallo,
ich habe versucht, den yf-Bootmanger mit Freetz-NG und FW 7.50 für mich zu nutzen. Es gelang mir jedoch nicht.

Wähle ich unter Other patches -> Add yf-Bootmanager > "lastest" in der menuconfig aus, dann ist kein Download möglich:
Rich (BBCode):
...
---> tools/yf-bootmanager-host ...
downloading ...
Checking out from git_sparse repository: https://github.com/PeterPawn/YourFritz.git,bootmanager @eabddbaf819ea54d9d6a3fce288ca28d119adf97
Klone nach 'yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97' …
fatal: cannot change to 'https://github.com/PeterPawn/YourFritz.git': Datei oder Verzeichnis nicht gefunden
error: Fehler beim Initialisieren vom partiellen Checkout.

--2023-01-07 12:11:59--  https://freetz-ng.dropfiles.net/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97.tar.xz
Auflösen des Hostnamens freetz-ng.dropfiles.net (freetz-ng.dropfiles.net) … fehlgeschlagen: Der Name oder der Dienst ist nicht bekannt.
wget: Host-Adresse »freetz-ng.dropfiles.net« kann nicht aufgelöst werden
Download failed - "https://freetz-ng.dropfiles.net/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97.tar.xz"  ->  error code 4

--2023-01-07 12:12:00--  https://freetz.wirsind.info/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97.tar.xz
Auflösen des Hostnamens freetz.wirsind.info (freetz.wirsind.info) … 188.165.115.52
Verbindungsaufbau zu freetz.wirsind.info (freetz.wirsind.info)|188.165.115.52|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 404 Not Found
2023-01-07 12:12:00 FEHLER 404: Not Found.

Download failed - "https://freetz.wirsind.info/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97.tar.xz"  ->  error code 8

--2023-01-07 12:12:00--  https://freetz.magenbrot.net/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97.tar.xz
Auflösen des Hostnamens freetz.magenbrot.net (freetz.magenbrot.net) … 31.172.113.113
Verbindungsaufbau zu freetz.magenbrot.net (freetz.magenbrot.net)|31.172.113.113|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 404 Not Found
2023-01-07 12:12:00 FEHLER 404: Not Found.

Download failed - "https://freetz.magenbrot.net/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97.tar.xz"  ->  error code 8

--2023-01-07 12:12:00--  https://raw.githubusercontent.com/Freetz-NG/dl-mirror/master/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97.tar.xz
Auflösen des Hostnamens raw.githubusercontent.com (raw.githubusercontent.com) … 2606:50c0:8000::154, 2606:50c0:8003::154, 2606:50c0:8002::154, ...
Verbindungsaufbau zu raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8000::154|:443 … fehlgeschlagen: Die Wartezeit für die Verbindung ist abgelaufen.
Verbindungsaufbau zu raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443 … fehlgeschlagen: Die Wartezeit für die Verbindung ist abgelaufen.
Verbindungsaufbau zu raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8002::154|:443 … fehlgeschlagen: Die Wartezeit für die Verbindung ist abgelaufen.
Verbindungsaufbau zu raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8001::154|:443 … fehlgeschlagen: Die Wartezeit für die Verbindung ist abgelaufen.
Verbindungsaufbau zu raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 404 Not Found
2023-01-07 12:13:20 FEHLER 404: Not Found.

Download failed - "https://raw.githubusercontent.com/Freetz-NG/dl-mirror/master/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97.tar.xz"  ->  error code 8
make[1]: *** [make/host-tools/yf-bootmanager-host/yf-bootmanager-host.mk:20: dl/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97.tar.xz] Fehler 1
make: *** [Makefile:46: envira] Beendet

Wähle ich dagegen "tested" in der menuconfig aus, dann wird zwar ein Image gebaut, aber der yf-Bootmanager ist nicht nutzbar. Ein Klick auf > System > Sicherung > Neustart bewirkt gar nichts. Selbst die Standard-AVM- Seite wird nicht angezeigt.
Beim Bau des FW-Images werden beim Anwenden des "Patches" folgende Meldungen ausgegeben:
Rich (BBCode):
...
STEP 2: MODIFY
...
applying patch file ./patches/scripts/800-yf_bootmanager.sh
  adding yf-bootmanager
    Target directory: /home/freetz/freetz-ng/build/modified/filesystem/
    Target system version: 154.07.50
    Action from line 2 of patch definitions skipped due to version settings: not below 00.00, but below 07.08 ('sed' for '$LuaFile').
    Action ('sed' with commands from file './lua_patch_0708.sed') from line 4 of patch definitions applied to '/home/freetz/freetz-ng/build/modified/filesystem/usr/www/1und1/system/reboot.lua'.
    Action ('sed' with commands from file './lua_patch_0708.sed') from line 4 of patch definitions applied to '/home/freetz/freetz-ng/build/modified/filesystem/usr/www/avm/system/reboot.lua'.
    Action ('sed' with commands from file './lua_patch_0708.sed') from line 4 of patch definitions applied to '/home/freetz/freetz-ng/build/modified/filesystem/usr/www/avme/system/reboot.lua'.
    Action ('sed' with commands from file './js_patch_0708.sed') from line 6 of patch definitions applied to '/home/freetz/freetz-ng/build/modified/filesystem/usr/www/1und1/system/reboot.js'.
    Action ('sed' with commands from file './js_patch_0708.sed') from line 6 of patch definitions applied to '/home/freetz/freetz-ng/build/modified/filesystem/usr/www/avm/system/reboot.js'.
    Action ('sed' with commands from file './js_patch_0708.sed') from line 6 of patch definitions applied to '/home/freetz/freetz-ng/build/modified/filesystem/usr/www/avme/system/reboot.js'.
    Action from line 8 of patch definitions skipped due to version settings: not below 00.00, but below 07.08 ('cp' for './bootmanager_html').
    Action ('cp' of file './bootmanager.msg' as '/home/freetz/freetz-ng/build/modified/filesystem/usr/bin/bootmanager.msg') from line 10 of patch definitions succeeded.
    Action ('cp' of file './bootmanager' as '/home/freetz/freetz-ng/build/modified/filesystem/usr/bin/bootmanager') from line 12 of patch definitions succeeded.
    Action ('cp' of file './bootmanager_server' as '/home/freetz/freetz-ng/build/modified/filesystem/usr/bin/bootmanager_server') from line 14 of patch definitions succeeded.
    Action ('cp' of file './bootmanager.service' as '/home/freetz/freetz-ng/build/modified/filesystem/lib/systemd/system/bootmanager.service') from line 16 of patch definitions succeeded.
...

Weiß jemand, wie man diesen Zustand beheben könnte?
 
Zuletzt bearbeitet:
Seit einiger Zeit trägt das bootmanager-Skript selbst eine Versionskennzeichnung, damit eindeutig zu klären ist, welche Version nun installiert wurde und welche nicht.


Das Protokoll der Installation oben stammt mit einiger Wahrscheinlichkeit jedoch NICHT von der aktuellen Version, denn über die Tags (und daß die derzeit übereinstimmen, haben wir schon an anderer Stelle geklärt) wird ein Installationsskript gefunden, in dem es zwei, von der FRITZ!OS-Version abhängige, Implementierungen des Service-Files gibt: https://github.com/PeterPawn/YourFr...adf97/bootmanager/add_to_system_reboot.sh#L39 und OFFENSICHTLICH fehlt die Entscheidung zwischen bootmanager.service.old und bootmanager.service im o.g. Protokoll, denn nur eine der beiden Definitionen sollte verwendet werden und die andere mit einer entsprechenden Meldung ignoriert werden (Zeile 16 müßte übergangen werden und Zeile 18 sollte zum Kopieren des Service-Files führen).



Bei der anderen Variante (davor) trat offensichtlich irgendwo ein Fehler auf:
Rich (BBCode):
---> tools/yf-bootmanager-host ...
downloading ...
Checking out from git_sparse repository: https://github.com/PeterPawn/YourFritz.git,bootmanager @eabddbaf819ea54d9d6a3fce288ca28d119adf97
Klone nach 'yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97' …
fatal: cannot change to 'https://github.com/PeterPawn/YourFritz.git': Datei oder Verzeichnis nicht gefunden
error: Fehler beim Initialisieren vom partiellen Checkout.
Hier wird zwar versucht, den richtigen Stand (s. markierter Hash) auszuchecken, aber dabei klappt irgendetwas nicht.

Ob das jetzt an Änderungen beim Auschecken durch Freetz-NG liegt oder an Deinem Build-Host, kann/will ich nicht beurteilen ... es hat jedenfalls NICHTS mit dem Inhalt meines Repos zu tun.
 
Danke für den Tipp, der Download funktioniert schon mal.
Nun bleibt nur noch das Problem mit den Meldungen bei STEP 2: MODIFY...
 
Nun bleibt nur noch das Problem mit den Meldungen bei STEP 2: MODIFY...
Was soll denn dabei das Problem sein? Solange da keine roten Zeilen für Fehler erscheinen, sind alles andere nur Warnungen ... es werden eben ein paar Operationen bei der Installation übersprungen, die für ANDERE FRITZ!OS-Versionen erforderlich sind.

Was genau STÖRT Dich denn jetzt an diesen Meldungen? Ich bin sogar FROH, daß die bei Freetz-NG nicht automatisch unterdrückt werden, denn nur so kann ich dann auch solche "Versionsdifferenzen" wie bei Dir erkennen und die ausgegebenen Texte sollten doch nun eigentlich WIRKLICH eindeutig sein, oder?
 
Was genau STÖRT Dich denn jetzt an diesen Meldungen?
Eigentlich nichts. Sie waren für mich bloß ein Indiz für mögliche Probleme, denn ich konnte (und kann) den Bootmanager für mich bisher nicht nutzbar machen. Zum einen verwirrte mich die Auswahl "testet" oder "latest" und zum anderen kam der Download-Fehler wegen der git-Version hinzu. Und das verwirrte wohl auch die Freetz-NG-Buildumgebung (es hatte zwar dann die neue Version, nahm aber noch die alte in das FW-Image auf. Und in diesem Wirrwarr hielt ich die recht auffälligen Meldungen als ein Hinweis auf eine Fehlfunktion. Ich weiß ich es jetzt besser. Danke dafür.
Sind das (2x3 Dateiveränderungen und 4 Kopiervorgänge) eigentlich alle erfoderlichen Veränderungen für den Bootmamager?

Ich denke, dass ich die Buildumgebung bereinigen konnte. In den Ordnern:
  • /source/host-tools/yf-bootmanager-eabddbaf819ea54d9d6a3fce288ca28d119adf97/bootmanager
  • /tools/yf/bootmanager
  • /build/modified/filesystem/lib/systemd/system
finde ich identische Dateien bootmanager.service mit dem Eintrag After=network.target. Das war doch die letzten Änderung. Oder?
Die gleiche Datei finde ich auch auf der Box in /lib/systemd/system und in /usr/bin die drei anderen Dateien der Meldungen (bootmanager.msg, bootmanager und bootmanager_server). Und auch die .lua - und .js-Dateien erscheinen für mich verändert.

Auf der Box konnte ich folgende Informationen sammeln:
Rich (BBCode):
# svctl status bootmanager
[svctl] bootmanager.service, status: active
# /usr/bin/bootmanager get_values
active_version="154.07.50-101716"
active_date_epoch="1669018865"
active_date="21.11.2022, 09:21:05 Uhr"
active_modified_by="Freetz-NG"
active_modified_at_epoch="1673295586"
active_modified_at="09.01.2023, 21:19:46 Uhr"
active_brandings="1und1 avm avme"
active_branding="1und1"
active_change_branding_support=immutable
inactive_version="154.07.27-88306"
inactive_date_epoch="1620156393"
inactive_date="04.05.2021, 21:26:33 Uhr"
inactive_modified_by="Freetz-NG"
inactive_modified_at_epoch="1622308292"
inactive_modified_at="29.05.2021, 19:11:32 Uhr"
inactive_brandings="1und1 avm avme"
inactive_branding="1und1"
inactive_change_branding_support=immutable
current_branding=1und1
device_branding=
device_branding_changeable=false
switch_branding_support=false
current_switch_value=1
system_is_switched=false
bootmanager_version="0.8.6-202204152119"
# /usr/bin/bootmanager debug
yf_bootmanager version = 0.8.6-202204152119
system type = GRX500
model = AVM7590 (GRX550, HW226) Main model
chipset manufacturer = lantiq
compatible = GRX500
system selector = 1
system is switched = false
device branding =
device branding is changeable = false
current branding = 1und1
inactive system is installed = true
active kernel = /dev/mtdblock3
active filesystem = /dev/mtdblock6
active system version = 154.07.50-101716
active system date = 21.11.2022, 09:21:05 Uhr (epoch: 1669018865)
active system modification date = 09.01.2023, 21:19:46 Uhr (epoch: 1673295586)
active system modification source = Freetz-NG
brandings supported on active system = 1und1 avm avme
branding used by active system = 1und1 (immutable)
inactive kernel = /dev/mtdblock0
inactive filesystem = /dev/mtdblock5
inactive system version = 154.07.27-88306
inactive system date = 04.05.2021, 21:26:33 Uhr (epoch: 1620156393)
inactive system modification date = 29.05.2021, 19:11:32 Uhr (epoch: 1622308292)
inactive system modification source = Freetz-NG
brandings supported on inactive system = 1und1 avm avme
branding used by inactive system = 1und1 (immutable)
Und dennoch erscheint bei mir in der Weboberfläche das entsprechende Auswahlmenü nicht.
Deutet vielleicht das folgende auf (m)ein Problem hin?
Rich (BBCode):
# /usr/bin/bootmanager is_supported
# echo $?
1
"is_supported - returns true (exit code 0) or false (exit code 1), if the device doesn't support the dual-boot selection" :rolleyes:
 
Irgendwie fehlt mir da die Angabe für device_branding, wo eigentlich der Wert stehen sollte, den die Box bei der Finalisierung erhalten hat.

Führe mal bitte die beiden Kommandos bootmanager clear_cache with_eva_config und bootmanager debug verbose aus und zeige die Ergebnisse.

Ich mag mir irgendwie nicht vorstellen, daß mein Code zum Zerlegen der EVA-Konfiguration gerade bei Dir nicht funktionieren soll ... andererseits ist das auch nicht auszuschließen.

Aber wenn kein Wert aus der EVA-Konfiguration ermittelt werden kann, sollte eigentlich der aus /proc/sys/urlader/environment genommen werden: https://github.com/PeterPawn/YourFr...88ca28d119adf97/bootmanager/bootmanager#L2822 und wenn der ebenfalls leer sein sollte, ergibt das irgendwie so gar keinen Sinn.

Bliebe also noch ein (bisher unentdeckter) Fehler beim Suchen nach einer alternativen Quelle für den Wert, weil bei allen anderen Tests (und auch Benutzern, denn Du bist m.W. der Einzige, der an dieser Stelle Probleme hat - zumindest bei einer GRX5-Box) immer schon vorher ein Wert ermittelt werden konnte. Das paßt zwar nicht ganz dazu, daß ich denke, wirklich JEDEN Abzweig in der Programm-Logik auch mind. einmal durchlaufen zu haben, aber es ist eben auch nicht gänzlich auszuschließen.

Nur paßt auch das ja nicht wirklich dazu, daß es bei Dir ja nur in der neuen Version nicht funktionieren soll - oder hast Du das nie mit einer Labor- oder Inhouse-Firmware aus der 07.39-Reihe probiert?

Das mit dem is_supported solltest Du in einer Zeile aufrufen, z.B. so: bootmanager is_supported; echo $? oder bootmanager is_supported && echo true || echo false - nur so sind Fehler beim Aufruf auszuschließen und wenn dann das Ergebnis auch bei einem dieser Aufrufe so aussehen sollte, als wäre das auf einer 7590 NICHT unterstützt, dann bitte noch ein /bin/sh -x davor setzen und die komplette Ausgabe hier zeigen.

EDIT: Außerdem kann es nicht schaden, nach dem Versuch mit bootmanager debug ... auch den Inhalt der jeweiligen Cache-Files anzusehen: https://github.com/PeterPawn/YourFr...288ca28d119adf97/bootmanager/bootmanager#L113
 
Ich fang mal von unten an (und hoffe, dass es übersichtlich genug ist):
Rich (BBCode):
# bootmanager is_supported && echo true || echo false
false
Rich (BBCode):
# /bin/sh -x bootmanager is_supported && echo true || echo false
/bin/sh: can't open 'bootmanager': No such file or directory
false
# l /bin/sh
lrwxrwxrwx    1 root     root             7 Jan  9 21:19 /bin/sh -> busybox
jedoch
Rich (BBCode):
# /bin/bash -x bootmanager is_supported && echo true || echo false
+ yf_bootmanager_version=0.8.6
+ yf_bootmanager_timestamp=202204152119
+ readonly messages_file=bootmanager.msg
+ messages_file=bootmanager.msg
+ readonly tmpfs=/var
+ tmpfs=/var
+ readonly procfs=/proc
+ procfs=/proc
+ readonly devtmpfs=/dev
+ devtmpfs=/dev
+ readonly sysfs=/sys
+ sysfs=/sys
+ readonly tmp=/var/tmp
+ tmp=/var/tmp
+ readonly null=/dev/null
+ null=/dev/null
+ readonly zeros=/dev/zero
+ zeros=/dev/zero
+ readonly timer=/proc/timer_list
+ timer=/proc/timer_list
+ readonly data_cache_file=/var/tmp/bootmanager.data
+ data_cache_file=/var/tmp/bootmanager.data
+ readonly boot_cache_file=/var/tmp/bootmanager.boot
+ boot_cache_file=/var/tmp/bootmanager.boot
+ readonly device_cache_file=/var/tmp/bootmanager.dev
+ device_cache_file=/var/tmp/bootmanager.dev
+ readonly inactive_fit_cache_file=/var/tmp/bootmanager.inactive.fit
+ inactive_fit_cache_file=/var/tmp/bootmanager.inactive.fit
+ readonly urlader_environment=/proc/sys/urlader/environment
+ urlader_environment=/proc/sys/urlader/environment
+ readonly system_select_name=linux_fs_start
+ system_select_name=linux_fs_start
+ readonly active_name=active
+ active_name=active
+ readonly inactive_name=inactive
+ inactive_name=inactive
+ readonly branding_name=firmware_version
+ branding_name=firmware_version
+ readonly kernel_args=kernel_args
+ kernel_args=kernel_args
+ readonly kernel_args1=kernel_args1
+ kernel_args1=kernel_args1
+ readonly flash_size=flashsize
+ flash_size=flashsize
+ readonly proc_mtd=/proc/mtd
+ proc_mtd=/proc/mtd
+ readonly proc_devices=/proc/devices
+ proc_devices=/proc/devices
+ readonly tffs_device_name=tffs
+ tffs_device_name=tffs
+ readonly mtd_prefix=mtd
+ mtd_prefix=mtd
+ readonly mtd_mask=mtd%u
+ mtd_mask=mtd%u
+ readonly mtdblock_prefix=/dev/mtdblock
+ mtdblock_prefix=/dev/mtdblock
+ readonly mtdblock_mask=/dev/mtdblock%u
+ mtdblock_mask=/dev/mtdblock%u
+ readonly emmcblock_prefix=/dev/mmcblk0
+ emmcblock_prefix=/dev/mmcblk0
+ readonly emmcblock_mask=/dev/mmcblk0p%u
+ emmcblock_mask=/dev/mmcblk0p%u
+ readonly proc_cpuinfo=/proc/cpuinfo
+ proc_cpuinfo=/proc/cpuinfo
+ readonly proc_mountinfo=/proc/self/mountinfo
+ proc_mountinfo=/proc/self/mountinfo
+ readonly urlader_name=urlader
+ urlader_name=urlader
+ readonly kernel_name=kernel
+ kernel_name=kernel
+ readonly fit_partition_name=fit
+ fit_partition_name=fit
+ readonly fit_partition_name_mask=fit%u
+ fit_partition_name_mask=fit%u
+ readonly fit_mtd_name_mask=fit%u
+ fit_mtd_name_mask=fit%u
+ readonly bootslot_tool=/sbin/bootslotctl
+ bootslot_tool=/sbin/bootslotctl
+ readonly filesystem_name=filesystem
+ filesystem_name=filesystem
+ readonly reserved_prefix=reserved
+ reserved_prefix=reserved
+ readonly alt_root_mount_name=alt_root
+ alt_root_mount_name=alt_root
+ readonly alt_root_image_name=alt_root_image
+ alt_root_image_name=alt_root_image
+ readonly defaults_dir=etc/default.%s
+ defaults_dir=etc/default.%s
+ readonly sysfs_block_dir=/sys/block
+ sysfs_block_dir=/sys/block
+ readonly loop_driver_name=loop
+ loop_driver_name=loop
+ readonly backing_file_name=backing_file
+ backing_file_name=backing_file
+ readonly disk_by_label=/dev/disk/by-partlabel
+ disk_by_label=/dev/disk/by-partlabel
+ readonly tmpdir=/var/tmp
+ tmpdir=/var/tmp
+ readonly avm_rcconf=etc/init.d/rc.conf
+ avm_rcconf=etc/init.d/rc.conf
+ readonly nas_base=/var/media/ftp
+ nas_base=/var/media/ftp
+ readonly semafile=/var/run/bootmanager.sem
+ semafile=/var/run/bootmanager.sem
+ readonly fdt_base=/proc/device-tree
+ fdt_base=/proc/device-tree
+ readonly fdt_chosen=/proc/device-tree/chosen
+ fdt_chosen=/proc/device-tree/chosen
+ readonly fdt_model=model
+ fdt_model=model
+ readonly fdt_compatible=compatible
+ fdt_compatible=compatible
+ readonly 'yf_change_oem_marker=# YF_CHANGE_OEM'
+ yf_change_oem_marker='# YF_CHANGE_OEM'
+ readonly yf_change_oem_script=etc/init.d/yf_change_oem.sh
+ yf_change_oem_script=etc/init.d/yf_change_oem.sh
+ readonly 'yf_custom_environment_script=yf_custom_environment\.sh'
+ yf_custom_environment_script='yf_custom_environment\.sh'
+ readonly 'yf_custom_environment_locations=$path/etc/boot.d $path/etc/init.d $path/etc/inittab $wrapper/etc/inittab'
+ yf_custom_environment_locations='$path/etc/boot.d $path/etc/init.d $path/etc/inittab $wrapper/etc/inittab'
+ readonly yf_signature_key_modulus=00b4074ef52e5c44f3a1eca1bd8eb3b5f217b82eaa23641adf50ca5bb98f3538ac706a5bb5f15def942bc352f3cd1cdf4ba1f47bc66863d95ecc7576d4f6d6729d396056e8fdf5d2ff5998ff33559104e07934e0c944d764bb881708ed73c0df0b948a9659de65c9940a9f537fcd1450bcdffe5a76f6b8d298ef89c3ce895f9361
+ yf_signature_key_modulus=00b4074ef52e5c44f3a1eca1bd8eb3b5f217b82eaa23641adf50ca5bb98f3538ac706a5bb5f15def942bc352f3cd1cdf4ba1f47bc66863d95ecc7576d4f6d6729d396056e8fdf5d2ff5998ff33559104e07934e0c944d764bb881708ed73c0df0b948a9659de65c9940a9f537fcd1450bcdffe5a76f6b8d298ef89c3ce895f9361
+ readonly yf_signature_key_exponent=010001
+ yf_signature_key_exponent=010001
+ readonly yf_loop_repository_url=https://raw.githubusercontent.com/PeterPawn/yf_bin/yf_bm_loop_driver/loop-drivers/YourFritz-loop-driver-archive.image
+ yf_loop_repository_url=https://raw.githubusercontent.com/PeterPawn/yf_bin/yf_bm_loop_driver/loop-drivers/YourFritz-loop-driver-archive.image
+ readonly uname=uname
+ uname=uname
+ readonly avm_downloader=/usr/bin/tr069fwupdate
+ avm_downloader=/usr/bin/tr069fwupdate
+ readonly 'avm_pubkey_sources=/etc/avm_firmware_public_key[1-9] /etc/plugin_global_key.pem'
+ avm_pubkey_sources='/etc/avm_firmware_public_key[1-9] /etc/plugin_global_key.pem'
+ readonly yourfritz_version_file=etc/.yourfritz_version
+ yourfritz_version_file=etc/.yourfritz_version
+ readonly freetz_version_file=etc/.freetz-version
+ freetz_version_file=etc/.freetz-version
+ readonly freetz_ng_version_file=etc/.freetz-ng-version
+ freetz_ng_version_file=etc/.freetz-ng-version
+ readonly modfs_version_file=etc/.modfs_version
+ modfs_version_file=etc/.modfs_version
+ readonly avm_version_file_old=etc/version
+ avm_version_file_old=etc/version
+ readonly avm_version_file_old_prefix=FIRMWARE_
+ avm_version_file_old_prefix=FIRMWARE_
+ readonly avm_version_file=etc/init.d/rc.conf
+ avm_version_file=etc/init.d/rc.conf
+ readonly avm_version_file_prefix=CONFIG_
+ avm_version_file_prefix=CONFIG_
+ readonly 'avm_version_main_components=VERSION SUBVERSION BUILDNUMBER'
+ avm_version_main_components='VERSION SUBVERSION BUILDNUMBER'
+ readonly avm_version_major_name=CONFIG_VERSION_MAJOR
+ avm_version_major_name=CONFIG_VERSION_MAJOR
+ readonly avm_version_date=DATE
+ avm_version_date=DATE
+ readonly avm_product_name=CONFIG_PRODUKT
+ avm_product_name=CONFIG_PRODUKT
+ readonly 'version_files=etc/.yourfritz_version etc/.freetz-ng-version etc/.freetz-version etc/.modfs_version'
+ version_files='etc/.yourfritz_version etc/.freetz-ng-version etc/.freetz-version etc/.modfs_version'
+ readonly 'modified_by=YourFritz Freetz-NG Freetz modfs -'
+ modified_by='YourFritz Freetz-NG Freetz modfs -'
+ readonly mtd_filesystem_name_active=filesystem
+ mtd_filesystem_name_active=filesystem
+ readonly mtd_filesystem_name_inactive=reserved-filesystem
+ mtd_filesystem_name_inactive=reserved-filesystem
+ readonly mtd_kernel_name_active=kernel
+ mtd_kernel_name_active=kernel
+ readonly mtd_kernel_name_inactive=reserved-kernel
+ mtd_kernel_name_inactive=reserved-kernel
+ readonly 'mips_cpuinfo_check=s|^system type[ \t]*: \([^ \t]*\).*$|\1|p'
+ mips_cpuinfo_check='s|^system type[ \t]*: \([^ \t]*\).*$|\1|p'
+ readonly 'ipq_cpuinfo_check=s|^model name[ \t]*: ARMv7 Processor rev [45] (v7l)$|IPQ|p;tq;b;:q q'
+ ipq_cpuinfo_check='s|^model name[ \t]*: ARMv7 Processor rev [45] (v7l)$|IPQ|p;tq;b;:q q'
+ readonly ipq8074_eva_config_name=0:CONFIG
+ ipq8074_eva_config_name=0:CONFIG
+ readonly emmc_mask=emmc_size
+ emmc_mask=emmc_size
+ readonly bcm963_mask=BCM963
+ bcm963_mask=BCM963
+ readonly nvram_name=nvram
+ nvram_name=nvram
+ readonly wrapper_mount_name=wrapper
+ wrapper_mount_name=wrapper
+ readonly vr9_wrapper_dir=/wrapper
+ vr9_wrapper_dir=/wrapper
+ readonly vr9_rootfs_name=/filesystem_core.squashfs
+ vr9_rootfs_name=/filesystem_core.squashfs
+ readonly vr9_image_source_active=/wrapper/filesystem_core.squashfs
+ vr9_image_source_active=/wrapper/filesystem_core.squashfs
+ readonly vr9_image_source_inactive=mount:%s:/filesystem_core.squashfs
+ vr9_image_source_inactive=mount:%s:/filesystem_core.squashfs
+ readonly puma_helper=/etc/puma6_helper.sh
+ puma_helper=/etc/puma6_helper.sh
+ readonly puma_partitions=/proc/avm_partitions
+ puma_partitions=/proc/avm_partitions
+ readonly puma_filesystem_name_active=filesystem_ATOM
+ puma_filesystem_name_active=filesystem_ATOM
+ readonly puma_filesystem_name_inactive=filesystem_reserved_ATOM
+ puma_filesystem_name_inactive=filesystem_reserved_ATOM
+ readonly puma_kernel_name_active=kernel_ATOM
+ puma_kernel_name_active=kernel_ATOM
+ readonly puma_kernel_name_inactive=kernel_reserved_ATOM
+ puma_kernel_name_inactive=kernel_reserved_ATOM
++ __yf_ansi_sgr 1
++ printf -- '\033[%sm' 1
+ __yf_ansi_bold__=''
++ __yf_ansi_sgr 33
++ printf -- '\033[%sm' 33
+ __yf_ansi_yellow__=''
++ __yf_ansi_sgr 91
++ printf -- '\033[%sm' 91
+ __yf_ansi_bright_red__=''
++ __yf_ansi_sgr 92
++ printf -- '\033[%sm' 92
+ __yf_ansi_bright_green__=''
++ __yf_ansi_sgr 0
++ printf -- '\033[%sm' 0
+ __yf_ansi_reset__=''
++ date +%s
+ tempdir=/var/tmp/25494_1673448478
+ readonly tempdir
+ mkdir -p /var/tmp/25494_1673448478
+ trap cleanup HUP EXIT INT TERM
+ rc=127
+ save_environment
+ '[' -f /var/tmp/bootmanager.boot ']'
+ verbose=0
+ system_type=
+ is_puma_device=0
+ '[' 2147483648 = -2147483648 ']'
+ shell_32bit_arithmetics=0
+ error_description=
+ error_code=0
+ case "$1" in
+ is_dualboot_supported
++ get_system_switch
++ '[' -n '' ']'
++ sed -n -e 's/^linux_fs_start\t\([01]\).*$/\1/p' /proc/sys/urlader/environment
+ '[' -z 1 ']'
+ is_fit_image_device
+ '[' -n '' ']'
+ case "$system_type" in
+ exit 1
+ '[' -n '' ']'
++ get_partition kernel inactive
+++ expr kernel : '\(fit\)[01]'
++ '[' '' = fit ']'
++ rc=0
++ '[' kernel = kernel ']'
++ '[' inactive = active ']'
++ '[' inactive = inactive ']'
++ '[' 0 = 1 ']'
++ '[' '' = VR9 ']'
++ '[' '' = AR10 ']'
++ '[' '' = GRX500 ']'
++ '[' '' = GRX350 ']'
++ '[' '' = IPQ4019 ']'
++ '[' '' = IPQ5018 ']'
++ rc=1
++ exit 1
+ '[' -z '' ']'
+ exit 1
+ rc=1
+ exit 1
+ cleanup
+ '[' -z /var/tmp/25494_1673448478 ']'
+ is_active_mountpoint /var/tmp/25494_1673448478/alt_root
++ sed -n -e '\|^[0-9]\+ [0-9]\+ [0-9:]* [^ ]* /var/tmp/25494_1673448478/alt_root .* - .*|p' /proc/self/mountinfo
+ line=
+ '[' 0 -eq 0 ']'
+ exit 1
+ is_active_mountpoint /var/tmp/25494_1673448478/wrapper
++ sed -n -e '\|^[0-9]\+ [0-9]\+ [0-9:]* [^ ]* /var/tmp/25494_1673448478/wrapper .* - .*|p' /proc/self/mountinfo
+ line=
+ '[' 0 -eq 0 ']'
+ exit 1
+ rm -r /var/tmp/25494_1673448478
+ '[' -z '' ']'
+ return
false


Rich (BBCode):
# bootmanager debug verbose
yf_bootmanager version = 0.8.6-202204152119
>>>>>>>>>> device configuration from EVA loader <<<<<<<<<<
>>>>>>>>>> debug output of bootmanager script <<<<<<<<<<
system type = GRX500
model = AVM7590 (GRX550, HW226) Main model
chipset manufacturer = lantiq
compatible = GRX500
system selector = 1
system is switched = false
device branding =
device branding is changeable = false
current branding = 1und1
inactive system is installed = true
>>>>>>>>>>>>>>>>>>>> running system <<<<<<<<<<<<<<<<<<<<
active kernel = /dev/mtdblock3
active filesystem = /dev/mtdblock6
active system version = 154.07.50-101716
active system date = 21.11.2022, 09:21:05 Uhr (epoch: 1669018865)
active system modification date = 09.01.2023, 21:19:46 Uhr (epoch: 1673295586)
active system modification source = Freetz-NG
brandings supported on active system = 1und1 avm avme
branding used by active system = 1und1 (immutable)
>>>>>>>>>>>>>>>>>> alternative system <<<<<<<<<<<<<<<<<<
inactive kernel = /dev/mtdblock0
inactive filesystem = /dev/mtdblock5
inactive filesystem mounted on /var/tmp/1007_1673448968/alt_root
inactive system version = 154.07.27-88306
inactive system date = 04.05.2021, 21:26:33 Uhr (epoch: 1620156393)
inactive system modification date = 29.05.2021, 19:11:32 Uhr (epoch: 1622308292)
inactive system modification source = Freetz-NG
brandings supported on inactive system = 1und1 avm avme
branding used by inactive system = 1und1 (immutable)
inactive filesystem dismounted

Rich (BBCode):
# cat /var/tmp/bootmanager.data
active_version="154.07.50-101716"
active_date_epoch="1669018865"
active_date="21.11.2022, 09:21:05 Uhr"
active_modified_by="Freetz-NG"
active_modified_at_epoch="1673295586"
active_modified_at="09.01.2023, 21:19:46 Uhr"
active_brandings="1und1 avm avme"
active_branding="1und1"
active_change_branding_support=immutable
inactive_version="154.07.27-88306"
inactive_date_epoch="1620156393"
inactive_date="04.05.2021, 21:26:33 Uhr"
inactive_modified_by="Freetz-NG"
inactive_modified_at_epoch="1622308292"
inactive_modified_at="29.05.2021, 19:11:32 Uhr"
inactive_brandings="1und1 avm avme"
inactive_branding="1und1"
inactive_change_branding_support=immutable
current_branding=1und1
device_branding=
device_branding_changeable=false
switch_branding_support=false
current_switch_value=1
system_is_switched=false
bootmanager_version="0.8.6-202204152119"
Rich (BBCode):
# cat /var/tmp/bootmanager.boot
HWRevision      226
HWSubRevision   4
ProductID       Fritz_Box_HW226
SerialNumber    L28264830272797
annex   B
autoload        yes
bootloaderVersion       1.3578
country 049
crash   [0]e2d22205,605a0b1c,6[1]0,0,0[2]c70094e,609eb0e9,6[3]0,0,0
firstfreeaddress        0x85284A30
firmware_info   154.07.50
firmware_version        1und1
flashsize       nor_size=0MB sflash_size=0KB nand_size=512MB
language        de
linux_fs_start  1
maca    DC:39:6F:19:E3:7C
macb    DC:39:6F:19:E3:7D
macwlan DC:39:6F:19:E3:7E
macwlan2        DC:39:6F:19:E3:7F
macdsl  DC:39:6F:19:E3:79
memsize 0x20000000
mtd0    0x0,0x2C00000
mtd1    0x500000,0xD00000
mtd2    0x0,0x100000
mtd3    0x100000,0x500000
mtd4    0xD00000,0x1500000
mtd5    0x1500000,0x20000000
my_ipaddress    192.168.178.1
prompt  Eva_AVM
ptest
usb_board_mac   DC:39:6F:19:E3:7A
usb_device_id   0x0000
usb_device_name USB DSL Device
usb_manufacturer_name   AVM
usb_revision_id 0x0000
usb_rndis_mac   DC:39:6F:19:E3:7B
webgui_pass     wendig1514
wlan_key        87591899937370921154
wlan_ssid       FRITZ!Box#7590#SB
Rich (BBCode):
# cat /var/tmp/bootmanager.dev
immutable=1und1


Rich (BBCode):
# bootmanager clear_cache with_eva_config && echo $?
0
(zu oben: keine Ausgabe)

Rich (BBCode):
# cat /proc/sys/urlader/environment
HWRevision      226
HWSubRevision   4
ProductID       Fritz_Box_HW226
SerialNumber    L28264830272797
annex   B
autoload        yes
bootloaderVersion       1.3578
country 049
crash   [0]e2d22205,605a0b1c,6[1]0,0,0[2]c70094e,609eb0e9,6[3]0,0,0
firstfreeaddress        0x85284A30
firmware_info   154.07.50
firmware_version        1und1
flashsize       nor_size=0MB sflash_size=0KB nand_size=512MB
language        de
linux_fs_start  1
maca    DC:39:6F:19:E3:7C
macb    DC:39:6F:19:E3:7D
macwlan DC:39:6F:19:E3:7E
macwlan2        DC:39:6F:19:E3:7F
macdsl  DC:39:6F:19:E3:79
memsize 0x20000000
mtd0    0x0,0x2C00000
mtd1    0x500000,0xD00000
mtd2    0x0,0x100000
mtd3    0x100000,0x500000
mtd4    0xD00000,0x1500000
mtd5    0x1500000,0x20000000
my_ipaddress    192.168.178.1
prompt  Eva_AVM
ptest
usb_board_mac   DC:39:6F:19:E3:7A
usb_device_id   0x0000
usb_device_name USB DSL Device
usb_manufacturer_name   AVM
usb_revision_id 0x0000
usb_rndis_mac   DC:39:6F:19:E3:7B
webgui_pass     wendig1514
wlan_key        87591899937370921154
wlan_ssid       FRITZ!Box#7590#SB
 
Das erste Problem (beim is_supported) habe ich eben versucht zu beheben: https://github.com/PeterPawn/YourFritz/commit/48aea82383a361868da1ec004b41edd9727b7009

Aber das kann nicht das (eigentliche) Problem sein, denn bei den anderen "Operationen" ist/war das bereits korrekt gesetzt:


Den korrekten Aufruf, auch wenn da ein sh -x davor gesetzt wird, setze ich aber voraus ... da hast Du ja dann auch richtig reagiert, wenn Du das Skript mit absolutem Pfad aufrufst - die Alternative ist es, das aktuelle Verzeichnis auf jenes zu setzen, in dem die aufzurufende Datei steht.

Eigentlich sollte der Wert für device_branding hier geladen werden: https://github.com/PeterPawn/YourFr...b41edd9727b7009/bootmanager/bootmanager#L2836, wenn er schon richtig in der bootmanager.dev steht, wie man bei Dir sehen kann - nur war das gar nicht der Sinn des Tests, denn das ist erst der zweite Schritt, wenn der Wert beim zweiten Mal dann aus der Cache-Datei gelesen wird, die beim ersten Mal erzeugt wurde.

Daher sollte das, was ich ursprünglich "angeregt" hatte, in etwa so aussehen:
Rich (BBCode):
# bootmanager clear_cache with_eva_config
# bootmanager debug verbose
yf_bootmanager version = 0.8.6-202204152119
>>>>>>>>>> device configuration from EVA loader <<<<<<<<<<
'firmware_version' found in fixed values area.
>>>>>>>>>> debug output of bootmanager script <<<<<<<<<<
system type = GRX500
model = AVM7590 (GRX550, HW226) Main model
chipset manufacturer = lantiq
compatible = GRX500
system selector = 0
system is switched = false
device branding = avm
device branding is changeable = false
current branding = avm
inactive system is installed = true
>>>>>>>>>>>>>>>>>>>> running system <<<<<<<<<<<<<<<<<<<<
active kernel = /dev/mtdblock0
active filesystem = /dev/mtdblock5
active system version = 154.07.50-101716
active system date = 21.11.2022, 09:21:05 Uhr (epoch: 1669018865)
active system modification date = 01.01.2023, 22:43:21 Uhr (epoch: 1672609401)
active system modification source = modfs
brandings supported on active system = 1und1 avm avme
branding used by active system = avm (immutable)
>>>>>>>>>>>>>>>>>> alternative system <<<<<<<<<<<<<<<<<<
inactive kernel = /dev/mtdblock3
inactive filesystem = /dev/mtdblock6
inactive filesystem mounted on /var/tmp/1822_1673458966/alt_root
inactive system version = 154.07.29-92051
inactive system date = 28.10.2021, 15:38:50 Uhr (epoch: 1635428330)
inactive system modification source = (unmodified or unknown)
brandings supported on inactive system = 1und1 avm avme
branding used by inactive system = avm (immutable)
inactive filesystem dismounted
#
und den entscheidenden Unterschied zu Deiner Ausgabe weiter oben habe ich mal eingefärbt. Denn hier ist Deine "Umkehr" der Reihenfolge der Kommandos extrem kontraproduktiv ... das Löschen der Cache-Files muß schon VOR weiteren Aktionen erfolgen, sonst kann kein Mensch erkennen, ob da irgendwelche "Reste" falscher Daten überbleiben oder nicht.

Wenn Du das jetzt (bitte) noch einmal wiederholst, setze an den Beginn der Zeile bitte noch ein BM_DEBUG_EVA=1 (https://github.com/PeterPawn/YourFr...b41edd9727b7009/bootmanager/bootmanager#L2838), dann wird explizit ausgegeben, ob die Daten aus dem Cache sind oder neu ermittelt wurden und auch, welche Daten aus der EVA-Konfiguration ausgelesen und verwendet wurden.

Das sähe dann in etwa so aus:
Rich (BBCode):
# /usr/bin/bootmanager clear_cache with_eva_config
# BM_DEBUG_EVA=1 /usr/bin/bootmanager debug verbose
yf_bootmanager version = 0.8.6-202204152119
>>>>>>>>>> device configuration from EVA loader <<<<<<<<<<
Read 'memsize' value from urlader environment: 0x20000000
Read 'mtd0' value from urlader environment: 0x0,0x2C00000
Read 'maca' value from urlader environment: 2C:91:AB:XX:XX:XX
Read 'wlan_key' value from urlader environment: <removed>
Read 'mtd0' value from urlader environment: 0x0,0x2C00000
Read 'mtd1' value from urlader environment: 0x500000,0xD00000
Read 'mtd2' value from urlader environment: 0x0,0x100000
Read 'mtd3' value from urlader environment: 0x100000,0x500000
Read 'mtd4' value from urlader environment: 0xD00000,0x1500000
Read 'mtd5' value from urlader environment: 0x1500000,0x20000000
Read 'mtd6' value from urlader environment: (empty)
Read 'mtd7' value from urlader environment: (empty)
Read 'mtd8' value from urlader environment: (empty)
Read 'mtd9' value from urlader environment: (empty)
Read 'mtd10' value from urlader environment: (empty)
Read 'mtd11' value from urlader environment: (empty)
Read 'mtd12' value from urlader environment: (empty)
Read 'mtd13' value from urlader environment: (empty)
Read 'mtd14' value from urlader environment: (empty)
Read 'mtd15' value from urlader environment: (empty)
Configuration area candidate found at offset: 729088 (0xb2000)
Configuration area found at offset: 729088 (0xb2000)
EVA configuration found at offset: 729088 (0xb2000)
'firmware_version' found in fixed values area.
EVA device configuration lookup lasted 13.066532596 seconds.
immutable=avm
>>>>>>>>>> debug output of bootmanager script <<<<<<<<<<
system type = GRX500
model = AVM7590 (GRX550, HW226) Main model
chipset manufacturer = lantiq
compatible = GRX500
system selector = 0
system is switched = false
device branding = avm
device branding is changeable = false
current branding = avm
inactive system is installed = true
>>>>>>>>>>>>>>>>>>>> running system <<<<<<<<<<<<<<<<<<<<
active kernel = /dev/mtdblock0
active filesystem = /dev/mtdblock5
active system version = 154.07.50-101716
active system date = 21.11.2022, 09:21:05 Uhr (epoch: 1669018865)
active system modification date = 01.01.2023, 22:43:21 Uhr (epoch: 1672609401)
active system modification source = modfs
brandings supported on active system = 1und1 avm avme
branding used by active system = avm (immutable)
>>>>>>>>>>>>>>>>>> alternative system <<<<<<<<<<<<<<<<<<
inactive kernel = /dev/mtdblock3
inactive filesystem = /dev/mtdblock6
inactive filesystem mounted on /var/tmp/8116_1673459194/alt_root
inactive system version = 154.07.29-92051
inactive system date = 28.10.2021, 15:38:50 Uhr (epoch: 1635428330)
inactive system modification source = (unmodified or unknown)
brandings supported on inactive system = 1und1 avm avme
branding used by inactive system = avm (immutable)
inactive filesystem dismounted
#
Interessant ist dabei der auch hier wieder eingefärbte Abschnitt (was die anderen nicht überflüssig macht) - wobei man den überwiegenden Teil davon (also der "interessanten Daten") auch durch einen Aufruf von BM_DEBUG_EVA=1 /usr/bin/bootmanager show_eva_cfg erhält, bei dem die EVA-Konfiguration auch jedesmal neu ausgelesen und nicht aus der Cache-Datei geladen wird.

Andererseits steht ja eigentlich der richtige Inhalt in der Datei bootmanager.dev, nämlich immutable=1und1 - damit reduziert sich das dann auf die Frage, warum der Wert (an der weiter oben verlinkten Stelle) nicht korrekt ausgelesen werden kann. Das macht aber die anderen Tests auch nicht überflüssig - ich hätte es also schon gerne noch einmal, daß die Cache-Datei(en) gelöscht wird/werden und das Zerlegen der EVA-Konfiguration protokolliert wird.

Am Wert 1und1 KANN es aber auch nicht liegen ... ändere ich bei mir in der Cache-Datei auf ebendiesen Wert, klappt es dennoch:
Rich (BBCode):
# BM_DEBUG_EVA=1 /usr/bin/bootmanager debug verbose
yf_bootmanager version = 0.8.6-202204152119
>>>>>>>>>> device configuration from EVA loader <<<<<<<<<<
Device configuration info loaded from cache file.
immutable=1und1
>>>>>>>>>> debug output of bootmanager script <<<<<<<<<<
system type = GRX500
model = AVM7590 (GRX550, HW226) Main model
chipset manufacturer = lantiq
compatible = GRX500
system selector = 0
system is switched = false
device branding = 1und1
device branding is changeable = false
current branding = avm
inactive system is installed = true
>>>>>>>>>>>>>>>>>>>> running system <<<<<<<<<<<<<<<<<<<<
active kernel = /dev/mtdblock0
active filesystem = /dev/mtdblock5
active system version = 154.07.50-101716
active system date = 21.11.2022, 09:21:05 Uhr (epoch: 1669018865)
active system modification date = 01.01.2023, 22:43:21 Uhr (epoch: 1672609401)
active system modification source = modfs
brandings supported on active system = 1und1 avm avme
branding used by active system = avm (immutable)
>>>>>>>>>>>>>>>>>> alternative system <<<<<<<<<<<<<<<<<<
inactive kernel = /dev/mtdblock3
inactive filesystem = /dev/mtdblock6
inactive filesystem mounted on /var/tmp/23911_1673459728/alt_root
inactive system version = 154.07.29-92051
inactive system date = 28.10.2021, 15:38:50 Uhr (epoch: 1635428330)
inactive system modification source = (unmodified or unknown)
brandings supported on inactive system = 1und1 avm avme
branding used by inactive system = avm (immutable)
inactive filesystem dismounted
#
Also MUSS da bei Dir irgendetwas anders ablaufen und GENAU aus diesem Grund würde ich gerne noch sehen, wie der Inhalt des Cache-Files erzeugt wird/zustande kommt.

Irgendwie habe ich ja den Verdacht, daß unterschiedliche BusyBox-Versionen hier wieder eine Rolle spielen könnten ... immerhin werden die Daten ja mittels des BB-Applets sed aus der Cache-Datei gelesen. Um das auszuschließen, kannst Du das Kommando sed -n -e "s|^\(immutable\|changeable\|undetectable\)=\(.*\)\$|\2|p" "/var/tmp/bootmanager.dev" ausführen - bei vorhandenem Cache-File sollte die Ausgabe bei Dir dann 1und1 sein.
 
Wenn Du das jetzt (bitte) noch einmal wiederholst...
Rich (BBCode):
# /usr/bin/bootmanager clear_cache with_eva_config
# BM_DEBUG_EVA=1 /usr/bin/bootmanager debug verbose
yf_bootmanager version = 0.8.6-202204152119
>>>>>>>>>> device configuration from EVA loader <<<<<<<<<<
Read 'memsize' value from urlader environment: 0x20000000
Read 'mtd0' value from urlader environment: 0x0,0x2C00000
Read 'maca' value from urlader environment: DC:39:6F:19:E3:7C
Read 'wlan_key' value from urlader environment: 87591899937370921154
Read 'mtd0' value from urlader environment: 0x0,0x2C00000
Read 'mtd1' value from urlader environment: 0x500000,0xD00000
Read 'mtd2' value from urlader environment: 0x0,0x100000
Read 'mtd3' value from urlader environment: 0x100000,0x500000
Read 'mtd4' value from urlader environment: 0xD00000,0x1500000
Read 'mtd5' value from urlader environment: 0x1500000,0x20000000
Read 'mtd6' value from urlader environment: (empty)
Read 'mtd7' value from urlader environment: (empty)
Read 'mtd8' value from urlader environment: (empty)
Read 'mtd9' value from urlader environment: (empty)
Read 'mtd10' value from urlader environment: (empty)
Read 'mtd11' value from urlader environment: (empty)
Read 'mtd12' value from urlader environment: (empty)
Read 'mtd13' value from urlader environment: (empty)
Read 'mtd14' value from urlader environment: (empty)
Read 'mtd15' value from urlader environment: (empty)
Configuration area candidate found at offset: 729088 (0xb2000)
Configuration area found at offset: 729088 (0xb2000)
EVA configuration found at offset: 729088 (0xb2000)
'firmware_version' found in fixed values area.
EVA device configuration lookup lasted 10.977906190 seconds.
immutable=1und1
>>>>>>>>>> debug output of bootmanager script <<<<<<<<<<
system type = GRX500
model = AVM7590 (GRX550, HW226) Main model
chipset manufacturer = lantiq
compatible = GRX500
system selector = 1
system is switched = false
device branding = 1und1
device branding is changeable = false
current branding = 1und1
inactive system is installed = true
>>>>>>>>>>>>>>>>>>>> running system <<<<<<<<<<<<<<<<<<<<
active kernel = /dev/mtdblock3
active filesystem = /dev/mtdblock6
active system version = 154.07.50-101716
active system date = 21.11.2022, 09:21:05 Uhr (epoch: 1669018865)
active system modification date = 09.01.2023, 21:19:46 Uhr (epoch: 1673295586)
active system modification source = Freetz-NG
brandings supported on active system = 1und1 avm avme
branding used by active system = 1und1 (immutable)
>>>>>>>>>>>>>>>>>> alternative system <<<<<<<<<<<<<<<<<<
inactive kernel = /dev/mtdblock0
inactive filesystem = /dev/mtdblock5
inactive filesystem mounted on /var/tmp/14232_1673511494/alt_root
inactive system version = 154.07.27-88306
inactive system date = 04.05.2021, 21:26:33 Uhr (epoch: 1620156393)
inactive system modification date = 29.05.2021, 19:11:32 Uhr (epoch: 1622308292)
inactive system modification source = Freetz-NG
brandings supported on inactive system = 1und1 avm avme
branding used by inactive system = 1und1 (immutable)
inactive filesystem dismounted
Irgendwie habe ich ja den Verdacht, daß unterschiedliche BusyBox-Versionen hier wieder eine Rolle spielen könnten ... immerhin werden die Daten ja mittels des BB-Applets sed...
Rich (BBCode):
# cat /var/tmp/bootmanager.dev
immutable=1und1
# sed -n -e "s|^\(immutable\|changeable\|undetectable\)=\(.*\)\$|\2|p" "/var/tmp/bootmanager.dev"
#
sed ... gibt nichts zurück.
Ich habe das Gefühl, wir sind dem Problem auf der Spur... :cool:
EDIT
Rich (BBCode):
# busybox sed
BusyBox v1.36.0 (2023-01-07 12:21:43 UTC) multi-call binary.

Usage: sed [-i[SFX]] [-nrE] [-f FILE]... [-e CMD]... [FILE]...
or: sed [-i[SFX]] [-nrE] CMD [FILE]...

        -e CMD  Add CMD to sed commands to be executed
        -f FILE Add FILE contents to sed commands to be executed
        -i[SFX] Edit files in-place (otherwise write to stdout)
                Optionally back files up, appending SFX
        -n      Suppress automatic printing of pattern space
        -r,-E   Use extended regex syntax

If no -e or -f, the first non-option argument is the sed command string.
Remaining arguments are input files (stdin if none).
 
Zuletzt bearbeitet:
Kannst Du das bitte noch einmal mit einer statisch gelinkten BusyBox (z.B. dieser hier: https://github.com/PeterPawn/yf_bin...a3e1082ef551b68a/target/mips/3.10.107/busybox) wiederholen? Das hat sich erledigt ... ich habe den Unterschied ja schon (weiter unten) auf den Übergang von 1.35.0 zu 1.36.0 bei der BusyBox einschränken können.

Wobei das Ergebnis schon ziemlich eindeutig ist ... nur sehe ich nichts, was an meinem Aufruf falsch wäre. Vermutlich kommt das s-Kommando nicht damit klar, daß ich den senkrechten Strich (aus Gewohnheit, weil einem ansonsten der Standard mit einem Schrägstrich schnell auf die Füße fällt, wenn man darin irgendwelche Linux-Pfade verarbeiten will, die in Variablen stehen) sowohl als Begrenzer für die Teile des Kommandos einsetze, als auch als Trennzeichen für Alternativen in einem regulären Ausdruck.

Denn wenn ich die "Begrenzer" durch ein anderes Zeichen ersetze, klappt es wieder, was ansonsten (auch bei mir auf dem Linux-System mit x64, wie ich inzwischen festgestellt habe) nicht funktioniert:
Code:
vidar:~ $ printf "immutable=1und1\n" | sed -n -e "s|^\(immutable\|changeable\|undetectable\)=\(.*\)\$|\2|p"
vidar:~ $ printf "immutable=1und1\n" | sed -n -e "s;^\(immutable\|changeable\|undetectable\)=\(.*\)\$;\2;p"
1und1
vidar:~ $
Nun ist dieses Verhalten natürlich auch wieder in der POSIX-Spezifikation festgelegt (https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html):
[2addr]s/BRE/replacement/flags
Substitute the replacement string for instances of the BRE in the pattern space. Any character other than <backslash> or <newline> can be used instead of a
<slash> to delimit the BRE and the replacement. Within the BRE and the replacement, the BRE delimiter itself can be used as a literal character if it is preceded
by a <backslash>.
Vermutlich entsprach das vorhergehende Verhalten des sed-Applets nicht ganz dieser Spezifikation, wobei ICH das aus der Definition NICHT herauslesen kann. Vielleicht liegt es auch daran, daß mittlerweile wohl die "alternation" nur noch zu den "extended regular expressions" (ERE) gehört (https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html) - nur stellt sich dann die Frage, warum es bei geänderten Trennzeichen (delimiter) dennoch als Expression (die hier ja eindeutig nur als "basic regular expression" (BRE) spezifiziert ist) akzeptiert wird. Und vor allem, wann hat sich das bei der BusyBox geändert?

Mit der 1.35.0 (stable) funktionierte es jedenfalls noch:
Rich (BBCode):
vidar:/home/GitHub/busybox $ ./busybox printf "immutable=1und1\n" | ./busybox sed -n -e "s|^\(immutable\|changeable\|undetectable\)=\(.*\)\$|\2|p"
1und1
vidar:/home/GitHub/busybox $ ./busybox
BusyBox v1.35.0 (2023-01-12 14:52:16 CET) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --show SCRIPT
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        [, [[, acpid, add-shell, addgroup, adduser, adjtimex, arch, arp, arping, ascii, ash, awk, base32, base64, basename, bc, beep, blkdiscard, blkid, blockdev, bootchartd, brctl, bunzip2, bzcat, bzip2, cal, cat, chat, chattr, chgrp,
        chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, conspy, cp, cpio, crc32, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff,
        dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand, expr, factor, fakeidentd, fallocate, false, fatattr, fbset, fbsplash,
        fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk, fsck, fsck.minix, fsfreeze, fstrim, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep, groups, gunzip, gzip, halt, hd, hdparm, head,
        hexdump, hexedit, hostid, hostname, httpd, hush, hwclock, i2cdetect, i2cdump, i2cget, i2cset, i2ctransfer, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init, insmod, install, ionice, iostat, ip, ipaddr, ipcalc, ipcrm,
        ipcs, iplink, ipneigh, iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last, less, link, linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr, ls,
        lsattr, lsmod, lsof, lspci, lsscsi, lsusb, lzcat, lzma, lzop, makedevs, makemime, man, md5sum, mdev, mesg, microcom, mim, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp,
        modinfo, modprobe, more, mount, mountpoint, mpstat, mt, mv, nameif, nanddump, nandwrite, nbd-client, nc, netstat, nice, nl, nmeter, nohup, nologin, nproc, nsenter, nslookup, ntpd, od, openvt, partprobe, passwd, paste, patch,
        pgrep, pidof, ping, ping6, pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv, printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath, reboot,
        reformime, remove-shell, renice, reset, resize, resume, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake, run-init, run-parts, runlevel, runsv, runsvdir, rx, script, scriptreplay, sed, sendmail, seq, setarch, setconsole,
        setfattr, setfont, setkeycodes, setlogcons, setpriv, setserial, setsid, setuidgid, sh, sha1sum, sha256sum, sha3sum, sha512sum, showkey, shred, shuf, slattach, sleep, smemcap, softlimit, sort, split, ssl_client,
        start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv, svc, svlogd, svok, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, taskset, tc, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout,
        top, touch, tr, traceroute, traceroute6, true, truncate, ts, tty, ttysize, tunctl, ubiattach, ubidetach, ubimkvol, ubirename, ubirmvol, ubirsvol, ubiupdatevol, udhcpc, udhcpc6, udhcpd, udpsvd, uevent, umount, uname, unexpand,
        uniq, unix2dos, unlink, unlzma, unshare, unxz, unzip, uptime, users, usleep, uudecode, uuencode, vconfig, vi, vlock, volname, w, wall, watch, watchdog, wc, wget, which, who, whoami, whois, xargs, xxd, xz, xzcat, yes, zcat, zcip
vidar:/home/GitHub/busybox $
, was mit der 1.36.0 (ebenfalls stable) nicht mehr klappt:
Rich (BBCode):
vidar:/home/GitHub/busybox $ make mrproper
  CLEAN   applets
  CLEAN   busybox busybox_unstripped busybox_unstripped.map busybox_unstripped.out .kernelrelease
  CLEAN   scripts/basic
  CLEAN   scripts/kconfig
  CLEAN   include/config
  CLEAN   .config include/NUM_APPLETS.h include/common_bufsiz.h include/autoconf.h include/bbconfigopts.h include/bbconfigopts_bz2.h include/embedded_scripts.h include/usage_compressed.h include/applet_tables.h include/applets.h include/usage.h
vidar:/home/GitHub/busybox $ git switch 1_36_stable
Switched to branch '1_36_stable'
Your branch is up to date with 'origin/1_36_stable'.
vidar:/home/GitHub/busybox $ make defconfig >/dev/null
vidar:/home/GitHub/busybox $ make busybox >/dev/null 2>&1 <<< ich hatte schon zuvor einen erfolgreichen Build für 1.36.0 ausgeführt und brauchte daher keine Ausgaben mehr
vidar:/home/GitHub/busybox $ ./busybox
BusyBox v1.36.0 (2023-01-12 14:58:09 CET) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --show SCRIPT
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        [, [[, acpid, add-shell, addgroup, adduser, adjtimex, arch, arp, arping, ascii, ash, awk, base32, base64, basename, bc, beep, blkdiscard, blkid, blockdev, bootchartd, brctl, bunzip2, bzcat, bzip2, cal, cat, chat, chattr, chgrp,
        chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, conspy, cp, cpio, crc32, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff,
        dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand, expr, factor, fakeidentd, fallocate, false, fatattr, fbset, fbsplash,
        fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk, fsck, fsck.minix, fsfreeze, fstrim, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep, groups, gunzip, gzip, halt, hd, hdparm, head,
        hexdump, hexedit, hostid, hostname, httpd, hush, hwclock, i2cdetect, i2cdump, i2cget, i2cset, i2ctransfer, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init, insmod, install, ionice, iostat, ip, ipaddr, ipcalc, ipcrm,
        ipcs, iplink, ipneigh, iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last, less, link, linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr, ls,
        lsattr, lsmod, lsof, lspci, lsscsi, lsusb, lzcat, lzma, lzop, makedevs, makemime, man, md5sum, mdev, mesg, microcom, mim, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp,
        modinfo, modprobe, more, mount, mountpoint, mpstat, mt, mv, nameif, nanddump, nandwrite, nbd-client, nc, netstat, nice, nl, nmeter, nohup, nologin, nproc, nsenter, nslookup, ntpd, od, openvt, partprobe, passwd, paste, patch,
        pgrep, pidof, ping, ping6, pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv, printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath, reboot,
        reformime, remove-shell, renice, reset, resize, resume, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake, run-init, run-parts, runlevel, runsv, runsvdir, rx, script, scriptreplay, sed, seedrng, sendmail, seq, setarch,
        setconsole, setfattr, setfont, setkeycodes, setlogcons, setpriv, setserial, setsid, setuidgid, sh, sha1sum, sha256sum, sha3sum, sha512sum, showkey, shred, shuf, slattach, sleep, smemcap, softlimit, sort, split, ssl_client,
        start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv, svc, svlogd, svok, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, taskset, tc, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout,
        top, touch, tr, traceroute, traceroute6, tree, true, truncate, ts, tsort, tty, ttysize, tunctl, ubiattach, ubidetach, ubimkvol, ubirename, ubirmvol, ubirsvol, ubiupdatevol, udhcpc, udhcpc6, udhcpd, udpsvd, uevent, umount, uname,
        unexpand, uniq, unix2dos, unlink, unlzma, unshare, unxz, unzip, uptime, users, usleep, uudecode, uuencode, vconfig, vi, vlock, volname, w, wall, watch, watchdog, wc, wget, which, who, whoami, whois, xargs, xxd, xz, xzcat, yes,
        zcat, zcip
vidar:/home/GitHub/busybox $ ./busybox printf "immutable=1und1\n" | ./busybox sed -n -e "s|^\(immutable\|changeable\|undetectable\)=\(.*\)\$|\2|p"
vidar:/home/GitHub/busybox $



Alles etwas merkwürdig, aber ich habe weder Zeit noch Lust, dem Phänomen hinterher zu rennen und zu überlegen, welches nun wohl die korrekte Arbeitsweise ist und welche nicht ... daher ändere ich das jetzt in meinem Skript und gut ist's. Vor allem gehe ich damit dann auch allen Fragen, welche BusyBox da gerade verwendet wird, aus dem Weg.
Rich (BBCode):
vidar:/home/GitHub/YourFritz $ git tag -f freetz-ng-version
Updated tag 'freetz-ng-version' (was 48aea82)
vidar:/home/GitHub/YourFritz $ git tag -f freetz-ng-test
Updated tag 'freetz-ng-test' (was 48aea82)
vidar:/home/GitHub/YourFritz $ git push
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 2 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 1.17 KiB | 1.17 MiB/s, done.
Total 4 (delta 3), reused 0 (delta 0), pack-reused 0
To git:/srv/git/YourFritz.git
   48aea82..303ba6b  main -> main
vidar:/home/GitHub/YourFritz $ git push -f origin freetz-ng-version
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To git:/srv/git/YourFritz.git
 + 48aea82...303ba6b freetz-ng-version -> freetz-ng-version (forced update)
vidar:/home/GitHub/YourFritz $ git push -f origin freetz-ng-test
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To git:/srv/git/YourFritz.git
 + 48aea82...303ba6b freetz-ng-test -> freetz-ng-test (forced update)
vidar:/home/GitHub/YourFritz $ git push github
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 2 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 1.17 KiB | 1.17 MiB/s, done.
Total 4 (delta 3), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (3/3), completed with 3 local objects.
To github.com:PeterPawn/YourFritz.git
   48aea82..303ba6b  main -> main
vidar:/home/GitHub/YourFritz $ git push -f github freetz-ng-version
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:PeterPawn/YourFritz.git
 + 48aea82...303ba6b freetz-ng-version -> freetz-ng-version (forced update)
vidar:/home/GitHub/YourFritz $ git push -f github freetz-ng-test
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:PeterPawn/YourFritz.git
 + 48aea82...303ba6b freetz-ng-test -> freetz-ng-test (forced update)
vidar:/home/GitHub/YourFritz $
Die Änderungen sind also (mit BEIDEN Tags auf demselben Stand) bereits online bei GitHub.



Solche Probleme sind ja immer besonders ärgerlich, weil man sich i.d.R. einen Wolf sucht (ich TIPPTE ja auch nur darauf, daß das Auslesen irgendwie nicht klappen würde) und dann doch niemanden dafür verantwortlich machen kann, daß es nun plötzlich nicht mehr funktioniert.

Wobei man bei Freetz(-NG) dann noch ganz besonders aufpassen muß, WELCHES Kommando man da tatsächlich ausführt ... da unterscheiden sich auch Deine beiden Tests oben. Wenn Du einmal nur sed aufrufst und beim zweiten Mal dann busybox sed, dann wird jedesmal im Suchpfad (Variable PATH) nach dem ERSTEN Wort als Dateiname gesucht und nur dann, wenn irgendwo ein Symlink nach /bin/busybox als sed zu finden ist, sind diese beiden Aufrufe (weitgehend, denn deckungsgleich sind sie auch dann noch nicht) vergleichbar.

Und am Ende bin ich mir noch nicht einmal sicher, ob damit bei Dir tatsächlich ALLE Probleme auch behoben sind ... das sollten aber weitere Tests (nicht vergessen, mit fehlenden Cache-Dateien von vorne zu beginnen) schnell zeigen.
 
Die Änderung:
Rich (BBCode):
# head -2869 /usr/bin/bootmanager | tail -7
error_code=0
case "$1" in
        ("is_supported")
                system_type="$(get_system_type)"
                is_dualboot_supported && rc=0 || rc=1
                ;;
        ("is_blocked")
bringt den erwünschten Erfolg:
Rich (BBCode):
# /usr/bin/bootmanager is_supported && echo true || echo false
true

bootmanager get_values liefert jetzt auch device_branding=1und1.
Rich (BBCode):
# /usr/bin/bootmanager get_values
active_version="154.07.50-101716"
active_date_epoch="1669018865"
active_date="21.11.2022, 09:21:05 Uhr"
active_modified_by="Freetz-NG"
active_modified_at_epoch="1673536550"
active_modified_at="12.01.2023, 16:15:50 Uhr"
active_brandings="1und1 avm avme"
active_branding="1und1"
active_change_branding_support=immutable
inactive_version="154.07.50-101716"
inactive_date_epoch="1669018865"
inactive_date="21.11.2022, 09:21:05 Uhr"
inactive_modified_by="Freetz-NG"
inactive_modified_at_epoch="1673295586"
inactive_modified_at="09.01.2023, 21:19:46 Uhr"
inactive_brandings="1und1 avm avme"
inactive_branding="1und1"
inactive_change_branding_support=immutable
current_branding=1und1
device_branding=1und1
device_branding_changeable=false
switch_branding_support=false
current_switch_value=0
system_is_switched=false
bootmanager_version="0.8.6-202204152119"

Und dann noch bootmanager debug verbose...
Rich (BBCode):
# /usr/bin/bootmanager clear_cache with_eva_config
# BM_DEBUG_EVA=1 /usr/bin/bootmanager debug verbose
yf_bootmanager version = 0.8.6-202204152119
>>>>>>>>>> device configuration from EVA loader <<<<<<<<<<
Read 'memsize' value from urlader environment: 0x20000000
Read 'mtd0' value from urlader environment: 0x0,0x2C00000
Read 'maca' value from urlader environment: DC:39:6F:19:E3:7C
Read 'wlan_key' value from urlader environment: 87591899937370921154
Read 'mtd0' value from urlader environment: 0x0,0x2C00000
Read 'mtd1' value from urlader environment: 0x500000,0xD00000
Read 'mtd2' value from urlader environment: 0x0,0x100000
Read 'mtd3' value from urlader environment: 0x100000,0x500000
Read 'mtd4' value from urlader environment: 0xD00000,0x1500000
Read 'mtd5' value from urlader environment: 0x1500000,0x20000000
Read 'mtd6' value from urlader environment: (empty)
Read 'mtd7' value from urlader environment: (empty)
Read 'mtd8' value from urlader environment: (empty)
Read 'mtd9' value from urlader environment: (empty)
Read 'mtd10' value from urlader environment: (empty)
Read 'mtd11' value from urlader environment: (empty)
Read 'mtd12' value from urlader environment: (empty)
Read 'mtd13' value from urlader environment: (empty)
Read 'mtd14' value from urlader environment: (empty)
Read 'mtd15' value from urlader environment: (empty)
Configuration area candidate found at offset: 729088 (0xb2000)
Configuration area found at offset: 729088 (0xb2000)
EVA configuration found at offset: 729088 (0xb2000)
'firmware_version' found in fixed values area.
EVA device configuration lookup lasted 10.781059179 seconds.
immutable=1und1
>>>>>>>>>> debug output of bootmanager script <<<<<<<<<<
system type = GRX500
model = AVM7590 (GRX550, HW226) Main model
chipset manufacturer = lantiq
compatible = GRX500
system selector = 0
system is switched = false
device branding = 1und1
device branding is changeable = false
current branding = 1und1
inactive system is installed = true
>>>>>>>>>>>>>>>>>>>> running system <<<<<<<<<<<<<<<<<<<<
active kernel = /dev/mtdblock0
active filesystem = /dev/mtdblock5
active system version = 154.07.50-101716
active system date = 21.11.2022, 09:21:05 Uhr (epoch: 1669018865)
active system modification date = 12.01.2023, 16:15:50 Uhr (epoch: 1673536550)
active system modification source = Freetz-NG
brandings supported on active system = 1und1 avm avme
branding used by active system = 1und1 (immutable)
>>>>>>>>>>>>>>>>>> alternative system <<<<<<<<<<<<<<<<<<
inactive kernel = /dev/mtdblock3
inactive filesystem = /dev/mtdblock6
inactive filesystem mounted on /var/tmp/20492_1673593806/alt_root
inactive system version = 154.07.50-101716
inactive system date = 21.11.2022, 09:21:05 Uhr (epoch: 1669018865)
inactive system modification date = 09.01.2023, 21:19:46 Uhr (epoch: 1673295586)
inactive system modification source = Freetz-NG
brandings supported on inactive system = 1und1 avm avme
branding used by inactive system = 1und1 (immutable)
inactive filesystem dismounted

Und am Ende bin ich mir noch nicht einmal sicher, ob damit bei Dir tatsächlich ALLE Probleme auch behoben sind ...das sollten aber weitere Tests (nicht vergessen, mit fehlenden Cache-Dateien von vorne zu beginnen) schnell zeigen.
Du hast damit wohl Recht. Das Auswahlmenü "Neustart" bleibt mir verwährt.
Welche weiteren Test kann ich denn noch machen ?
 
Zuletzt bearbeitet:
Ja, das is_supported war reparaturbedürftig, aber nur beim direkten Auffuf, weil eben system_type nicht gesetzt war. An allen anderen Stellen, wo das intern auch noch aufgerufen wird, war dieser Wert aber schon gesetzt und der fehlende Wert bei device_branding lag eben am geänderten Verhalten des sed-Applets.

Im nächsten Schritt wäre jetzt zu prüfen, ob am output-FIFO die richtigen Werte ausgegeben werden:cat /var/run/bootmanager/output sollte dieselbe Ausgabe liefern, wie ein bootmanager get_values. Auch in /var/run/bootmanager/log kann man mal nachsehen, was der Service bisher so gemacht hat.

Ist da kein Problem zu sehen, muß man in den Browser (mit dessen Developer-Tools) und sich den Request und die Response für die reboot.lua genauer ansehen. Dort sollten valide JSON-Daten ausgegeben werden, mit denen der JavaScript-Code dann die Daten für das GUI generieren kann. Aber eins nach dem anderen …

Da es eben bei mir funktioniert, aber ohne Freetz-NG, denke ich erst einmal an ein ähnliches Problem wie mit dem sed zuvor - also an eines, was an der anderen BusyBox-Version liegt. Nur muß man sich eben Stück für Stück herantasten, wo diese Stelle wohl sein mag.
 
cat /var/run/bootmanager/output sollte dieselbe Ausgabe liefern, wie ein bootmanager get_values.
Das tut es:
Rich (BBCode):
# md5sum  <(cat /var/run/bootmanager/output)
42ae9f6c2fe4e82313aacc5e9ab42344  /proc/self/fd/63
# md5sum <(bootmanager get_values)
42ae9f6c2fe4e82313aacc5e9ab42344  /proc/self/fd/63

Rich (BBCode):
# cat /var/run/bootmanager/log
active_version="154.07.50-101716"
active_date_epoch="1669018865"
active_date="21.11.2022, 09:21:05 Uhr"
active_modified_by="Freetz-NG"
active_modified_at_epoch="1673536550"
active_modified_at="12.01.2023, 16:15:50 Uhr"
active_brandings="1und1 avm avme"
active_branding="1und1"
active_change_branding_support=immutable
inactive_version="154.07.50-101716"
inactive_date_epoch="1669018865"
inactive_date="21.11.2022, 09:21:05 Uhr"
inactive_modified_by="Freetz-NG"
inactive_modified_at_epoch="1673295586"
inactive_modified_at="09.01.2023, 21:19:46 Uhr"
inactive_brandings="1und1 avm avme"
inactive_branding="1und1"
inactive_change_branding_support=immutable
current_branding=1und1
device_branding=1und1
device_branding_changeable=false
switch_branding_support=false
current_switch_value=0
system_is_switched=false
bootmanager_version="0.8.6-202204152119"
Ich kann kein Problem erkennen(, siehst Du eins?)

...sich den Request und die Response für die reboot.lua genauer ansehen...
1673624484027.png
In der reboot.js tauchen die Funktionsdeklarationen von onChangeLinuxFsStart und buildBootmanager dreifach auf. Wenn ich diese Duplikate entferne und die Datei ersetze (# mount --bind /var/tmp/reboot.js /usr/www/all/system/reboot.js), dann sehe ich auch wieder das Auswahlmenü. :)

Nur muß man sich eben Stück für Stück herantasten, wo diese Stelle wohl sein mag.
Die Fehler in der reboot.lua dürften wohl eine Stelle sein. Ob es noch andere Stellen gibt, kann ich nicht einschätzen. Wie sinnvoll wäre in dieser Situation ein Test der Funktion des Bootmanagers? Wie sicher ist die Anwendung deines "noch nicht sicheren" Bootmanagers?
 
Zuletzt bearbeitet:
Code:
bootmanager_version="0.8.6-202204152119
Auch die richŧige Version erwischt/ausgechecked?

Nur mal als Laie, da ich gerade modfs am Vorbereiten war.
 
Danke für den Hinweis, ich denke, dass ich die relvanten Änderungen (bis auf yf_bootmanager_timestamp=202301121629) "erwischt" habe. (Ich folge erstmal dem Dialog mit PeterPawn.)
Rich (BBCode):
# head -2869 /usr/bin/bootmanager | tail -7
error_code=0
case "$1" in
        ("is_supported")
                system_type="$(get_system_type)"
                is_dualboot_supported && rc=0 || rc=1
                ;;
        ("is_blocked")
Rich (BBCode):
 # head -2839 /usr/bin/bootmanager | tail -6
        else
                device_cbs="$(sed -n -e "s;^\(immutable\|changeable\|undetectable\)=.*\$;\1;p" "$device_cache_file")"
                device_branding="$(sed -n -e "s;^\(immutable\|changeable\|undetectable\)=\(.*\)\$;\2;p" "$device_cache_file")"
                [ "$device_cbs" = "changeable" ] && device_branding_is_changeable="true" || device_branding_is_changeable="false"
                [ -n "$BM_DEBUG_EVA" ] && printf -- "Device configuration info loaded from cache file.\n" 1>&2 && cat "$device_cache_file" 1>&2
        fi
 
Zuletzt bearbeitet:
In der reboot.lua tauchen die Funktionsdeklarationen von onChangeLinuxFsStart und buildBootmanager dreifach auf.
Hmm - das liegt wahrscheinlich daran, daß Freetz(-NG) hingeht und aus den drei Brandings ein einziges macht (der Rest sind nur Symlinks auf dieses gemeinsame Verzeichnis, was zumindest früher dann mal all hieß) und dann das Skript zum Patchen dennoch so aufruft, daß die vorhandenen Brandings automatisch verarbeitet werden: https://github.com/PeterPawn/YourFr...688847/bootmanager/add_to_system_reboot.sh#L7

Das macht dann so viele Aufrufe des Patches für die JS-Datei, wie vermeintliche Brandings gefunden wurden: https://github.com/PeterPawn/YourFr...88847/bootmanager/add_to_system_reboot.sh#L71

Da beim Patchen NICHT darauf geachtet wird, ob ein Patch bereits auf die Datei angewandt wurde (das geht beim gewählten Aufbau auch nicht wirklich gut), erfolgt dann eben auch der mehrfache Einbau dieser Funktionen.

Helfen sollte es, wenn man hier: https://github.com/Freetz-NG/freetz...75ff/patches/scripts/800-yf_bootmanager.sh#L9 durch die Angabe EINES EINZIGEN Brandings (welche da vorhanden sind nach den Änderungen durch Freetz-NG, weiß ich auch nicht) dafür sorgt, daß diese Schleife: https://github.com/PeterPawn/YourFr...8847/bootmanager/add_to_system_reboot.sh#L170 NICHT abgearbeitet wird, sondern stattdessen der else-Zweig zum vorhergehenden if und damit auch nur eine einzige Datei gepatcht wird.

Entscheidend ist halt, WO im Ablauf bei Freetz-NG man mein Skript aufruft ... erfolgt das VOR dem Zusammenlegen der Verzeichnisse für die enthaltenen Brandings, kann man das so aufrufen, wie es derzeit im o.g. File 800-yf_bootmanager.sh zu sehen ist, denn dann sind das noch drei unabhängige Dateien. Erfolgt es aber erst NACH der Zusammenlegung und es wird dennoch für ALLE enthaltenen Brandings installiert, wird mehrfach die Datei geändert, die von jedem Branding aus verlinkt ist.

EDIT: Für die 7590 halte ich persönlich den Boot-Manager sogar für "sehr sicher", denn auf so einem Modell habe ich ihn eben HINREICHEND getestet. Die anderen Fehler (bis eben auf is_supported, was aber als "externer Aufruf" auch nur ein Angebot zur Nachnutzung ist und die internen Aufrufe funktionierten ja auch vorher schon, wie ich oben bereits schrieb) waren dann ja doch eher darauf zurückzuführen, daß Du den im Rahmen von Freetz-NG benutzt ... die Änderungen beim sed konnte wohl niemand vorhersehen und auch das "Mehrfach-Patchen" (ich bin schon einigermaßen sicher, daß ich da den Finger in die richtige Wunde gelegt habe) ist ja eher der Tatsache zuzuschreiben, daß Freetz (und Freetz-NG auch weiterhin) da an der Dateisystemstruktur herumändern (daher auch mein Vermerk, daß das bei unüblichen Strukturen auch schiefgehen kann: https://github.com/PeterPawn/YourFr...688847/bootmanager/add_to_system_reboot.sh#L8), obwohl dieses Zusammenlegen der Brandings (das obendrein noch OHNE Kontrolle erfolgt, ob es in der AVM-Firmware nicht doch Unterschiede gibt) nur sehr, sehr wenig an Platz einspart, denn identische Dateien werden in einem SquashFS-Image auch nur ein einziges Mal gespeichert und lediglich der Platz für die zusätzlichen Verzeichnisse wird dabei mehrfach belegt. Die Einsparungen bei der Größe des resultierenden Dateisystems dürften daher auch nur marginal sein und angesichts der ohnehin immer größer werdenden Images erst recht nicht mehr von Belang sein - zumal auch in ALLEN neueren Modellen noch ziemliche Reserven im Flash-Speicher vorhanden sind und längst nicht mehr so "auf Kante genäht" werden muß, wie das vielleicht bei der 7390 noch der Fall war.

EDIT2: Man sieht es weiter oben sogar in den Ausgaben meines Installationsskripts (da, wo Dich die Zeilen dann doch nicht störten) ... da werden die Lua- und JS-Patches DREIMAL auf jeweils unterschiedliche Brandings angewandt - daß sich dahinter dann am Ende jeweils dieselbe(n) Datei(en) verbergen, kann man halt nicht erkennen. Wird da nur ein einziges Branding angegeben, werden eben auch die Patches nur einmal ausgeführt. Und nach dem von Dir gezeigten mount-Kommando mit bind-Option, sollte das "gemeinsame" Verzeichnis wohl immer noch all heißen - das könnte man dann auch als (Pseudo-)Branding angeben.
 
Zuletzt bearbeitet:
Helfen sollte es, wenn man hier...
Verstehe ich die Zusammenhänge und Deine Ausführungen richtig, dass ich eine neue Zeile TARGET_BRANDING="all" in freetz-ng/patches/scripts/800-yf_bootmanager.sh wie folgt ergänzen sollte/könnte?
Rich (BBCode):
[ "$FREETZ_PATCH_MODFS_BOOT_MANAGER" == "y" ] || return 0
echo1 "adding yf-bootmanager"

[ "$FREETZ_VERBOSITY_LEVEL" -lt "2" 2>/dev/null ] && exec >/dev/null
TEMPDIR=$(mktemp -d)
pushd "${TOOLS_DIR}/yf/bootmanager" >/dev/null
TMP="$TEMPDIR" \
  TARGET_SYSTEM_VERSION="${AVM_FW_MAJOR}.${AVM_FW_VERSION}" \
  TARGET_DIR="${ABS_BASE_DIR}/${FILESYSTEM_MOD_DIR}" \
  TARGET_BRANDING="all" \
  sh "./add_to_system_reboot.sh" 2>&1 | sed 's/^/    /g'
popd >/dev/null
rmdir "$TEMPDIR"
[ "$FREETZ_VERBOSITY_LEVEL" -lt "2" 2>/dev/null ] && exec >$(tty)
Frage am Rande:
Welche Bedeutung haben eigentlich die Backslashes \ jeweils am Ende der Variablendeklaration?


Für die 7590 halte ich persönlich den Boot-Manager sogar für "sehr sicher"...
Ich wollte bloß sicher gehen, ob evtl. weitere sed-Aufrufe o.ä. fehllaufen und dadurch beim Reboot irgendwelchen "Schaden" anrichten könnten.
 
die Backslashes \ jeweils am Ende
Ein Backslash am Ende signalisiert, daß ein eingegebenes Kommando (oder auch ein gespeichertes, wenn es in einem Skript steht) auf der nächsten Zeile noch fortgesetzt wird. Das gesamte auszuführende Kommando steht also in mehreren Zeilen, von TMP= bis zum abschließenden sed vor der Zeile, die mit popd beginnt - die Zeilen sind ja auch ordentlich eingerückt, weil "white spaces" am Beginn einer Zeile (auch einer Fortsetzungszeile) ignoriert werden.

Die "Variablendeklarationen" werden vor dem Aufruf des in der Zeile (auch wenn es eine Eingabe ist, die über mehrere Zeilen läuft, wird ein Shell-Skript Zeile für Zeile abgearbeitet) angegebenen Programms dem Environment für diesen Aufruf hinzugefügt, siehe POSIX-Spezifikation der Shell-Grammatik, Punkt 7: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02

Und last, but not least ... ja, das hast Du richtig verstanden. Die Angabe eines KONKRETEN Brandings sollte bei der Installation die Schleife über alle gefundenen Brandings ersetzen und damit sollte dann auch nur einmal gepatcht werden. Und das Beste daran ... Du kannst es gleich anhand der Nachrichten aus add_to_system_reboot.sh erkennen, ob tatsächlich nur ein einziges Mal gepatcht wird oder nicht und mußt dazu nicht erst das Image irgendwo installieren oder selbst in den (zu patchenden) Dateien nachsehen.

EDIT: Und irgendwelchen "Schaden" sollte das Skript generell nicht anrichten können ... das Maximum, was passieren kann, ist das Ändern von linux_fs_start und firmware_version, was man ohne weiteres auch per EVA-FTP wieder rückgängig machen kann. Etwas komplizierter wird es ggf. noch bei der Verwendung der anderen Lösungen zum Ändern von EVA-Variablen - nur verwendet die bisher m.W. fast niemand und in Freetz-NG schon gleich gar nicht, da das dort überhaupt nicht angeboten wird.
 
Die "Variablendeklarationen" werden vor dem Aufruf des in der Zeile ... angegebenen Programms dem Environment für diesen Aufruf hinzugefügt...
Das ist gut zu wissen.

Und der Bootmanager erstrahlt wieder im Glanz seines Entwicklers und Supporters... Danke.
1673868527915.png
 
  • Like
Reaktionen: PeterPawn
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.