Hallo Zusammen,
ich bin auf der suche wie man den in der Firmware verbauten "self-test-Mode" aktivieren kann? Ist da von Euch schon Schlauer?
Außerdem, gibt es Irgendeine Doku was man in der Console im Debug-Mode tun kann?
Vielen lieben Dank und Grüße
Laubi
Hallo Laubi
Schau dir mal das hier an, denke das ist das was Du möchtest
Hallo Michael,
einer von uns beiden versteht den anderen nicht ?
-> Den Debug-Modus finde ich, da interessiert mich ob ich mit der Console die mir nach dem Logout angeboten wird etwas Sinnvolles anfangen kann (insbesondere ob und dann wie ich ggf. ein System-Call an das unter liegenden Linux senden könnte :D)
Unabhängig vom Debug-Modus gibt es aber in der Firmware auch einen Selbst-Test-Mode. Das Interessante daran: Der aktiviert einen Telnet, was mutmaßlich wiederrum ein Login mit dem Passwortlosen root erlauben dürfte.
In einem Holländischen Forum sprach mal jemand ganz kurz davon das das über Tastendrücke aktivierbar sei.
Danke & Grüße
Laubi
In einem Holländischen Forum sprach mal jemand ganz kurz davon das das über Tastendrücke aktivierbar sei.
Da das Offensichtlich Moderationspflichtig ist und ich mir nicht sicher bin, ob es zulässig ist auf fremde Foren zu verlinkend, hier der Hinweise welcher Beitrag gemeint ist,
Hi,
ok dann habe ich das falsch verstanden gehabt, tut mir leid. Aber da kann ich dir leider nicht helfen.
Hab' mal ein bisschen gegraben. Der Selbsttestmodus ist auch auf aktuellen firmware-images vorhanden.
/usr/sbin/sysap-start.sh startet ihn, wenn die Bedingung dafür erfüllt ist:
elif /sbin/check-key.sh selftest ; then selftest=true sysap-selftest.sh fi
/usr/sbin/sysap-selftest.sh macht dann so nette Dinge wie bspw. telnet starten, mittels dem man auf den SysAP zugreifen könnte.
Ist also die Frage, was check-key.sh macht:
case $1 in reset) echo 93 >/sys/class/gpio/export value=$(</sys/class/gpio/gpio93/value) if [ "$value" == "0" ] ; then exit 0 fi ;; selftest) if [ -f /static/locked ]; then exit 1 fi echo 203 >/sys/class/gpio/export value=$(</sys/class/gpio/gpio203/value) if [ "$value" == "0" ] ; then exit 0 fi ;; esac
Wie man an /usr/local/selftest/test_lock.sh sehen kann, ist /static/locked einfach ein mutex, damit das Skript nicht doppelt ausgeführt wird. Dürfte also wohl nicht gesetzt sein.
Somit wird der Selbsttest dann aktiv, wenn GPIO 203 beim Systemstart aktiv ist. Bleibt die Frage, was an GPIO 203 hängt.
Schaut man in /etc/hardware-detect.sh, so sieht man, daß zwei Hardwarevarianten unterschieden werden:
if [ "$MRHA_CPU" = "armv7l" ] ; then if grep -q mmcblk1 /proc/cmdline ; then export MRHA_MMCEXT="/dev/mmcblk1" else export MRHA_MMCEXT="/dev/mmcblk0" fi export MRHA_MMCINT="/dev/mmcblk2" export MRHA_RED=120 export MRHA_GREEN=100 export MRHA_BLUE=200 export MRHA_WHITE=100 export MRHA_RED_ORANGE=200 export MRHA_GREEN_ORANGE=31 export MRHA_BLUE_ORANGE=0 export MRHA_KEY1=gpio203 export MRHA_KEY2=gpio93 export MRHA_KEY3=gpio203 export MRHA_WLAN_IF=mlan0 else export MRHA_MMCEXT="/dev/mmcblk1" export MRHA_MMCINT="/dev/mmcblk0" export MRHA_RED=255 export MRHA_GREEN=255 export MRHA_BLUE=255 export MRHA_WHITE=255 export MRHA_RED_ORANGE=255 export MRHA_GREEN_ORANGE=255 export MRHA_BLUE_ORANGE=0 export MRHA_KEY1=gpio27 export MRHA_KEY2=gpio26 export MRHA_KEY3=gpio24 export MRHA_WLAN_IF=wlan0 fi
Man erkennt, daß die erste Variante zwei Tasten hat (GPIOs 203 und 93), während die zweite Variante drei Tasten hat (GPIOs 27, 26 und 24). Wie wir in check-key.sh gesehen haben, werden beim SysAP 2.0 auch genau diese beiden abgefragt.
Was folgern wir daraus?
Da nur zwei Tasten abgefragt werden und am Gehäuse genau zwei Tasten herausgeführt sind, liegt nahe, daß man beim Starten des SysAP die grosse Taste auf der Gehäuseoberseite gedrückt halten muß, um den Selbsttestmodus zu aktivieren. Leider habe ich es noch nicht hinbekommen.
Klappt es, würde der SysAP
1) telnetd starten
2) sshd starten
3) aufgrund von "ifconfig eth0 192.168.10.99" nur unter dieser Adresse über LAN erreichbar sein
4) aufgrund von "ifconfig $MRHA_WLAN_IF 192.168.20.99" nur unter dieser Adresse über WLAN erreichbar sein (SSID: FREEATHOME)
5) die LED am Gehäuse dauerhaft rot leuchten lassen
Fazit: entweder ist meine Annahme falsch und /static/locked ist vorhanden und unterbindet den Selbsttestmodus (was wir nicht prüfen können, da wir nicht auf das System kommen) oder ich habe etwas übersehen. Wäre cool, wenn das jemand bei sich ebenfalls ausprobieren würde.
@abraxa: Also bei meinen alten komme ich da aktuell auch nicht mit den Tasten weiter :-/
Echt komisch .... Hab auch schon mit ein Werksreset versucht einen anderen Zustand zu erreichen. Aber Irgendwie keine Taste und keine Kombination der drei Tasten funktioniert.
Mhhhh
Laubi
Ich bin drin 😀 !!!!
Allerdings mit ein paar Tricks, die aber vielleicht gar nicht nötig sind. Da bin ich mir nicht sicher.
Auf meinem alten Sysap
a) Reset und dann
b) ganz rechts laaaangggeeeee drücken
Irgendwann blinken die beiden anderen Tasten grün auf und gehen dann wieder aus, ab dem Zeitpunkt ist der Selbst-Test schon aktiv. der legt ein etwas rein dabei ... das erkennt man nicht im Gegenteil. Man glaubt das teil hängt Irgendwo ...
Zumal es das im Script angekündigte WLAN FREEATHOME zumindest nicht sichtbar gibt. Und ich habe vorher ein Downgrade in Richtung 1.3.1 gemacht :-O ---> Das geht ziemlich einfach :LOL:
=> Aktuell bin ich noch nicht all zu weit, erstmal will ich auch "nur" mein Key hinterlegen..
Aber auch dazu muss man sich erstmal umschauen.
read Only File-System und ich muss meine Gehirnzellen zaubern lassen, weil nicht auf den ersten Blick eingängig:
/dev/root on / type ext4 (ro,relatime,data=ordered) -bash-3.2# ls -la /dev/root ls: /dev/root: No such file or directory -bash-3.2#
Ich werde berichten!
Korrektur, der letzte Downgrade war wohl nicht durchgelaufen, oder nicht komplett
-bash-3.2# cat /etc/os-release NAME=PTXdist VERSION="2013.01.0" ID=ptxdist VERSION_ID="2013.01.0" PRETTY_NAME="PTXdist / Busch-Jaeger Elektro GmbH-Busch-free@home" ANSI_COLOR="1;34" PTXDIST_VERSION="2013.01.0" PTXDIST_BUILD_REVISION="4185" PTXDIST_BSP_VENDOR="Busch-Jaeger Elektro GmbH" PTXDIST_BSP_NAME="Busch-free@home" PTXDIST_BSP_VERSION="2.1.2" PTXDIST_PLATFORM_NAME="bje-sysap" PTXDIST_PLATFORM_VERSION="-master" PTXDIST_BUILD_DATE="2017-03-01T11:22:21+0100" -bash-3.2#
Allerdings hatte mir das Webinterface auch was von komischen Fehlern nach dem ersten normalen Booten des letzten Downgrades erzählt. Was ich als normal hinnähm, weil ich schließlich mit einer Config von der 2.6.3 komme 😀
=> Nur den geplanten Werksreset hatte ich um den ich drücke nochmal die Taste verschoben.
Laubi
Bin ich zu Blöd,, ist es zu spät ein:
-bash-3.2# mount -o remount, rw /
wird natürlich fehlerlos gemacht siehe dazu dann auch ein
-bash-3.2# mount
/dev/root on / type ext4 (rw,relatime,data=ordered)
Anmerkung zum Thema Selbsttest:
In der von mir nunmehr verwendeten Version 2.1.2 gibt es offensichtlich nicht das abtesten von:
if [ -f /static/locked ]; then exit 1
nachdem ich mein Key hinterlegt habe und die box neu gestartet habe, konnte ich natürlich per ssh auf das endlich mal (fast) live system (fast = alte OS Version und Config defacto leer, bis aus ssh an und Standort gesetzt)
und siehe da, da gibt es aber bereits das file und ich befürchte das ist quasi immer da:
-bash-3.2# ls -la /static/locked -rw-r--r-- 1 root root 0 Jan 5 2019 /static/locked -bash-3.2#
Woher auch immer das Datum kommt.
LG
Laubi
@abraxa: Zwischenzeitlich kann ich final (für den alten Access-Point) bestätigen, das der Test auf /static/locked bei mir den Übergang in den Self-Mode verhindert hat. In der 2.6.3 komme ich mit der Taste nicht in den Selfmode, nachdem ich in der Firmware die Check ausgebaut habe, komme ich damit in den Self-Mode.
Bezogen auf den neuen Access-Point heist das vermutlich das man da vermutlich auch nach einer älteren Firmware suchen sollte. Ich weis nur nicht ab wann es den gab, Auffällig für mich ist:
- In Version 2.1.2 gibt es den Test auf das file noch nicht
- In Version 2.1.4 gint es den Test
- Ab Version 2.1.4 wurde die Möglichkeit des Downgrades (versucht) zu unterbinden
PS: Version 2.1.3 habe ich leider nicht
=> Ich glaube man hat da man versucht ein ein Loch zu stopfen 😉
Laubi
Danke für deine Tests!
Das ist natürlich ärgerlich, zumal das bei den Updates gelieferte rootfs signiert ist und somit nicht geändert werden kann - sonst hätte man dort dafür sorgen können, daß die Datei nicht vorhanden ist bzw. angelegt wird.
Hast du bei dir den Check ausgebaut? Ich dachte, der wird beim Update der 2.6.3 dann überschrieben?
@abraxa: Nachdem ich einmal mit der alten Version drauf war, hab ich natürlich den gpg public ring getauscht und mir ne angepasste 2.6.3 selbst signiert 😀
Weist Du was die älteste zu bekommende Firmware für den neuen AP ist? Wenn die vor der 2.1.4. liegt bekommen wir die auch auf.
Ich werde das die nächsten Wochen mal zusammenschreiben und auf GitHub stellen.
LG Laubi