[Problem] AVM Webseite hat nur ein "nil" sonst nix

briearn

Neuer User
Mitglied seit
18 Feb 2019
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo, ich habe gerade die 7490 auf ein aktuelles freetz build 15014 auf 7.01 AVM gebracht. Das funktioniert auch alles so weit, ich habe freetz am Laufen, und im Internet bin ich auch, aber die AVM GUI ist leer...

Siehe angehangene Datei:


Wie bekomme ich das normal GUI wieder ans laufen?
 

Anhänge

  • freetzproblem.png
    freetzproblem.png
    10.8 KB · Aufrufe: 45
Hänge mal bitte die .config mit an, dann könnte man sich das ggf. mal ansehen.
 
Du hast jede Menge Remove-Patches verwendet, die funktionieren mit neueren Firmware-Versionen schon lange nicht mehr und richten eher Schaden an.

Und auch viele weitere Einstellungen wurden (zumindest meinem Eindruck nach) quasi ohne "Sinn und Verstand" gesetzt (bspw. unter "Automount filesystems"), wohl nach dem Motto "viel hilft viel". Eigentlich gibt es nicht mehr viel, was nicht aktiviert wurde. Und einige dieser Optionen bewirken auch keine relevanten Änderungen (mehr) bei der 7490 mit FRITZ!OS 7.01.

Kurzum, die Config ist meiner Ansicht nach das absolute Gegenteil von einem "Basic-Image", ich würde sogar schon eher die Ausdrücke "völlig überladen" und "kaputt konfiguriert" verwenden. Eigentlich schon ein Wunder, dass die Box damit überhaupt noch bootet...

Tip:
Fange erst einmal mit einem "Basic-Image" an. Nur das was wirklich notwendig ist (ich würde bspw. mindestens dropbear oder SIAB mit einbauen für einen Konsolenzugang). Und alle Remove-Patches deaktiviert lassen.
 
Du hast jede Menge Remove-Patches verwendet, die funktionieren mit neueren Firmware-Versionen schon lange nicht mehr und richten eher Schaden an.
Da habe ich nirgendwo einen hinweis im makefile oder in der gui bei make menuconfig gesehen. Wenn dem so ist, dann sag doch mal wo die Probleme machen. Evtl. kann ich da ja etwas zu beitragen. Meine Auffassung ist immer nur das draufzulassen was ich auch benötige. Nicht mehr - aber halt auch nicht weniger. Mein Verständnis war bisher, das Removal sich darauf bezieht die jeweiligen binaries oder scripte von der FB zu entfernen. Ist dem nicht so? In dem Fall müsste ich dann dort manuell ran.

Und auch viele weitere Einstellungen wurden (zumindest meinem Eindruck nach) quasi ohne "Sinn und Verstand" gesetzt (bspw. unter "Automount filesystems"), wohl nach dem Motto "viel hilft viel". Eigentlich gibt es nicht mehr viel, was nicht aktiviert wurde. Und einige dieser Optionen bewirken auch keine relevanten Änderungen (mehr) bei der 7490 mit FRITZ!OS 7.01.
Wie bereits oben erwähnt hatte ich da hinzugefügt was benötigt wird. Die Anzahl der unterstützten filesysteme deshalb weil die USB Platten daran halt unterstützt werden sollen. Die Anzahl auf 9 USB devices wurde auch deswegen hochgedreht. Wenn Optionen keine Änderungen mehr bewirken sollten die aus dem makefile entfernt werden - oder?!

Kurzum, die Config ist meiner Ansicht nach das absolute Gegenteil von einem "Basic-Image", ich würde sogar schon eher die Ausdrücke "völlig überladen" und "kaputt konfiguriert" verwenden. Eigentlich schon ein Wunder, dass die Box damit überhaupt noch bootet...
also bisher hatte damit die 7490 nie ein Problem. Bei der 7390 war es noch viel schlimmer, Du müsstest mal sehen was ich da alles an remove patches machen musste um ein Image überhaupt klein genug zu bekommen... :)


Fange erst einmal mit einem "Basic-Image" an. Nur das was wirklich notwendig ist (ich würde bspw. mindestens dropbear oder SIAB mit einbauen für einen Konsolenzugang). Und alle Remove-Patches deaktiviert lassen.
ich hab mal nach den basic images geschaut die ich gebaut hatte. Da sind so Exoten wie die 7050 oder die 7270_v3 dabei... (7050_04.33-freetz-devel-13734.de_20160525-005112.image oder 7270_v3_06.06-freetz-devel-13734.de_20160525-130739.image historisch und nostalisch selbstverständlich absolut wertvoll)

Aber die eigentliche Frage bleibt natürlich: Woran liegts das nur NIL kommt? Das von Dir erklärte ist reichlich generell. Irgendeine Idee? Ich tippe ja fast mal auf irgendwas in der Verarbeitung von AVM, das die die responsive engine mit statischen Versionsnummern füttert und das scheint sich mit Freetz zu verschlucken... Evtl. gibts da keinen Zweig für und der landet im default/nirvana... Die Versionsnummer ist zumindest laut make menuconfig nicht mit der Freetz Variante kombiniert.
 
Da von vielen Lua-Seiten nur noch Daten in JSON-Syntax zurückgegeben werden und es bei Problemen, diese dann auf der Client-Seite irgendwie zu parsen, keine sichtbaren Fehlermeldungen gibt, schlagen Lua-Fehlermeldungen nach irgendwelchen Patches auch nicht mehr automatisch bis ins GUI durch, wie das bei vorhergehenden Versionen zum Teil noch der Fall war, wo dann die Fehlermeldung eben als "Fleißtext" in der Seite enthalten war.

Wer wissen will, warum es am Ende im GUI klemmt, der muß halt mit den Developer-Tools des verwendeten Browsers selbst nachsehen. Hat der Browser so etwas nicht, sollte man einfach diesen Browser durch einen anderen ersetzen.

Wenn der Inhalt irgendeiner Zeichenkette als "nil" angezeigt wird, ist das in 99 von 100 Fällen ein Zeichen dafür, daß die Daten, aus denen diese Zeichenkette gelesen werden sollte, das falsche Format hatten und nicht interpretiert werden konnten - in der Folge war die ausgelesene Variable "nicht definiert" und genau dafür steht i.d.R. dieses "nil" in JavaScript. Ansonsten würde eine tatsächlich "leere" Zeichenkette eben keinen Inhalt haben.

Das "nil" an der gezeigten Stelle dürfte mit einiger Sicherheit daher kommen, daß ein (POST-)Aufruf der "data.lua" für die Seite "overview" (page=overview in den Parametern eines XHR) nicht das erwartete Ergebnis lieferte, in dem ansonsten unter "data->fritzos->Productname" der hier wohl anzuzeigende Produktname "FRITZ!Box 7490" als JSON-Value enthalten wäre.

Wenn ich mich hinsichtlich dieser Ursache irren sollte und es sich - entgegen meiner Vermutung, daß es sich nicht mehr nur um die Login-Seite handelt, welche auf der Sichtbarkeit der drei Punkte für das Menü am oberen rechten Rand beruht - doch bereits um die Login-Seite handeln sollte, dann ändert sich ggf. die aufgerufene Seite und auch die Stelle, wo die Daten nicht korrekt übermittelt werden. Aus der Beschreibung in #1 geht ja leider nicht hervor, ob das nun die Login-Seite sein soll (bzw. werden sollte) oder ob es sich doch tatsächlich und wie von mir unterstellt, um die Übersichtsseite handeln müßte.

Fakt ist aber, daß man das durch reine Gedankenkraft auch nicht ermitteln kann - da muß also dann mal jemand "nachsehen". Wenn die Ausgabe der Daten tatsächlich an einem Lua-Fehler scheitert, sieht man diesen ggf. auch in der ersten(!) Shell-Session, wo "/dev/console" ebenfalls ausgegeben wird, wenn die "/etc/profile" von AVM abgearbeitet wurde.
 
Da habe ich nirgendwo einen hinweis im makefile oder in der gui bei make menuconfig gesehen.
Kann ich ehrlich gesagt jetzt nicht ganz glauben, die Hinweise sind imo eigentlich kaum zu übersehen im Menu. Wenn man FRITZ!OS Ver. >=6.50 bei Freetz auswählt steht nicht umsonst noch "UNDER DEVELOPMENT" da. Bei FRITZ!OS 7 sogar "HIGHLY EXPERIMENTAL". Das hast du vielleicht einfach nur übersehen oder gar ignoriert?
Freetz_r15014_01_Main_UnderDelevopment.png Freetz_r15014_02_Main_HighlyExperimental.png Freetz_r15014_03_Firmware_Select.png

Ein Punkt lautet da nicht ganz umsonst "some remove/AVM-web-interface patches are not working even if selectable in menuconfig".

Aufgrund des NAND-Speicherkonzept bei vielen neueren Modellen war jedenfalls das Bedürfnis, die Removal-Patches an die neueren FRITZ!OS-Versionen (ab FRITZ!OS 6.50) anzupassen, bisher auch nicht sonderlich stark ausgeprägt, da gibt oder gab es entsprechend wichtigere Baustellen.

Ansonsten verweise ich jetzt einfach mal auf das alte Ticket #2774 (Add support for Frtiz!OS 06.5X).

Die alten Tickets (Freetz ist ja mittlerweile auf GitHub umgezogen) stehen aber derzeit leider nicht mehr zur Verfügung (der Link wäre gewesen: https://freetz.org/ticket/2774), man kann aber Dank der Wayback-Machine noch einen kleinen Blick riskieren:
https://web.archive.org/web/20171210162513/https://freetz.org/ticket/2774

Zitat daraus:
Ticket #2774 schrieb:
  • ...
  • adjust patches (a lot of web-if/remove patches need to be adjusted) - NOT STARTED (user patches are welcome)
  • ...


Wenn dem so ist, dann sag doch mal wo die Probleme machen. Evtl. kann ich da ja etwas zu beitragen.
Da würde ich jetzt einfach mal auf die Recherche verweisen, imo gab es dazu schon einige Themen oder Beiträge. Bisher hat sich halt noch keiner drum gekümmert.

Mein Verständnis war bisher, das Removal sich darauf bezieht die jeweiligen binaries oder scripte von der FB zu entfernen. Ist dem nicht so?
Prinzipiell ist dem schon so aber die Patches passen eben nicht zu neueren FRITZ!OS-Versionen da AVM einiges an FRITZ!OS verändert hat.

Die Anzahl der unterstützten filesysteme deshalb weil die USB Platten daran halt unterstützt werden sollen.
Du nutzt tatsächlich alle dort aufgelisteten Filesysteme an Datenträgern die du an der Fritzbox anschließt? Also auch HFS, HFS+, luks oder RiserFS? Wenn nicht, außer den soeben genannten werden meines Wissens nach alle dort erwähnten Filesysteme bereits unterstützt, selbst wenn man sie dort nicht explizit aktiviert (also bspw. ext2 oder swap, das muss nicht extra mit aktiviert werden).

Wenn Optionen keine Änderungen mehr bewirken sollten die aus dem makefile entfernt werden - oder?!
Tja, hat sich bis jetzt halt noch keiner drum gekümmert beziehungsweise ist die Wirksamkeit auch von der Firmware (AVM-Kernel) und dem Modell abhängig.

Aber die eigentliche Frage bleibt natürlich: Woran liegts das nur NIL kommt?
Ich tippe auf einen der Removal-Patches. Aber bei der Menge an anderen Optionen die du gesetzt hast wird es nicht ganz einfach sein herauszubekommen welche Option es konkret ist. Fange wie gesagt mit einem Basic-Image an und arbeite dich quasi hoch. Ignoriere dabei aber die Removal-Patches.

Das von Dir erklärte ist reichlich generell.
Ja klar, ich werde jetzt für dich nicht die genaue Ursache für das Problem bei dir suchen (insbesondere weil auch noch viele exotische Optionen verwendet wurden) sondern kann dir nur allgemeine Tipps geben wie du selbst das Problem finden kannst.
 
@PeterPawn: Deine Vermutung ist absolut korrekt. Das ist die Seite nach dem Login, die von Dir Übersichtsseite getauft wurde. Die Loginseite selber sah ganz normal aus und hat auch völlig wie erwartet funktioniert.
Der Quelltext im Browser hat "nil" folgendermaßen drin:

<div id="blueBarTitel" class="blue_bar_title">nil</div>

Leider kommt in der ersten Shell keine Consolenmeldung. dmesg liefert nichts was auf den Fehler hindeutet; tail -f /dev/console auch nichts und cat cat /dev/vcs gibt ebenfalls genau nichts aus. (ich verbinde mich mit ssh)


die /etc/profile is unspektakulär:
root@fritz:/var/log# cat /etc/profile
# /etc/profile
#
VERBOSE_RC_CONF=n
. /etc/init.d/rc.conf

export PATH=/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin:/mod/etc/init.d:/sbin:/bin:/usr/sbin:/usr/bin
export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib

tty="$(tty)"

case "$tty" in
/dev/tts/* | /dev/ttyS[01] | /dev/ttyLTQ[01] )
stty -F $tty rows 50 cols 132
echo -e "\033[50;132q\c"
;;
esac

# Set TERM and HOME
case $tty in
/dev/pts/*)
[ -z "$TERM" ] && export TERM=xterm
unset serial_term
;;
/dev/tts/*|/dev/ttyS*|/dev/ttyLTQ*|/dev/console)
export TERM=vt102
export serial_term=y
if [ -z "$HOME" -o "$HOME" == "/" ]; then
UID="$(awk '/^Uid:/ { print $2}' /proc/$$/status)"
export HOME="$(awk -F: '/^[-a-zA-Z0-9]+:x:'"$UID"':/ {print $6}' /etc/passwd)"
fi
cd "$HOME"
;;
*)
;;
esac

if [ $USER == "root" ] && grep -q '^root:$1$$zO6d3zi9DefdWLMB.OHaO.' /etc/shadow; then
echo "Default password detected. Please enter a new password for 'root'."
passwd
modusers save
modsave flash
fi

export PS1='\u@\h:\w\$ '

# some aliases
[ -x /usr/bin/less ] || alias less=more
alias l='ls -la'
alias c='cd ..'
alias w='uptime'

# more aliases
[ -d /etc/profile.d ] && for p in /etc/profile.d/* /mod/etc/profile.d/*; do
[ -r "$p" ] && . "$p"
done
root@fritz:/var/log#

die data.lua scheint auf den ersten Blick auch ganz zu sein.
Hier mal die Größe und deren md5:

root@fritz:/usr/www/all# ls -la data.lua
-rwxrwxrwx 1 root root 1526 Sep 10 11:42 data.lua
root@fritz:/usr/www/all# md5sum data.lua
dc5414b126d1b9f54a2afae1344ab1c2 data.lua
root@fritz:/usr/www/all#

### Zusammenführung Doppelpost by stoney ###

ich vergaß das es busybox ist und man setconsole ausführen muss...

hier nun die console outputs:

root@fritz:/usr/www/all# date
Wed Feb 20 18:20:20 CET 2019
root@fritz:/usr/www/all#
Lua Run Runtime ERROR in /usr/www/all//index.lua:1: ../menus/menu_data.lua:37: attempt to call field 'stick_present' (a nil value)
Lua stack traceback:
[C]: in function 'stick_present'
../menus/menu_data.lua:37: in function 'getter'
/usr/lua/core.lua:11: in function </usr/lua/core.lua:9>
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
../menus/menu_data.lua:231: in function 'getPageData'
../menus/menu_data.lua:1400: in function 'getMenuData'
[string "/usr/www/all//index.lua:1"]:26: in main chunk

Lua Run Runtime ERROR in /usr/www/all/content.lua:1: ../menus/menu_data.lua:37: attempt to call field 'stick_present' (a nil value)
Lua stack traceback:
[C]: in function 'stick_present'
../menus/menu_data.lua:37: in function 'getter'
/usr/lua/core.lua:11: in function </usr/lua/core.lua:9>
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
(tail call): ?
../menus/menu_data.lua:231: in function 'getPageData'
/usr/lua/general.lua:1192: in function 'showMyfritzWiz'
/usr/lua/general.lua:1202: in function 'showMyfritzAfterUpdate'
/usr/lua/first.lua:100: in function 'go_basic'
[string "/usr/www/all/content.lua:1"]:8: in main chunk

Lua Run Runtime ERROR in /usr/www/all/content.lua:64: [string "/usr/www/all/content.lua:64"]:1: attempt to index global 'gInitTab' (a nil value)
Lua stack traceback:
[C]: ?
[string "/usr/www/all/content.lua:64"]:1: in main chunk
^C
root@fritz:/usr/www/all# date
Wed Feb 20 18:20:28 CET 2019
root@fritz:/usr/www/all#
 
Zuletzt bearbeitet von einem Moderator:
die data.lua scheint auf den ersten Blick auch ganz zu sein.
Hier mal die Größe und deren md5:
Es geht nicht um die Datei, es geht um das Ergebnis eines Aufrufs derselben als XHR (asynchroner XmlHttpRequest) im Rahmen des Aufrufs der Übersichtsseite. Die "data.lua" ist einfach nur das "Einfallstor" für sämtliche anderen Aufrufe und verzweigt dann - in Abhängigkeit von den angegebenen Parametern - auf weitere Lua-Files in der AVM-Firmware. Wenn man da also etwas sehen will, muß man schon das auswerten, was im Browser am Ende ankommt ... nicht ganz umsonst habe ich ja deutlich auf die Developer-Tools der Browser hingewiesen.
 
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.