Freetz für 6590

den "6490_review" runtergeladen, "6490_07.00-release_kernel.tar.xz" ist in/dl.
Code:
#firmware version specific patches
    applying patch file make/linux/patches/2.6.39.3/6490_07.00/690-no_system-load-1_messages.patch
    patching file linux-2.6.39/drivers/char/avm_power/avm_cpu_process.c
    Hunk #1 FAILED at 357.
    1 out of 1 hunk FAILED -- saving rejects to file linux-2.6.39/drivers/char/avm_power/avm_cpu_process.c.rej
    ----------------------------------------------------------------------
ERROR: modpatch: Error in patch-file make/linux/patches/2.6.39.3/6490_07.00/690-no_system-load-1_messages.patch
make: *** [source/kernel/ref-puma6-6490_07.00/.unpacked] Fehler 2
 
Schritt für Schritt, auf der grünen Wiese, wie man eine minimale Firmware für eine 6590 erzeugt:
Code:
git clone https://github.com/f-666/freetz.git -b 6490_review
Danach muss es ein Verzeichnis "freetz" geben.
Code:
cd freetz
grep -A 3 Cable FIRMWARES
ergibt (zur Prüfung, ob auch die richtigen Dateien heruntergeladen wurden)
Code:
====== Fritz!Box Cable (64xx/65xx) ======

* Fritz!Box 6490 Cable
        * 141.06.87 rev48327
        * 141.07.00 rev61516
* Fritz!Box 6590 Cable
        * 148.06.87 rev48411
        * 148.07.00 rev60650

Nächster Schritt: das Archiv mit den Kernelquellen in der Art erzeugen, wie Freetz es braucht:
Code:
wget http://osp.avm.de/fritzbox/fritzbox-6590-cable/source-files-FRITZ.Box_6590_Cable.atom-07.00.tar.gz
tar xf source-files-FRITZ.Box_6590_Cable.atom-07.00.tar.gz GPL/GPL-release_kernel.tar.gz -C /tmp/
mkdir -p dl/fw
zcat /tmp/GPL/GPL-release_kernel.tar.gz | xz -zc9ev -T 0 > dl/fw/6590_07.00-release_kernel.tar.xz
ls -l dl/fw
Der letzte Befehl zeigt den Inhalt des Verzeichnisses an, in dem die Kernelquellen liegen müssen. Da muss nun eine Datei namens 6590_07.00-release_kernel.tar.xz drin sein, welche ca. 60MB groß ist.
Wichtig: Es wurde das Archiv für den ATOM Kern heruntergeladen.

Nun die (minimale) Konfigurationsdatei für Freetz erstellen:
Code:
make menuconfig
  • Level of user competence -> Expert
  • Hardware type -> 6590
  • Firmware version -> FRITZ!OS 07.0x
  • Toolchain options -> Toolchains -> Build own toolchains
Jetzt noch ein make und die Sache muss flutschen.
 
Zuletzt bearbeitet:
Eine super Anleitung! Die hätte mir früher bestimmt auch sehr geholfen. Genauso bin ich vorgegangen.
Code:
    ----------------------------------------------------------------------
    applying patch file make/linux/patches/2.6.39.3/999-cpmac_debug_sk_buff.patch
    patching file linux-2.6.39/drivers/net/avm_cpmac/common/avmnet_config.c
    ----------------------------------------------------------------------
#firmware version specific patches
    applying patch file make/linux/patches/2.6.39.3/6490_07.00/690-no_system-load-1_messages.patch
    patching file linux-2.6.39/drivers/char/avm_power/avm_cpu_process.c
    Hunk #1 FAILED at 357.
    1 out of 1 hunk FAILED -- saving rejects to file linux-2.6.39/drivers/char/avm_power/avm_cpu_process.c.rej
    ----------------------------------------------------------------------
ERROR: modpatch: Error in patch-file make/linux/patches/2.6.39.3/6490_07.00/690-no_system-load-1_messages.patch
make: *** [source/kernel/ref-puma6-6490_07.00/.unpacked] Fehler 2
 
Seltsam, kann das jemand anderes nachvollziehen?
 
Da in meiner alten Version die Aktualisierung nicht wirklich mit(git pull) klappte, hatte ich die neue siebener Version in der alte umbenannt gehabt. Die 64../6590kernels waren auch neu, wie nach diener Anleitung.

Code:
freetz@freetz-linux:~/freetz-6590_6490$ git pull
Your configuration specifies to merge with the ref '6590'
from the remote, but no such ref was fetched.
freetz@freetz-linux:~/freetz-6590_6490$ grep -A 3 Cable FIRMWARES
====== Fritz!Box Cable (64xx/65xx) ======

* Fritz!Box 6490 Cable (alpha)
        * 141.06.85 rev47111
* Fritz!Box 6590 Cable (alpha)
        * 148.06.85 rev47112

====== Fritz!Box LTE (68xx) ======
freetz@freetz-linux:~/freetz-6590_6490$ cd /home/freetz/freetz/
freetz@freetz-linux:~/freetz$ grep -A 3 Cable FIRMWARES
====== Fritz!Box Cable (64xx/65xx) ======

* Fritz!Box 6490 Cable
        * 141.06.87 rev48327
<<<<<<< HEAD
        * 148.07.00 rev61516
--
* Fritz!Box 6590 Cable
        * 148.06.87 rev48411
        * 148.07.00 rev60650
.. dann #42 -> Ergebnis #43
 
Dass die Aktualisierung nicht klappt, verwundert nicht, da es den 6590 Branch nicht mehr gibt. Alle meine Änderungen sind nun im 6490_review Branch enthalten.
Es ist mir nicht klar, was du eigentlich tust. Jetzt schreibst du wieder etwas mit umbennenen.
Nochmal: Es soll nichts umbenannt werden! Weder die Firmware von AVM, noch Kernelarchive.
Fange in einem leeren Verzeichnis an und mache exakt was in #42 steht. Nimm keine alten Versionen oder alte Dateien.
Wenn du mehr Details gibst, z.B. was du eintippst, was dabei raus kommt, von wo du was runterlädst, welche Datei wie heißt und wohin kopiert wird etc., würde es bedeutend erleichtern dir zu helfen.
 
In meinem Beitrag #45 habe ich lediglich meine ursprüngliche Vorgehensweise beschrieben. Es hat nicht funktioniert, deshalb habe ich mich an deine Anleitung #42 noch mal dran gehalten. (in einem leeren Verzeichni) Wie bereits erwähnt, es funktioniert bei mir nicht.
 
@Shirocco88 Ja, dieser Branch enthält die Modifikationen für beide PUMA6 Boxen, 6490 & 6590.

### Zusammenführung Doppelpost + Vollzitat entfernt by stoney ###

@prisrak1,
Seltsam, ich kann es bei mir nicht nachstellen. Kannst du bitte noch deine .config Datei hier posten? Vielleicht gibt die ja einen Hinweis.
 
Zuletzt bearbeitet von einem Moderator:
config
 

Anhänge

  • config.txt
    66.3 KB · Aufrufe: 5
Seltsam, kann das jemand anderes nachvollziehen?
Diesen Fehler nicht, bei mir gibt's aber andere Probleme bei einem komplett frischen Checkout:
Code:
checking for i686-linux-uclibc-gcc...  /home/thomas/6590-test/freetz/source/toolchain-i686_gcc-5.5.0_uClibc-1.0.14-nptl/gcc-5.5.0-initial/./gcc/xgcc -B/home/thomas/6590-test/freetz/source/toolchain-i686_gcc-5.5.0_uClibc-1.0.14-nptl/gcc-5.5.0-initial/./gcc/ -B/home/thomas/6590-test/freetz/toolchain/build/i686_gcc-5.5.0_uClibc-1.0.14-nptl/i686-linux-uclibc/usr/i686-linux-uclibc/bin/ -B/home/thomas/6590-test/freetz/toolchain/build/i686_gcc-5.5.0_uClibc-1.0.14-nptl/i686-linux-uclibc/usr/i686-linux-uclibc/lib/ -isystem /home/thomas/6590-test/freetz/toolchain/build/i686_gcc-5.5.0_uClibc-1.0.14-nptl/i686-linux-uclibc/usr/i686-linux-uclibc/include -isystem /home/thomas/6590-test/freetz/toolchain/build/i686_gcc-5.5.0_uClibc-1.0.14-nptl/i686-linux-uclibc/usr/i686-linux-uclibc/sys-include
checking for suffix of object files... configure: error: in `/home/thomas/6590-test/freetz/source/toolchain-i686_gcc-5.5.0_uClibc-1.0.14-nptl/gcc-5.5.0-initial/i686-linux-uclibc/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
Makefile:10904: recipe for target 'configure-target-libgcc' failed
make[1]: *** [configure-target-libgcc] Error 1
make[1]: Verzeichnis „/home/thomas/6590-test/freetz/source/toolchain-i686_gcc-5.5.0_uClibc-1.0.14-nptl/gcc-5.5.0-initial“ wird verlassen
toolchain/make/target/gcc/gcc.mk:131: recipe for target '/home/thomas/6590-test/freetz/source/toolchain-i686_gcc-5.5.0_uClibc-1.0.14-nptl/gcc-5.5.0-initial/.compiled' failed
make: *** [/home/thomas/6590-test/freetz/source/toolchain-i686_gcc-5.5.0_uClibc-1.0.14-nptl/gcc-5.5.0-initial/.compiled] Error 2
Vorgehen nach #42, https://www.ip-phone-forum.de/threads/freetz-für-6590.298145/page-3#post-2299690.

Anbei die vermutlich interessante config.log

EDIT: Zusätzlich noch die .config.
Die ergab sich wiederum strikt nur nach Anwendung der Anleitung aus #42 (4 Punkte).
 

Anhänge

  • config.log.txt
    19.2 KB · Aufrufe: 2
  • config.txt
    66 KB · Aufrufe: 3
Zuletzt bearbeitet:
@rolex0815:
Du hast nicht zufällig eine ältere ".config" für den Build "nachgenutzt" und dabei ein paar Einstellungen nicht (neu) gemacht?

Eigentlich taucht die "--trap"-Option für den Assembler in der Freetz-Konfiguration bei @f666 auch nur dann auf, wenn es "TARGET_ARCH_MIPS" ist und das kann bei der 6590/6490 eigentlich fast nicht sein:

https://github.com/f-666/freetz/blob/6490_review/config/ui/toolchain.in#L346

Da wäre dann die verwendete ".config" noch aufschlußreich ... auch wenn das "Beilegen" der "config.log" schon mal sehr hilfreich war (und hoffentlich anderen als Vorbild dient).

Aber bei "TARGET_ARCH_X86" (in der verlinkten Kconfig-Datei eine Zeile tiefer) sollte da gar kein "-Wa,--trap" mit der Option für den Assembler mehr enthalten sein als Bestandteil von "FREETZ_TARGET_CFLAGS". Da Du ja nach eigenen Worten mit einem "frischen Checkout" arbeitest, kann es auch kaum etwas aus dem Cache sein.
 
Ist mir auch mal während dem Testen passiert, starte mal mit einer neuen .config.
 
Post #51 ergänzt. Ich helfe nur beim Testen, ich hab keine 6590. ;)

Die config gelöscht und neu erstellt nach Anleitung aus #42 bringt keine Änderung.
Identischer Fehler.

Du hast nicht zufällig eine ältere ".config" für den Build "nachgenutzt" und dabei ein paar Einstellungen nicht (neu) gemacht?
Nein, komplett neuer Checkout in neues Verzeichnis, 1:1 nach Anleitung.
 
Zuletzt bearbeitet:
@rolex0815:
Zeig' mal bitte die ".config" (ich will mir nicht erst die Build-Umgebung einrichten - auch ich will hier nur "helfen" bei der Diagnose des Problems) ... was steht denn da als "FREETZ_TARGET_ARCH_irgendwas" drin? Ggf. löscht die eine Auswahl ja nur den anderen Wert nicht richtig bzw. es sind (versehentlich) zwei "TARGET_ARCH"-Werte aktiv, so daß der MIPS-Wert "gewinnt".

EDIT:
OK, diese (viel) späteren Änderungen sind etwas nervig - weil man das nie so richtig mitbekommt, wenn man nicht erst noch mal "nach hinten" liest. Die ".config" gibt's also inzwischen schon ...

EDIT2:
Ich habe das nun doch mal ausgecheckt (unter Tumbleweed x64 und ohne echte Chance für einen erfolgreichen Build, weil keine 32-Bit-Kompatibilität installiert ist) ... nach dem Aufruf von "make menuconfig" enthält meine ".config" die korrekten Flags für den C-Compiler für das Target:
Code:
peh@vidar:/home/GitHub/puma6> grep TARGET_CFLAGS .config
FREETZ_TARGET_CFLAGS="-Os -pipe"
peh@vidar:/home/GitHub/puma6>

@f666:
Ich würde ohnehin eher mit "-Ofast" (oder zumindest "-O3") kompilieren als mit "-Os" ... Platzprobleme dürften nicht entscheidend sein bei den Puma6-Modellen und AVM selbst optimiert (nach den Konfigurationsdateien aus den Quelltext-Paketen) entweder gar nicht oder mit "-O2". Sicherlich wird sich nicht überall ein meßbarer Geschwindigkeitsvorteil ergeben ... aber solange der Platz nicht wirklich wichtig ist (und das war er vielleicht mal bei den alten FRITZ!Boxen mit wenig NOR-Flash), sehe ich keinen echten Grund, hier mit "-Os" ans Werk zu gehen (auch wenn ich verstehe, daß Du eigentlich nur das "-Wa,--trap" weghaben wolltest - falls das in Deiner ersten Version auch schon so gewesen sein sollte, denn inzwischen ist diese Einstellung (FREETZ_TARGET_ARCH_X86) ja im Trunk angekommen).

Ich würde auch diese Einstellung eher konfigurierbar machen ... meinetwegen auch "nur" mit der Auswahl "Speed vs. Size" anstelle der direkten Angabe von Compiler-Flags - gerade für Kryptographie mit einer entsprechenden "Dauerbelastung" der CPU ist alles ab 5% schon ein riesiger Gewinn und wenn ich genug Daten über eine VPN-Verbindung bewege, dauert das jeden Tag (mal 24 Stunden "Anschlag" unterstellt) mehr als eine Stunde weniger.

Wenn also nicht der zusätzliche Platzbedarf die "-Ofast"-Optimierungen "verbietet", sollte man ohnehin eher (zumindest heutzutage und für aktuelle Boxen) auf Geschwindigkeit als auf Größe optimieren. Durch das Ersetzen der C-Library profitieren sogar AVM-Komponenten dann von solchen Optimierungen, die erst beim Kunden stattfinden - es gibt zwar (minimale) Chancen auf Probleme aus Optimierungen, aber die sind bei "size" auch nicht ausgeschlossen und damit ist das in meinen Augen auch kein Argument für oder gegen entsprechende Compiler-Einstellungen.
 
Zuletzt bearbeitet:
@prisrak1 :
Ich habe mir deine .config Datei angesehen. Offensichtlich verwendest du ein modifiziertes Freetz mit OScamd.
Was genau da alles reingebaut wird, weiß ich nicht. Eventuell weitere oder geänderte Kernel Patches?
Ohne OScamd läuft es bei mir, auch mit deiner .config Datei.
Außerdem benutzt du eine 6490. In diesem Thread hätte ich auf Feedback von Benutzern einer 6590 gehofft. Aber ist nicht schlimm.

Probiere es doch einmal ohne OScamd, also wirklich ein Freetz, wie es aus meinem Repository kommt. Ohne weitere Veränderungen. Wenn es dann geht, aber mit den Veränderungen nicht, würde schon einiges klarer.

Poste doch bitte alle Ausgabezeilen, wo die Kernelquellen gepatcht werden (also ab ---> kernel: checking structure... unpacking...).
Außerdem der Inhalt der Datei, wo das Patchen fehlschlägt (oben war es die source/kernel/ref-puma6-6490_07.00/linux-2.6.39/drivers/char/avm_power/avm_cpu_process.c).

@rolex0815 :
Da stimmt was in kconfig oder Freetz nicht mit den TARGET_CFLAGS. Wenn man zwischen den Architekturen wechselt, werden die Default Werte der TARGET_CFLAGS nicht umgestellt. Sehr seltsam.

Bitte gehe testweise exakt so vor (ohne zwischendurch zu speichern):
- rm .config
- make menuconfig
  1. Level of user competence -> Expert
  2. Hardware type -> 6590
  3. Firmware version -> FRITZ!OS 07.0x
  4. Exit
- grep TARGET_CFLAGS .config

Da sollte jetzt nur
Code:
FREETZ_TARGET_CFLAGS="-Os -pipe"
stehen. Wenn du nun erneut make menuconfig startest und beispielsweise eine 7490 auswählst, sollten die Flags auch nicht verändert werden. Letzteres ist ein Fehler.
 
Zuletzt bearbeitet:
Bitte gehe testweise exakt so vor (ohne zwischendurch zu speichern):
Code:
thomas@ubuntu64:~/6590-test/freetz$ rm .config
thomas@ubuntu64:~/6590-test/freetz$ make menuconfig
WARNING: The header file readline/readline.h was not found in /usr/(local/)include.
configuration written to .config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

thomas@ubuntu64:~/6590-test/freetz$ grep TARGET_CFLAGS .config
FREETZ_TARGET_CFLAGS="-Os -pipe"
Tja, warum die Flags jetzt korrekt sind und vorhin nicht ist mir ein Rätsel, das Vorgehen war identisch. (Gut ich habe diesmal nicht die Settings bei Toolchain angesehen).

Make läuft gerade.

EDIT:

Und ist fertig:

Code:
STEP 3: PACK
  checking for left over Subversion directories
  integrate freetz info file into image
packing var.tar
creating filesystem image (SquashFS4-xz)
  SquashFS block size: 64 kB (65536 bytes)
copying kernel image
  kernel image size: 3.3 MB, max 8.0 MB, free 4.7 MB (4918904 bytes)
copying filesystem image
  filesystem image size: 21.2 MB, max 64.0 MB, free 42.8 MB (44912640 bytes)
adding checksum to kernel.image
adding checksum to filesystem.image
packing images/6590_07.00-freetz-devel-14892.de_20181012-114638.image
  unsigned image file size: 32.5 MB (34058240 bytes)
using unsigned image as the final one
done.

FINISHED
 
Zuletzt bearbeitet:
Hallo,
Also ich konnte damit sauber ein image für meine 6590 bauen, habe nur siab mit reingenommen.
Aber flashen geht nicht.
Es kommt der Fehler, dass es kein von AVM signiertes image ist.
Gruß

Carlos
 
Das ist zu erwarten. Hier ist beschrieben, wie du das Image flashen kannst:
/viewtopic.php?t=160
 
Alles wieder neu gemacht. Ein 6590-img bauen kann ich immer noch nicht. Diesmal ohne oscam, (hier war ich wahrscheinlich zu schnell, hat aber keine Auswirkungen gehabt)
Code:
freetz@freetz-linux:~/freetz$ git pull
remote: Enumerating objects: 101, done.
remote: Counting objects: 100% (101/101), done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 101 (delta 64), reused 101 (delta 64), pack-reused 0
Empfange Objekte: 100% (101/101), 73.18 KiB | 0 bytes/s, done.
Löse Unterschiede auf: 100% (64/64), abgeschlossen mit 9 lokalen Objekten.
Von https://github.com/f-666/freetz
 + 2a5d9fa...b6e8fe6 6490_review -> origin/6490_review  (Aktualisierung erzwungen)
   15d5db5..c4ea144  master     -> origin/master
automatischer Merge von config/mod/download.in
automatischer Merge von config/avm/availability.in
automatischer Merge von FIRMWARES
automatischer Merge von CHANGELOG
  GNU nano 2.2.6     Datei: /home/freetz/freetz/.git/MERGE_MSG

Merge branch '6490_review' of https://github.com/f-666/freetz into 6490_review

# Bitte geben Sie eine Commit-Beschreibung ein, um zu erklären, warum dieser
# Merge erforderlich ist, insbesondere wenn es einen aktualisierten
# Upstream-Branch mit einem Thema-Branch zusammenführt.
#
# Zeilen beginnend mit '#' werden ignoriert, und eine leere Beschreibung
# bricht den Commit ab.

....

freetz@freetz-linux:~$ cd /home/freetz/freetz/
freetz@freetz-linux:~/freetz$ grep -A 3 Cable FIRMWARES
====== Fritz!Box Cable (64xx/65xx) ======

* Fritz!Box 6490 Cable
        * 141.06.87 rev48327
        * 141.07.00 rev61516
* Fritz!Box 6590 Cable
        * 148.06.87 rev48411
        * 148.07.00 rev60650

freetz@freetz-linux:~/freetz$ make menuconfig
configuration written to .config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

freetz@freetz-linux:~/freetz$ make
rm -f -r source/kernel/ref-puma6-6590_07.00
mkdir -p source/kernel/ref-puma6-6590_07.00
checking structure...
ERROR: KERNEL_SOURCE_CONTENT is empty
make: *** [source/kernel/ref-puma6-6590_07.00/.unpacked] Fehler 1
freetz@freetz-linux:~/freetz$
 
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.