Freetz für 6590

prisrak1

Mitglied
Mitglied seit
14 Mai 2017
Beiträge
332
Punkte für Reaktionen
26
Punkte
28
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
 

f666

Mitglied
Mitglied seit
6 Apr 2016
Beiträge
304
Punkte für Reaktionen
40
Punkte
28
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:

prisrak1

Mitglied
Mitglied seit
14 Mai 2017
Beiträge
332
Punkte für Reaktionen
26
Punkte
28
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
 

f666

Mitglied
Mitglied seit
6 Apr 2016
Beiträge
304
Punkte für Reaktionen
40
Punkte
28
Seltsam, kann das jemand anderes nachvollziehen?
 

prisrak1

Mitglied
Mitglied seit
14 Mai 2017
Beiträge
332
Punkte für Reaktionen
26
Punkte
28
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:
[email protected]:~/freetz-6590_6490$ git pull
Your configuration specifies to merge with the ref '6590'
from the remote, but no such ref was fetched.
[email protected]:~/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) ======
[email protected]:~/freetz-6590_6490$ cd /home/freetz/freetz/
[email protected]:~/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
 

f666

Mitglied
Mitglied seit
6 Apr 2016
Beiträge
304
Punkte für Reaktionen
40
Punkte
28
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.
 

prisrak1

Mitglied
Mitglied seit
14 Mai 2017
Beiträge
332
Punkte für Reaktionen
26
Punkte
28
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.
 

f666

Mitglied
Mitglied seit
6 Apr 2016
Beiträge
304
Punkte für Reaktionen
40
Punkte
28
@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:

rolex0815

Neuer User
Mitglied seit
28 Jan 2011
Beiträge
183
Punkte für Reaktionen
2
Punkte
18
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

Zuletzt bearbeitet:

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,169
Punkte für Reaktionen
1,039
Punkte
113
@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.
 

f666

Mitglied
Mitglied seit
6 Apr 2016
Beiträge
304
Punkte für Reaktionen
40
Punkte
28
Ist mir auch mal während dem Testen passiert, starte mal mit einer neuen .config.
 

rolex0815

Neuer User
Mitglied seit
28 Jan 2011
Beiträge
183
Punkte für Reaktionen
2
Punkte
18
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:

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,169
Punkte für Reaktionen
1,039
Punkte
113
@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:
[email protected]:/home/GitHub/puma6> grep TARGET_CFLAGS .config
FREETZ_TARGET_CFLAGS="-Os -pipe"
[email protected]:/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:

f666

Mitglied
Mitglied seit
6 Apr 2016
Beiträge
304
Punkte für Reaktionen
40
Punkte
28
@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:

rolex0815

Neuer User
Mitglied seit
28 Jan 2011
Beiträge
183
Punkte für Reaktionen
2
Punkte
18
Bitte gehe testweise exakt so vor (ohne zwischendurch zu speichern):
Code:
[email protected]:~/6590-test/freetz$ rm .config
[email protected]:~/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'.

[email protected]:~/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:

carlos

Mitglied
Mitglied seit
30 Nov 2004
Beiträge
213
Punkte für Reaktionen
0
Punkte
16
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
 

prisrak1

Mitglied
Mitglied seit
14 Mai 2017
Beiträge
332
Punkte für Reaktionen
26
Punkte
28
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:
[email protected]:~/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.

....

[email protected]:~$ cd /home/freetz/freetz/
[email protected]:~/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

[email protected]:~/freetz$ make menuconfig
configuration written to .config

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

[email protected]:~/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
[email protected]:~/freetz$