telnet/ssh Zugang auf FB 7390/7590 über UART Konsole einrichten

@noomad:
Angst vor der eigenen Courage gekriegt?

Du warst doch nun schon bei Freetz (und ich hatte auch nichts von einer "Spezialversion" für die 7390 geschrieben - die kenne ich nicht mal, muß irgendein Fork mittendrin sein - sondern vom Trunk, also der aktuellen Entwicklerversion) und wenn Du das Ganze irgendwie persistent auf die Box bringen willst, brauchst Du bei aktueller Firmware ohnehin die Tools, um das Dateisystem zu entpacken, zu modifizieren und neu zu packen. Das alles erreichst Du auch mit der (erst drei Jahre alten) Version von "dropbear" aber nicht wirklich ... damals ging man noch davon aus, daß man so etwas aus der "debug.cfg" heraus starten könne (und das war damals ja auch noch so).
 
@PeterPawn Nein nein, ich bleibe ja am Ball. Aber für heute brauchte ich erstmal Erfolgserlebnisse. Habe festgestellt dass die Lösung nicht reboot tauglich ist. Aber es funktioniert erstmal. Morgen ist auch noch ein Tag.
 
Aber ich möchte gern über WLAN auf die Kisten zugreifen. Kann mir jemand sagen was ich für die dauerhafte Aktivierung von telnetd oder besser sshd machen muss wenn ich über einen Konsolenzugang verfüge?
Alter Hardwareentwickler-Trick, der jedes FW-Update überlebt: USB-Serial-Wandler an einen Raspi hängen. Dann kannst du per SSH auf den Raspi zugreifen und bspsw. über screen auf die FritzBox zugreifen. Hat den großen Vorteil, dass du auch den Boot-Prozess etc. mitkriegst.

Günstige USB-Serial-Wandler (z.B. mit Fake-FT232) kriegt man für < 2 Euro auf Ebay.
 
@foolproof Ich habe ja bereits (bis vor wenigen Minuten) über einen USB/TTL Adapter via UART Schnittstelle auf die Box zugegriffen. Andre hatte in seinem Post weiter oben eine dauerhafte Hardwarelösung aufgezeigt. Ich wollte aber unbedingt via WLAN Zugriff auf diese und weitere Boxen haben. An meiner alten 7390 Box habe ich ja nur geübt. Demnächst ist dann die 7590 dran.

Es funktioniert jetzt alles wie es soll. Ich habe freetz-devel (trunk) mit dropbear erstellt und das image auf die Fritzbox gepackt. Es war sehr einfach, wenn man weiß wie es geht und das Pferd nicht von hinten aufzäumt (keine separate toolchain nötig um dann separat und umständlich dropbear zu erstellen). Die Box ist jetzt bequem über Port 81 erreichbar. Dort schalte ich dropbear ein, alles wunderbar.
Mit dem avm_firmware_public_key9 habe ich mich anfangs schwer getan. Ich habe es dann so gelöst indem ich auf dem NAS Speicher der 7390 ein Verzeichnis "etc" erstellt und alles was sich in /etc befand dort reinkopiert habe. Zusätzlich habe ich die avm_firmware_public_key9 Datei (die bei der freetz Konfiguration erstellt und als $home/.freetz.image_signing.asc abgelegt wird) in dieses neu erstellte etc Verzeichnis unterhalb von /var/media/ftp kopiert und mittels "mount -o bind /var/media/ftp/etc /etc" "temporär drüber gemountet".

Auch wenn diese Lösung mittels mount Befehl gut funktionierte, finde ich sie nicht sehr elegant.

Seit dem flashen müllt mir jetzt eine Fehlermeldung die serielle Konsole zu. Die Meldung ist:

Jul 13 18:48:08 ctlmgr[968]: WLANLIB: wcsi_socket_connect:501: Establishing RPC connection failed with TIMEOUT
/sbin/start_plugin.sh[5732]: Plugins awaited:
/sbin/start_plugin.sh[5732]: External get & install
script url="http://boxplugin.avm.de./cgi-bin/bo...90&revision=43740&version=84.06.83&subversion"
Error 6
/sbin/start_plugin.sh[5732]: Could not resolve Plugin-URL ''
Jul 13 18:48:38 ctlmgr[968]: WLANLIB: wcsi_socket_connect:501: Establishing RPC connection failed with TIMEOUT
 
Bei der 7390 steckt das WLAN (jedenfalls wichtige Teile) in einem Plugin und das kann er offenbar in Deinem Fall nicht von AVM laden ... das kann auch ganz einfach ein DNS-Problem sein, wenn die 7390 irgendwie als Client läuft und falsch eingestellt ist.

Suche mal mit "7390 WLAN plugin" nach möglichen Lösungen, wie Du zu dem WLAN-Plugin kommst (das wird dann im NAS-Flash abgelegt).

Die "avm_firmware_public_key9" sorgt eigentlich nur dafür, daß Du auch selbst Firmware-Images so signieren kannst, daß die von der AVM-Firmware akzeptiert werden. Die kann man auch gleich direkt in "/etc" legen, bevor man das Image wieder zusammenpacken läßt ... das mit dem bind-Mount ist eigentlich nur ein Notbehelf für "das erste Mal".
 
So, ich habe ein wenig recherchiert. Das image habe ich neu erstellt. Die einzige Änderung die ich vorgenommen habe betrifft das TR069 removal Paket. Das hatte ich beim letzten mal in dem Glauben etwas gutes für die Sicherheit meiner Box zu tun aktiviert. Dh. es sollte entfernt werden und wurde auch entfernt. Da gibt es aber seit langer Zeit schon Probleme mit dem nachladen von plugins. Also removal package abgewählt, neu erstellt und auf die 7390 per Firmware update aufgespielt. Die Box startete erst mit wlan deaktiviert. Das wlan ließ sich aber mit dem Häkchen unter WLAN/Funknetzwerk ganz normal aktivieren.
 
Jetzt ist auch die 7590 freetz geimpft. Der Eingriff ging diesmal deutlich schneller. Pins einlöten für den UART Zugriff, danach die Konsole starten, in /var/media/ftp den Unterordner etc anlegen, wieder alles von /etc nach /var/media/ftp/etc kopieren, die Datei $home/.freetz.image_signing.asc auf die Box hochladen in das /var/media/ftp/etc Verzeichnis und umbenennen in avm_firmware_public_key9 und zuletzt noch das Verzeichnis einbinden mit "mount -o bind /var/media/ftp/etc /etc". Hat insgesamt vielleicht 15 Minuten gedauert. Das freetz Paket habe ich vorher erstellt. Ich habe als Vorlage die gleiche .config genommen wie beim letzten Mal für die 7390. Das einzige was ich geändert habe war das Ziel-Gerät (7590). Update via Fritzbox Weboberfläche, Neustart und alles funktionierte.
 
  • Like
Reaktionen: koyaanisqatsi
Nett, oder besser: Smart ;)
 
Irgendwo fehlt mir vermutlich eine Information ... warum hast Du eigentlich nicht gleich das Freetz-Image über den Bootloader installiert?

Selbst wenn Du parallel unbedingt die serielle Schnittstelle noch bestücken wolltest, erscheint mir das Vorgehen (zumindest der Teil, den ich verstanden habe) unnötig kompliziert, wenn es nur um die Installation eines Freetz-Images ging.

Wenn man (so wie Du) das Freetz-Image bereits vorher erstellt hat (ob mit "Freetz-Mod" oder nur als leicht ergänzte AVM-Version mittels "fwmod"), dann braucht es doch nur noch eine FTP-Session zum Bootloader und ca. 2 Minuten für das "Flashen" der neuen Firmware.

Ich will nur deshalb noch einmal auf diese Feststellung so viel Wert legen, damit niemand beim Nachlesen hier den Eindruck gewinnt, er müsse dazu seine FRITZ!Box (erst recht seine neue 7590, die noch sehr lange Garantie haben wird) irgendwie öffnen (oder gar auf der Platine herumlöten) - es gibt ja auch genug Leute, die sich das gar nicht zutrauen. Die müssen sich dadurch aber nicht von der Änderung der AVM-Firmware (egal in welchem Umfang) abhalten lassen ... das geht immer noch alles ohne zu wissen, an welchem Ende der Schraubendreher heiß wird oder wie man ein Gehäuse zerstörungsfrei öffnet.
 
Die Antwort ist trivial. Wenn man als Experte einen genauen Überblick über alle Möglichkeiten und die Kenntnis aller erforderlichen Schritte der verschiedenen Varianten hat, kann man gut abschätzen welcher Weg der einfachste ist.
Wenn man sich wie in meinem Fall (ich habe mich bereits als Anfänger geoutet) erst mit den verschiedenen Varianten vertraut machen muss und seinen Skill Level (Skill ist wenn aus Glück gehabt Gewohnheit wird) mit einer funktionierenden Variante angereichert hat, greift man beim zweiten Mal erstmal auf die Erfahrung zurück bevor man was neues probiert. Jetzt suche ich seit mehr als zwei Stunden Infos zum Thema EVA-FTP zusammen und bin noch nicht soweit, dass ich das Experiment mit der 7590 via FTP beginnen kann. Mit meiner Variante war ich da in Bezug auf den Faktor Zeit effektiver. Die verlorene Gewährleistung ist eine andere Sache. Es mag Menschen geben die dem Thema Gewährleistung mehr Beachtung schenken.
 
Zuletzt bearbeitet:
Besser nicht, so wie in #32 käme man vermutlich falsch an. Bei so einer Suche findet man dann so ziemlich alles, vom Flashen über MTD1 bei den alten NOR-Modellen bis zu den Puma6-Geräten.

Besser wäre vermutlich (als Einstieg) das hier: https://www.ip-phone-forum.de/threads/freetz-trunk-erstellt-image-und-image-in-memory.290053/

und irgendwo anders habe ich das (aus der Erinnerung heraus behauptet) auch noch beschrieben. Das, was ich hier meine, war der Auslöser für das Einstellen von "image2ram" (braucht man nicht, wenn man das "in-memory" hat) ins Repository und neben der damit möglichen zeitlichen Orientierung ist es vermutlich auch noch der erste Thread im IPPF, in dem ich diesen Namen das erste Mal erwähnt habe.
 
  • Like
Reaktionen: noomad
@stoney0815 Ist dir bewusst wofür das 0815 in deinem Nick steht?
@PeterPawn vielen Dank für den Link. Das war der richtige Hinweis.
 
@PeterPawn Hallo, ich muss das Thema nochmal aufgreifen. Nach einem Update der Fritzbox auf 6.90 war mein freetz erstmal weg. Jetzt wollte ich das mal via bootloader probieren. Ich habe also die aktuelle freetz-trunk Version mit svn checkout http://svn.freetz.org/trunk freetz-trunk geholt, das Image erstellt und dann eva_to_memory von deiner github Seite geladen. Adam2 konnte ich nach weniger als 5 Versuchen zum ftp login bewegen. Nachdem ich mich via ftp eingeloggt habe wollte ich via eva_to_memory script das Image aufspielen. Das script baut keine Verbindung auf. eva_to_memory <filename.image.in-memory> regagiert nach dem Aufruf nicht. Es scheint zu hängen. Netstat -nao zeigt keine Verbindung zur Fritzbox. Woran kann es liegen? Ich bekomme keinen Fehler angezeigt.
 
Zuletzt bearbeitet:
Schau einfach mal mit "bash -x eva_to_memory ..." nach, wo es genau hängt ... das kann so vieles sein, daß es nur das Stochern im Nebel wäre, wenn ich jetzt einfach rate.

Das Skript sollte halt funktionieren ... das macht es jedenfalls bei anderen (und nicht nur bei mir selbst, so daß (unlösbare) Abhängigkeiten von meinem System einigermaßen unwahrscheinlich sind), so daß ich eher auf ein Problem auf Deinem System oder beim Aufruf tippen würde.

Also bitte wie oben angegeben aufrufen und das Protokoll der Shell-Session hier einstellen ... dann finden wir das Problem sicherlich.
 
bash -x ./eva_to_memory 7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory gibt mir folgenden output:
Code:
[<user@host> ~/freetz-trunk/images]$ bash -x ./eva_to_memory 7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory
+ printf '\n'
+ read -u 0
+ filename=7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory
+ box_ip=192.168.178.1
+ limit_memory=1
+ box_port=21
+ box_user=adam2
+ box_pass=adam2
+ passive_ftp=P@SW
+ '[' 0 -eq 0 ']'
+ TMP=/tmp
++ date +%s
+ tmpdir=/tmp/tmp_1516221793_996
+ writefifo=/tmp/tmp_1516221793_996/write
+ readfifo=/tmp/tmp_1516221793_996/read
+ storefifo=/tmp/tmp_1516221793_996/store
+ outstream=7
+ instream=8
+ upstream=9
+ logstream=3
+ logfile=./eva_to_memory.log
+ envfile=/tmp/tmp_1516221793_996/env
+ startaddress=0x80000000
+ '[' x7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory == x ']'
++ stat -c %s 7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory
+ filesize=23736576
+ '[' 0 -ne 0 ']'
+ mkfifo
+ '[' 1 -eq 127 ']'
+ nc
^C
+ '[' 1 -eq 127 ']'
+ mkdir -p /tmp/tmp_1516221793_996
+ mkfifo /tmp/tmp_1516221793_996/write
+ rc=0
+ '[' 0 -ne 0 ']'
+ mkfifo /tmp/tmp_1516221793_996/read
+ rc=0
+ '[' 0 -ne 0 ']'
+ mkfifo /tmp/tmp_1516221793_996/store
+ rc=0
+ '[' 0 -ne 0 ']'
+ eval 'exec 7<>/tmp/tmp_1516221793_996/write'
++ exec
+ rc=0
+ '[' 0 -ne 0 ']'
+ eval 'exec 8<>/tmp/tmp_1516221793_996/read'
++ exec
+ rc=0
+ '[' 0 -ne 0 ']'
+ eval 'exec 3<>./eva_to_memory.log'
++ exec
+ rc=0
+ '[' 0 -ne 0 ']'
+ control_connection=1018
+ data_connection=
+ nc 192.168.178.1 21
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line

[user@host ~/freetz-trunk/images]$

Es hängt bei "nc". Nach einigen Minuten habe ich mit 2x Strg+C abgebrochen.

System ist bbqlinux, hier der inxi -F output:
Code:
i
Resuming in non X mode: xdpyinfo not found. For package install advice run: inxi --recommends
System:    Host: ROG Kernel: 4.14.13-1-ARCH x86_64 bits: 64 Desktop: Cinnamon 3.6.7  Distro: Arch Linux
Machine:   Device: laptop System: ASUSTeK product: G752VS v: 1.0 serial: N/A
           Mobo: ASUSTeK model: G752VS v: 1.0 serial: N/A
           UEFI: American Megatrends v: G752VS.306 date: 10/19/2016
Battery    BAT0: charge: 67.2 Wh 100.1% condition: 67.2/90.0 Wh (75%)
CPU:       Quad core Intel Core i7-6700HQ (-MT-MCP-) cache: 6144 KB
           clock speeds: max: 3500 MHz 1: 900 MHz 2: 900 MHz 3: 900 MHz 4: 900 MHz 5: 900 MHz 6: 900 MHz
           7: 900 MHz 8: 900 MHz
Graphics:  Card: NVIDIA GP104M [GeForce GTX 1070 Mobile]
           Display Server: N/A drivers: nvidia (unloaded: modesetting,fbdev,vesa,nouveau) tty size: 154x41
Audio:     Card Intel Sunrise Point-H HD Audio driver: snd_hda_intel Sound: ALSA v: k4.14.13-1-ARCH
Network:   Card-1: Intel Wireless 8260 driver: iwlwifi
           IF: wlp3s0 state: up mac: xxx
           Card-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller driver: r8169
           IF: enp4s0 state: down mac: xxx
Drives:    HDD Total Size: 2512.5GB (65.3% used)
           ID-1: /dev/nvme0n1 model: Samsung_SSD_950_PRO_512GB size: 512.1GB
           ID-2: /dev/nvme1n1 model: Samsung_SSD_960_EVO_1TB size: 1000.2GB
           ID-3: /dev/sda model: ST2000LM007 size: 2000.4GB
Partition: ID-1: / size: 874G used: 409G (50%) fs: ext4 dev: /dev/nvme1n1p2
           ID-2: swap-1 size: 46.34GB used: 0.00GB (0%) fs: swap dev: /dev/nvme1n1p3
Sensors:   System Temperatures: cpu: 56.0C mobo: N/A
           Fan Speeds (in rpm): cpu: 1900
Info:      Processes: 229 Uptime: 7:06 Memory: 4366.1/40168.8MB Init: systemd Client: Shell (bash) inxi: 2.3.55
Beiträge zusammengeschoben und Shell Ausgabe in CODE Tag gesetzt - HabNeFritzbox
 
Zuletzt bearbeitet von einem Moderator:
Hmm ... was passiert denn, wenn Du "nc 192.168.178.1 21" von Hand eingibst?

Normal wären Antworten von der Box ... wobei das Skript ja auch ein paar Informationen in die "eva_to_memory.log" schreibt.

Wenn das "nc" normal arbeitet, ist es vielleicht etwas mit den FIFOs ... denn das sieht mir irgendwie danach aus, als wenn das "mkfifo" zwar existiert (sonst sollte der Error-Code 127 sein, was abgefangen wird), aber ein Problem beim Erstellen der Pipe hat, denn ein Error-Code von 1 gehört da irgendwie auch nicht hin (nach der "filesize=..."-Zeile) - jedenfalls nicht auf den ersten Blick.

EDIT: Nein, das mit dem "mkfifo" war ein Irrtum, das da oben ist nur der Versuch, das Fehlen des "mkfifo" zu detektieren und das ist aber da - ebenso das "nc"-Kommando.
 
Das war ein guter Hinweis. Ich hatte die (alte) Standardverson von gnu-netcat
[user@host ~/freetz-trunk]$ nc -V
netcat (The GNU Netcat) 0.7.1
Copyright (C) 2002 - 2003 Giovanni Giacobbi

Habe dann die openbsd-netcat Version installiert
[<user>@<host> /home/<user>/freetz-trunk/images]# pacman -Ss openbsd-netcat
community/openbsd-netcat 1.178_3-1 [Installiert]
TCP/IP swiss army knife. OpenBSD variant.

Damit hat es dann sofort funktioniert.

Code:
[<user>@<host> ~/freetz-trunk/images]$ bash -x ./eva_to_memory 7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory
+ printf '\n'
+ read -u 0
+ filename=7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory
+ box_ip=192.168.178.1
+ limit_memory=1
+ box_port=21
+ box_user=adam2
+ box_pass=adam2
+ passive_ftp=P@SW
+ '[' 0 -eq 0 ']'
+ TMP=/tmp
++ date +%s
+ tmpdir=/tmp/tmp_1516285409_11397
+ writefifo=/tmp/tmp_1516285409_11397/write
+ readfifo=/tmp/tmp_1516285409_11397/read
+ storefifo=/tmp/tmp_1516285409_11397/store
+ outstream=7
+ instream=8
+ upstream=9
+ logstream=3
+ logfile=./eva_to_memory.log
+ envfile=/tmp/tmp_1516285409_11397/env
+ startaddress=0x80000000
+ '[' x7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory == x ']'
++ stat -c %s 7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory
+ filesize=23736576
+ '[' 0 -ne 0 ']'
+ mkfifo
+ '[' 1 -eq 127 ']'
+ nc
+ '[' 1 -eq 127 ']'
+ mkdir -p /tmp/tmp_1516285409_11397
+ mkfifo /tmp/tmp_1516285409_11397/write
+ rc=0
+ '[' 0 -ne 0 ']'
+ mkfifo /tmp/tmp_1516285409_11397/read
+ rc=0
+ '[' 0 -ne 0 ']'
+ mkfifo /tmp/tmp_1516285409_11397/store
+ rc=0
+ '[' 0 -ne 0 ']'
+ eval 'exec 7<>/tmp/tmp_1516285409_11397/write'
++ exec
+ rc=0
+ '[' 0 -ne 0 ']'
+ eval 'exec 8<>/tmp/tmp_1516285409_11397/read'
++ exec
+ rc=0
+ '[' 0 -ne 0 ']'
+ eval 'exec 3<>./eva_to_memory.log'
++ exec
+ rc=0
+ '[' 0 -ne 0 ']'
+ control_connection=11409
+ data_connection=
+ nc 192.168.178.1 21
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '220 ADAM2 FTP Server ready
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '220 ADAM2 FTP Server ready
++ return 0
' line='220 ADAM2 FTP Server ready
+ ec=220
+ '[' x220 == x220 ']'
+ login_to_box 8 7 3
+ local instream=8 outstream=7 log=3 lines=0
+ write_ftp_command 'USER adam2' 7 3
+ local outstream=7 'cmd=USER adam2' log=3
+ '[' '!' -z 3 ']'
+ echo 'USER adam2'
+ echo 'USER adam2'
+ '[' 0 -lt 10 ']'
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '331 Password required for adam2
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '331 Password required for adam2
++ return 0
' line='331 Password required for adam2
+ ec=331
+ '[' x331 == x331 ']'
+ write_ftp_command 'PASS adam2' 7 3
+ local outstream=7 'cmd=PASS adam2' log=3
+ '[' '!' -z 3 ']'
+ echo 'PASS adam2'
+ echo 'PASS adam2'
+ lines=0
+ '[' 0 -lt 10 ']'
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '230 User adam2 successfully logged in
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '230 User adam2 successfully logged in
++ return 0
' line='230 User adam2 successfully logged in
+ ec=230
+ '[' x230 == x331 ']'
+ '[' x230 == x230 ']'
+ return 0
+ '[' 0 -eq 0 ']'
+ write_ftp_command SYST 7 3
+ local outstream=7 cmd=SYST log=3
+ '[' '!' -z 3 ']'
+ echo SYST
+ echo SYST
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '215 AVM EVA Version 1.3258 0x0 0x46409
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '215 AVM EVA Version 1.3258 0x0 0x46409
++ return 0
' line='215 AVM EVA Version 1.3258 0x0 0x46409
+ ec=215
+ '[' x215 == x215 ']'
'+ echo '215 AVM EVA Version 1.3258 0x0 0x46409
++ sed -n -e 's/.*\(AVM EVA\).*/\1/p'
+ syst='AVM EVA'
+ '[' 7 -ne 0 ']'
' echo 'Found AVM bootloader: AVM EVA Version 1.3258 0x0 0x46409
Found AVM bootloader: AVM EVA Version 1.3258 0x0 0x46409
++ get_environment 8 7 3
++ local instream=8 outstream=7 log=3 lines=0
++ write_ftp_command 'TYPE I' 7 3
++ local outstream=7 'cmd=TYPE I' log=3
++ '[' '!' -z 3 ']'
++ echo 'TYPE I'
++ echo 'TYPE I'
+++ read_ftp_response 8 3
+++ local 'line=   -' rc=0 instream=8 log=3
+++ read -u 8 -r line
+++ '[' '!' -z 3 ']'
'++ echo '200 Type set to BINARY
+++ '[' ' ' '!=' - ']'
+++ break
+++ rc=0
'++ echo '200 Type set to BINARY
+++ return 0
'+ line='200 Type set to BINARY
++ ec=200
++ '[' x200 '!=' x200 ']'
++ write_ftp_command 'MEDIA SDRAM' 7 3
++ local outstream=7 'cmd=MEDIA SDRAM' log=3
++ '[' '!' -z 3 ']'
++ echo 'MEDIA SDRAM'
++ echo 'MEDIA SDRAM'
+++ read_ftp_response 8 3
+++ local 'line=   -' rc=0 instream=8 log=3
+++ read -u 8 -r line
+++ '[' '!' -z 3 ']'
'++ echo '200 Media set to MEDIA_SDRAM
+++ '[' ' ' '!=' - ']'
+++ break
+++ rc=0
'++ echo '200 Media set to MEDIA_SDRAM
+++ return 0
'+ line='200 Media set to MEDIA_SDRAM
++ ec=200
++ '[' x200 '!=' x200 ']'
++ write_ftp_command P@SW 7 3
++ local outstream=7 cmd=P@SW log=3
++ '[' '!' -z 3 ']'
++ echo P@SW
++ echo P@SW
+++ read_ftp_response 8 3
+++ local 'line=   -' rc=0 instream=8 log=3
+++ read -u 8 -r line
+++ '[' '!' -z 3 ']'
'++ echo '227 Entering Passive Mode (192,168,178,1,12,3)
+++ '[' ' ' '!=' - ']'
+++ break
+++ rc=0
'++ echo '227 Entering Passive Mode (192,168,178,1,12,3)
+++ return 0
'+ line='227 Entering Passive Mode (192,168,178,1,12,3)
++ ec=227
++ '[' x227 == x227 ']'
'++ echo 227 Entering Passive Mode '(192,168,178,1,12,3)
+++ sed -n -e 's/.*(\([0-9]*\),\([0-9]*\),\([0-9]*\),\([0-9]*\),\([0-9]*\),\([0-9]*\)).*/data_ip=\1.\2.\3.\4 data_port=\$(( \5 * 256 + \6 ))/p'
++ data_conn='data_ip=192.168.178.1 data_port=$(( 12 * 256 + 3 ))'
++ '[' 51 -eq 0 ']'
++ eval 'data_ip=192.168.178.1 data_port=$(( 12 * 256 + 3 ))'
+++ data_ip=192.168.178.1
+++ data_port=3075
++ data_connection=11424
++ sleep 1
++ nc -d -w 60 192.168.178.1 3075
++ write_ftp_command 'RETR env' 7 3
++ local outstream=7 'cmd=RETR env' log=3
++ '[' '!' -z 3 ']'
++ echo 'RETR env'
++ echo 'RETR env'
+++ read_ftp_response 8 3
+++ local 'line=   -' rc=0 instream=8 log=3
+++ read -u 8 -r line
+++ '[' '!' -z 3 ']'
'++ echo '150 Opening BINARY data connection
+++ '[' ' ' '!=' - ']'
+++ break
+++ rc=0
'++ echo '150 Opening BINARY data connection
+++ return 0
'+ line='150 Opening BINARY data connection
++ ec=150
++ '[' x150 == x150 ']'
+++ read_ftp_response 8 3
+++ local 'line=   -' rc=0 instream=8 log=3
+++ read -u 8 -r line
+++ '[' '!' -z 3 ']'
'++ echo '226 Transfer complete
+++ '[' ' ' '!=' - ']'
+++ break
+++ rc=0
'++ echo '226 Transfer complete
+++ return 0
'+ line='226 Transfer complete
++ ec=226
++ '[' x226 == x226 ']'
++ '[' -d /proc/11424 ']'
++ wait 11424
++ kill 11424
++ data_connection=
++ echo /tmp/tmp_1516285409_11397/env
++ return 0
+ environment=/tmp/tmp_1516285409_11397/env
+ '[' 0 -eq 0 ']'
++ sed -n -e 's/^HWRevision *\(.*\)\r$/\1/p' /tmp/tmp_1516285409_11397/env
+ hwrev=226
+ echo 'Found hardware revision: 226'
Found hardware revision: 226
++ sed -n -e 's/^memsize *\(.*\)\r$/\1/p' /tmp/tmp_1516285409_11397/env
+ memsize=0x08000000
++ printf '(%u MB)' 128
+ echo 'Memory size is 0x08000000 (128 MB)'
Memory size is 0x08000000 (128 MB)
+ '[' 1 = 1 ']'
+ memsize=134217728
+ echo 'Memory size limited to 128 MB'
Memory size limited to 128 MB
++ printf 0x%06x 23736576
++ printf '(%u MB)' 22
+ echo 'Image size is 0x16a3100 (22 MB)'
Image size is 0x16a3100 (22 MB)
++ printf 0x%08x 110481152
+ setmemsize=0x0695cf00
+ echo 'Setting temporary memory size to: 0x0695cf00'
Setting temporary memory size to: 0x0695cf00
++ printf 0x%08x 2257964800
+ imagestartaddr=0x8695cf00
++ printf 0x%08x 2281701376
+ imageendaddr=0x88000000
+ echo 'Setting temporary kernel args to: mtdram1=0x8695cf00,0x88000000'
Setting temporary kernel args to: mtdram1=0x8695cf00,0x88000000
+ upload_image 8 7 3 7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory 0x0695cf00 0x8695cf00 0x88000000
+ local instream=8 outstream=7 log=3 file=7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory memsize=0x0695cf00 startaddr=0x8695cf00 endaddr=0x88000000
+ eval 'exec 9<>/tmp/tmp_1516285409_11397/store'
++ exec
+ '[' 0 -ne 0 ']'
+ write_ftp_command 'SETENV memsize 0x0695cf00' 7 3
+ local outstream=7 'cmd=SETENV memsize 0x0695cf00' log=3
+ '[' '!' -z 3 ']'
+ echo 'SETENV memsize 0x0695cf00'
+ echo 'SETENV memsize 0x0695cf00'
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '200 SETENV command successful
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '200 SETENV command successful
++ return 0
' line='200 SETENV command successful
+ ec=200
+ '[' x200 '!=' x200 ']'
+ write_ftp_command 'SETENV kernel_args_tmp mtdram1=0x8695cf00,0x88000000' 7 3
+ local outstream=7 'cmd=SETENV kernel_args_tmp mtdram1=0x8695cf00,0x88000000' log=3
+ '[' '!' -z 3 ']'
+ echo 'SETENV kernel_args_tmp mtdram1=0x8695cf00,0x88000000'
+ echo 'SETENV kernel_args_tmp mtdram1=0x8695cf00,0x88000000'
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '200 SETENV command successful
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '200 SETENV command successful
++ return 0
' line='200 SETENV command successful
+ ec=200
+ '[' x200 '!=' x200 ']'
+ write_ftp_command 'TYPE I' 7 3
+ local outstream=7 'cmd=TYPE I' log=3
+ '[' '!' -z 3 ']'
+ echo 'TYPE I'
+ echo 'TYPE I'
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '200 Type set to BINARY
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '200 Type set to BINARY
++ return 0
' line='200 Type set to BINARY
+ ec=200
+ '[' x200 '!=' x200 ']'
+ write_ftp_command 'MEDIA SDRAM' 7 3
+ local outstream=7 'cmd=MEDIA SDRAM' log=3
+ '[' '!' -z 3 ']'
+ echo 'MEDIA SDRAM'
+ echo 'MEDIA SDRAM'
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '200 Media set to MEDIA_SDRAM
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '200 Media set to MEDIA_SDRAM
++ return 0
' line='200 Media set to MEDIA_SDRAM
+ ec=200
+ '[' x200 '!=' x200 ']'
+ write_ftp_command P@SW 7 3
+ local outstream=7 cmd=P@SW log=3
+ '[' '!' -z 3 ']'
+ echo P@SW
+ echo P@SW
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '227 Entering Passive Mode (192,168,178,1,12,9)
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '227 Entering Passive Mode (192,168,178,1,12,9)
++ return 0
' line='227 Entering Passive Mode (192,168,178,1,12,9)
+ ec=227
+ '[' x227 == x227 ']'
'+ echo 227 Entering Passive Mode '(192,168,178,1,12,9)
++ sed -n -e 's/.*(\([0-9]*\),\([0-9]*\),\([0-9]*\),\([0-9]*\),\([0-9]*\),\([0-9]*\)).*/data_ip=\1.\2.\3.\4 data_port=\$(( \5 * 256 + \6 ))/p'
+ data_conn='data_ip=192.168.178.1 data_port=$(( 12 * 256 + 9 ))'
+ '[' 51 -eq 0 ']'
+ eval 'data_ip=192.168.178.1 data_port=$(( 12 * 256 + 9 ))'
++ data_ip=192.168.178.1
++ data_port=3081
+ data_connection=11445
+ sleep 1
+ nc -w 3 192.168.178.1 3081
+ write_ftp_command 'STOR 0x8695cf00 0x88000000' 7 3
+ local outstream=7 'cmd=STOR 0x8695cf00 0x88000000' log=3
+ '[' '!' -z 3 ']'
+ echo 'STOR 0x8695cf00 0x88000000'
+ echo 'STOR 0x8695cf00 0x88000000'
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '150 Opening BINARY data connection
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '150 Opening BINARY data connection
++ return 0
' line='150 Opening BINARY data connection
+ ec=150
+ '[' x150 == x150 ']'
+ cat 7590_06.92-freetz-devel-14583.de_20180117-183813.image.in-memory
++ read_ftp_response 8 3
++ local 'line=   -' rc=0 instream=8 log=3
++ read -u 8 -r line
++ '[' '!' -z 3 ']'
'+ echo '226 Transfer complete
++ '[' ' ' '!=' - ']'
++ break
++ rc=0
'+ echo '226 Transfer complete
++ return 0
' line='226 Transfer complete
+ ec=226
+ '[' x226 == x226 ']'
+ '[' -d /proc/11445 ']'
+ data_connection=
+ eval 'exec 9>&-'
++ exec
+ rm /tmp/tmp_1516285409_11397/store
+ return 0
+ '[' 0 -eq 0 ']'
+ echo 'Image uploaded to device.'
Image uploaded to device.
+ '[' 0 -ne 0 ']'
+ '[' 5 -ne 0 ']'
+ '[' -d /proc/11409 ']'
+ wait 11409
+ kill 11409
+ eval 'exec 3>&-'
++ exec
+ eval 'exec 8>&-'
++ exec
+ eval 'exec 7>&-'
++ exec
+ rm /tmp/tmp_1516285409_11397/write
+ rm /tmp/tmp_1516285409_11397/read
+ rm -r /tmp/tmp_1516285409_11397
+ exit

Die DSL Synchronisierung hat jetzt beim ersten Mal länger gedauert aber die Box hat verbunden. Freetz ist drauf und es war tatsächlich einfacher als meine weiter oben beschriebene Hardwarelösung für den ssh Zugang :). Vielen Dank für die Unterstützung.

Für die google Sucher die hierher finden nochmal kurz meine Vorgehensweise.

Mein System ist ein Arch Linux.
1. Dort erstmal netcat (nc) in der openbsd-netcat Version installieren.
2. Dann musste ich noch svn installieren, ist bei Arch nicht standardmäßig installiert.
3. Im Terminal als normaler User im home Verzeichnis die freetz-trunk Version herunterladen mit
svn checkout http://svn.freetz.org/trunk freetz-trunk.
4. In das Verzeichnis freetz-trunk wechseln und mit "make menuconfig" die entsprechenden Einstellungen
vornehmen. Bei mir war dies:
- Level of User Experience - auf Expert geändert (ja, stimmt nicht ganz)
- Hardware Type - 7590
- Firmware language - de
- Firmware Version - 6.9x
- Other patches - Disable tr069
- Packages - Dropbear, mit SFTP Support
- Web Interface - Freetz security level 0
- Additional image/box information - Add freetz Version to AVM Version data
- Firmware packaging - Create in-memory image file
5. Speichern und make ausführen.
6. eva_to_memory von PeterPawns github Seite
(https://github.com/PeterPawn/YourFritz/blob/master/eva_tools/eva_to_memory) herunterladen
und in das freetz-trunk/images Verzeichnis speichern und die Berechtigung auf ausführbar
setzen.
6. Die LAN Schnittstelle einrichten und manuell die IP 192.168.178.2 (oder eine andere außer
1 und 255 aus dem Subnet) zuweisen. Netzwerkkabel muss natürlich verbunden sein.
7. Ein weiters Terminal öffnen und schonmal den ftp Zugriff vorbereiten mit "ftp 192.168.178.1".
8. Fritzbox vom Stromnetz trennen und wieder verbinden.
9. Einige Sekunden warten, die Fritzboxlichter blinken einmal alle gleichzeitig, eine Sekunde später
im vorbereiteten Terminal mit Enter die ftp Verbindung starten. Sofort sollte das login kommen.
Man muss sich nicht einloggen, der Bootvorgang der Fritzbox ist mit dem login Versuch bereits
unterbrochen.
10. Im vorherigen User-Terminal im freetz-trunk/images Verzeichnis ausführen:
eva_to_memory <imagename>.image.in-memory
11. Das wars, das Image wird auf die Box geschrieben. Die Box startet automatisch neu, einfach
einen Augenblick warten.

//edit stoney: CodeTag gesetzt
 
Zuletzt bearbeitet:
Für die google Sucher die hierher finden nochmal kurz meine Vorgehensweise.

Mein System ist ein Arch Linux.

1. Dort erstmal netcat (nc) in der openbsd-netcat Version installieren.
....
11. Das wars, das Image wird auf die Box geschrieben. Die Box startet automatisch neu, einfach
einen Augenblick warten.

Herzlichen Dank @noomad, dass Du das so gut dokumentiert hast! Damit traue ich mich auch, die FB 7590, die ich mir am Montag für 180€ gebraucht kaufen werde, zu freezen.

ABER: lies Dir mal bitte den Thread-Titel durch und vergleiche mit dem Inhalt Deiner Anleitung. Das passt nicht zusammen!

In der besten aller Welten gehört so eine Anleitung meines Erachtens in das Wiki auf freetz.org. Das würde vielen Leuten viele Irrungen und Wirrungen ersparen.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,183
Beiträge
2,247,563
Mitglieder
373,729
Neuestes Mitglied
ChTh
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.