6490 rpc Fehler beim Zugriff auf ARM core

heimi666

Neuer User
Mitglied seit
14 Feb 2007
Beiträge
29
Punkte für Reaktionen
3
Punkte
3
Hallo , ich habe eine gefreetzte 6490, basierend auf 7.29 und ein ng-19016M-194580d4a

Ich wollte aufs Filesystem des ARM Core zugreifen und das funktioniert nicht mehr (es ging aber mal-...)

# rpc ls -l /nvram/1/security/
rpc: ERROR 0x91 (errno 2): csock: connection failed

bevor ich nun versuche alte Images wieder einzuspielen, mag das mal jemand ausprobieren ob das ggf an der AVM Firmware / freetz build liegt?
Wär also gut wenn jemand kurz Versionen postet und obs geht oder nicht
Eigentlich müsste der Socket ja von der ARM Seite aus geöffnet werden, und dieser Teil bleibt ja IMO von Freetz unverändert, trotzdem gehts nicht mehr.....
 
Aus welcher Umgebung heraus versuchst Du das denn aufzurufen? Das Kommando braucht i.d.R. eine Variable AVMIPC_REMOTE_IP mit der Adresse des anderen Systems, die üblicherweise auf 169.254.1.2 zeigen sollte. Es kann auch nicht schaden, wenn die Variable AVMIPC_LOCAL_IP korrekt gesetzt ist (das ist dann die 169.254.1.1), denn die ist dann für die Auswahl des passenden Interfaces zur Kommunikation mit dem anderen System verantwortlich.

Wenn das dann aber irgendwo aus/mit einer "gehärteten" Umgebung aufgerufen wird (aus der alles entfernt wurde, was nicht ausdrücklich erhalten bleiben sollte - CGI wäre so ein Kandidat für ein beschränktes Environment), dann wird das üblicherweise auch nicht funktionieren, solange man diese Variablen nicht wieder (selbst) setzt.

Ich würde hier also im ersten Schritt überprüfen, ob die Umgebung stimmt und dann ggf. (bevor man wild mit älteren Images hantiert) auch mal prüfen, WOHIN die Verbindung denn gehen soll (ein strace sollte da z.B. helfen können, wie bei vielen anderen "Problemen" auch). Da das System auf dem ARM-Core (meines Wissens) von Freetz-NG gar nicht modifiziert wird, ist auch (bis zum Beweis des Gegenteils) die Annahme plausibel, daß es NICHT daran scheitert, das das System auf dem ARM-Core etwas Ungewöhnliches macht (solange da keine Fehler auftreten), sondern eher das System auf dem ATOM-Core nach der/einer falschen Gegenstelle sucht.
 
Hi, erstmal danke dafür. Kommando erfolgft aus einer SSH Shell heraus, und das env scheint korrekt
root@fritz:/var/mod/root# env | grep IPC
CONFIG_AVMIPC_REMOTE_IP=169.254.1.2
AVMIPC_LOCAL_IP=169.254.1.1
CONFIG_AVMIPC_LOCAL_IP=169.254.1.1
AVMIPC_REMOTE_IP=169.254.1.2
root@fritz:/var/mod/root# rpc ls
rpc: ERROR 0x91 (errno 2): csock: connection failed
strace ist leider auf der Box nicht vorhanden, müsste ich also erst compilieren.
Nur meine Frage: Hast Du das mal probiert -- Ist ja nichts schlimmes.

BTW der Mechanismus sollte auf allen Pumu6 Boxen, die den Atom unr Arm Core haben zum tragen kommen also:
6430/6460/6490/6590
 
Ich verwende grundsätzlich weder Freetz-NG, noch Freetz oder meinen Fork des Projekts (zumindest nicht den Teil, der hinter make/mod steckt) und modifiziere meine Firmware "von Hand" bzw. selbst.

Also lautet die Antwort eigentlich: Nein, mit Freetz-NG habe ich das nicht noch nie probiert.

Meine 6490 zum Testen hat für beide Systeme passende USB-Adapter verbaut und wenn man die Initialisierung der Kernelparameter (mute=0) passend patcht (über den Bootloader schaffe ich es auch nicht, den mute-Parameter zu übergeben - bei Puma6 - der wird vom Loader "ausgefiltert"), kriegt man da auch seine Shell.

Ich dachte, ich hätte ein passendes strace bei meinen vorkompilierten Binaries dabei (https://github.com/PeterPawn/yf_bin/tree/master/target), aber das ist wohl nicht der Fall.

Aber die Kernel-Version beim Puma6 hat sich seit Jahren nicht geändert und falls in Freetz-NG die Möglichkeit inzwischen fehlen sollte (da bin ich seit drei Monaten auch "lesend" raus), dann sollte es mit einem anderen Fork immer noch funktionieren, sich das Binary statisch gelinkt zu erstellen und es einfach auf die Box zu kopieren für die Ausführung.

Vielleicht findest Du auch bei @fesc das passende Binary in seinem Bitbucket-Repo.



Ist Dir eigentlich schon mal aufgefallen, daß bei AVM selbst auch nur noch das rpc-Kommando mit der Option -s (also über Sockets) benutzt wird (im Rahmen der Tests bei der Produktion -> ptestd) und ansonsten (seit einiger Zeit) nur noch die Steuerung des pumaglued auf dem ARM-Core über das aicmd-Kommando von der ATOM-Seite erfolgt? Insofern habe ich mich also von Deinem "Beispiel" mit der Verwendung von rpc "hinreißen" lassen und bin auf Dein "ging schon mal" hereingefallen, denn das dürfte bei deutlich älteren FRITZ!OS-Versionen gewesen sein. Oder siehst Du das anders? Die angesprochenen Variablen werden dann dennoch genutzt - halt von anderen (AVM-)Programmen (iirc erfolgt die Kommunikation durch jeweils eine Instanz von avmicpd auf jedem System - aber "ohne Gewähr", daß ich mich richtig erinnere).

Versuch's doch mal mit einem aicmd pumaglued (und lies Dir die verfügbaren Funktionen durch - das aicmd dürfte für AVM ICP command o.ä. stehen), wahlweise auch mit einem rpc -s -- aicmd pumaglued, falls mit einem aicmd auf dem ATOM-Core keine "Beschreibung" vom ARM-Core geliefert wird. Ich habe gerade meine Test-Box nicht in Reichweite und müßte sie erst wieder aufbauen ... das mußt Du also alleine herausfinden (zumindest ohne Test von meiner Seite aus).

Aber aus der Erinnerung heraus funktioniert es (nur inzwischen halt deutlich anders, ich weiß ja nicht, wann es bei Dir "mal ging") und für den Aufruf von aicmd pumaglued shell start gibt es sogar einen Shell-Einzeiler (als armconsole in /bin - das war wohl jemandem bei AVM auch zu lang zum Eingeben). Nur wirst Du damit vermutlich auch keine Kommandos als "batch" auf dem ARM ausführen können, weil das eben immer eine interaktive Shell startet, deren Standard-Handles halt über RPC laufen (denn AVM IPC ist ja auch nichts anderes) - für einzelne Kommandos, die Du direkt beim Aufruf übergeben kannst, mußt Du dann halt über den Socket gehen (also wie oben gezeigt aufrufen, wobei ich nicht sicher weiß, ob die entfernten STDOUT und STDERR automatisch auf denselben Handle gelegt werden - kannst Du alles selbst probieren).

Auch die "Beispiele" von AVM in einer entpackten Firmware (die findest Du auch in Deiner Build-Struktur) kannst Du ja problemlos selbst suchen ... alles immer noch, ohne irgendwelche alten Images zu installieren.
 
Hallo Peter !

Vielen Dank für die vielen Hinweise und ein "rcp -s" tut's. Ursache ist also nicht, das der Socket auf meiner Box nicht mehr offen ist, sondern vermutlich das rpc binary. Könnte man in den sorcen oder per strace rausfinden, aber da das ja auch offiziell so verwendet wird scheint alles ok und ich spar mir die Mühe.
Ich habe die Box seit 08'20 und damals die Kommandos so in ein script übertragen was die Zertifikate extrahiert hat...

armconsole geht auch.
 
Kostenlos!

Statistik des Forums

Themen
248,864
Beiträge
2,303,172
Mitglieder
378,518
Neuestes Mitglied
koenig79