[Gelöst] "make: *** [firmware]"-Fehler

chrisdi

Neuer User
Mitglied seit
15 Jan 2007
Beiträge
18
Punkte für Reaktionen
0
Punkte
0
Moin!

Ich habe gestern Abend das Kompilieren des ds-mod 0.2.9 für meine neue 7050er-Fritzbox angestoßen (unter Debian GNU/Linux).

"make" stellt dann irgendwann auch fest, dass es die 14.04.25-er Firmware auf den FTP-Servern nicht finden kann (Ursache ist mir klar) und schlägt mir vor, es mit der 14.04.15 zu versuchen. Diese wird heruntergeladen und auch entpackt.

Aber dann kommt die Modify-Phase und hier bricht "make" mit folgender Fehlermeldung ab:

Code:
make: *** [firmware] fehler 2
(aus dem Kopf zitiert)

Egal, wie viele "v"s ich an "make --debug=" anhänge, ich erhalte von "make" hierzu keine brauchbare Information um den Fehler einzugrenzen. :-(

Kann es daran liegen, dass die 14.04.15 zu alt ist für das ds-mod 0.2.9?

Ahoi!

ChrisDi
 
Zuletzt bearbeitet:
um dir helfen zu können, müsste man auch noch ein paar der ausgegebenen zeilen davor sehen.
 
Hi!

Ohh, das ist der meines erachtens ganz übliche Output, dasss die Firmware entpackt wird in den einzelnen Paketen (der Debug-Modus von make hatte mich schon erleuchten in bezug darauf, dass naoch ein aptitude install zlibc nötig war), dann kommt die Überschrift, dass nun das Modifizieren beginnt und nur diese gepostete Fehlermeldung.

Wenn du mir sagst, wonach du suchen willst, kann ich dir das evtl. aus dem Kopf beantworten, an den Rechner zum Kompilieren komme ich erst heute Abend wieder.

Ahoi!

ChrisDi
 
chrisdi schrieb:
Ohh, das ist der meines erachtens ganz übliche Output
wäre es der "übliche output", dann würde es nicht mit einem fehler abbrechen.

chrisdi schrieb:
dann kommt die Überschrift, dass nun das Modifizieren beginnt und nur diese gepostete Fehlermeldung.
du solltest im make menuconfig das verbose level mal auf 2 oder höher setzen. so bekommt man mehr ausgaben und kann besser das problem identifizieren.

mit der information "mit fehler abgebrochen" alleine kann man dir nicht helfen.
 
Hallo!

wäre es der "übliche output", dann würde es nicht mit einem fehler abbrechen.

Du hast mich gefragt, was vor dem Fehler ausgegeben wird. Und das ist der übliche Output. Erst der obskure "fehler 2" ist unüblich. Wie gesagt, hatte ich auch schon die Debug-Ausgabe in "make" aktiviert und keine Fehler in unmittelbarer Umgebung gesichtet.

du solltest im make menuconfig das verbose level mal auf 2 oder höher setzen. so bekommt man mehr ausgaben und kann besser das problem identifizieren.

Das werde ich dann heute abend machen, wobei ich mir dadurch ja nur "--debug=vv" beim Aufruf von "make" erspare. Das Probelm ist, wie schon geschrieben, dass selbst noch höhere Debug-Level keinen unmittelbaren der Ausgabe "fehler 2" zuordbaren Fehler hervorbringen.

Ahoi!

ChrisDi
 
Du mußt den ds-mod selbst geschwätziger machen. Im Menuconfig gibt es dazu eine Option...
 
Guten Morgen!

Also, ich habe gestern Abend und diese Nacht nochmals alles durchlaufen lassen:

Code:
1. ds-0.2.9-opensrc-04.06.tar.bz2
2. ds-0.2.9-p2.patch.bz2
3. ds-0.2.9-b.sander-updates.patch.bz2

Alles entpackt, die Patches nachgeführt, konfiguriert (mit verbosity=2) und mit "make precompiled" gestartet.

Dies sind alle Zeilen, die in der .config nicht auskommentiert, also aktiv, sind:

Code:
DS_HAVE_DOT_CONFIG=y
DS_AVM_VERSION_04_06=y
DS_AVM_VERSION_STRING="04.06"
DS_TYPE_FON_WLAN_7050=y
DS_TYPE_LANG_DE=y
DS_TYPE_LANG_STRING="de"
DS_TYPE_STRING="fon_wlan_7050"
DS_INSTALL_BASE=y
DS_REPLACE_BUSYBOX=y
DS_REPLACE_KERNEL=y
DS_TARGET_REF="4mb"
DS_KERNEL_REF="4mb"
DS_HIDDEN_ROOT=y
DS_CONTIGUOUS_HIDDEN_ROOT=y
DS_SQUASHFS_LZMA=y
DS_ROOTFS_VARTAR=y
DS_KERNEL_MTD_SIZE=11
DS_FILESYSTEM_MTD_SIZE=48
DS_HAS_PHONE=y
DS_HAS_WLAN=y
DS_HAS_USB=y
DS_BRANDING_1und1=y
DS_BRANDING_avm=y
DS_BRANDING_arcor=y
DS_REMOVE_HELP=y
DS_REMOVE_ASSISTANT=y
DS_PATCH_ENUM=y
DS_PATCH_INTERNATIONAL=y
DS_LANG_DE=y
DS_LANG_STRING="de"
DS_PACKAGE_CALLMONITOR=y
DS_PACKAGE_DNSMASQ=y
DS_PACKAGE_DROPBEAR=y
DS_PACKAGE_MC=y
DS_PACKAGE_OPENVPN=y
DS_PACKAGE_SCREEN=y
DS_PACKAGE_VPNC=y
DS_PACKAGE_TRANSMISSION=y
DS_PACKAGE_FIREWALL_CGI=y
DS_DL_OVERRIDE=y
DS_DL_SITE="ftp://ftp.avm.de/fritz.box/fritzbox.fon_wlan_7050/firmware"
DS_DL_SOURCE="fritz.box_fon_wlan_7050.14.04.15.image"
DS_VERBOSITY_LEVEL=2
DS_FAVICON_NONE=y
DS_FAVICON_STRING="none"
DS_SQUASHFS_BLOCKSIZE_65536=y
DS_MODULE_ip_conntrack_ftp=y
DS_MODULE_ip_conntrack=y
DS_MODULE_iptable_filter=y
DS_MODULE_ip_tables=y
DS_MODULE_ipt_iprange=y
DS_MODULE_ipt_LOG=y
DS_MODULE_ipt_mac=y
DS_MODULE_ipt_multiport=y
DS_MODULE_ipt_state=y
DS_LIB_ld_uClibc=y
DS_LIB_libcrypt=y
DS_LIB_libdl=y
DS_LIB_libnsl=y
DS_LIB_libpthread=y
DS_LIB_libuClibc=y
DS_LIB_libutil=y
DS_LIB_libipt_iprange=y
DS_LIB_libipt_LOG=y
DS_LIB_libipt_mac=y
DS_LIB_libipt_multiport=y
DS_LIB_libipt_standard=y
DS_LIB_libipt_state=y
DS_LIB_libipt_tcp=y
DS_LIB_libipt_udp=y
DS_LIB_libncurses=y
DS_LIB_libcrypto=y
DS_LIB_libssl=y
DS_TARGET_CROSS="mipsel-linux-uclibc-"
DS_TARGET_MAKE_PATH="toolchain/target/bin"
DS_TARGET_CFLAGS="-Os -W -Wall -pipe -march=4kc -Wa,--trap"
DS_KERNEL_CROSS="mipsel-unknown-linux-gnu-"
DS_KERNEL_MAKE_PATH="toolchain/kernel/bin"
DS_TARGET_COMPILER_GCC_4_1_0_UCLIBC_0_9_26=y
DS_TARGET_GCC_VERSION="4.1.0"
DS_TARGET_UCLIBC_VERSION="0.9.26"
DS_TARGET_BINUTILS_VERSION="2.16.91.0.6"
DS_TARGET_UCLIBC_CONFIG_MOD=y
DS_TARGET_UCLIBC_REF="mod"
DS_TARGET_GXX=y
DS_TARGET_CCACHE=y
DS_KERNEL_COMPILER_GCC_3_3_2_GLIBC_2_3_2=y
DS_KERNEL_GCC_VERSION="3.3.2"
DS_KERNEL_GLIBC_VERSION="2.3.2"

Zunächst gab es eine Fehlermeldung für source/toolchain/gcc-4.1.0/gcc/Makefile.in.rej, die aber effektiv nur eine Zeile Code betraf, nämlich IMHO die Erkennung, ob die Kernel-Header gefunden wurden. Da das Kompilieren fast komplett durchlief, gehe ich davon aus, dass der Patch für mich keine Auswirkungen hat:

Code:
***************
*** 3167,3179 ****
  ../$(build_subdir)/fixincludes/fixincl: ; @ :

  # Build fixed copies of system files.
  stmp-fixinc: gsyslimits.h macro_list \
    $(build_objdir)/fixincludes/fixincl \
    $(build_objdir)/fixincludes/fixinc.sh
         @if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
           echo The directory that should contain system headers does not exist: >&2 ; \
           echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
-          if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
           then sleep 1; else exit 1; fi; \
         fi
         rm -rf include; mkdir include
--- 3170,3184 ----
  ../$(build_subdir)/fixincludes/fixincl: ; @ :

  # Build fixed copies of system files.
+ # Abort if no system headers available, unless building a crosscompiler.
+ # Canonicalize $gcc_tooldir/sys-include in same way as $SYSTEM_HEADER_DIR was canonicalized so test still works
  stmp-fixinc: gsyslimits.h macro_list \
    $(build_objdir)/fixincludes/fixincl \
    $(build_objdir)/fixincludes/fixinc.sh
         @if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
           echo The directory that should contain system headers does not exist: >&2 ; \
           echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
+          if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
           then sleep 1; else exit 1; fi; \
         fi
         rm -rf include; mkdir include

Dann brach mir der Kompile-Vorgang ab, weil ein Tool fehlte (jam).

@Danisahne: Ein configure wäre schön, der vorab testet, ob alle benötigten Tools/Libraries vorhanden sind ... :)

Ok, irgendwann meldete dann der Rechner, dass das "make precompiled" nun fertig sei:

Code:
  Die Target-Datei »vpnc-precompiled« wurde erfolgreich aktualisiert.
 Fertig mit den Voraussetzungen für die Ziel-Datei »precompiled«.
Das Target »precompiled« muss neu erzeugt werden.
Die Target-Datei »precompiled« wurde erfolgreich aktualisiert.

Nun also den reinen "make" angeworfen führt zu folgendem Resultat:

Code:
STEP 1: UNPACK
unpacking firmware image
splitting kernel image
unpacking filesystem image
  created 1290 files
  created 82 directories
  created 169 symlinks
  created 0 devices
  created 0 fifos
unpacking var.tar
done.

STEP 2: MODIFY
applying patches
  applying patches (fon_wlan_7050-de)
    patching file etc/profile
    patching file usr/bin/system_status
    patching file etc/init.d/rc.net
    patching file etc/init.d/rc.voip
    patching file etc/init.d/rc.S
    patching file etc/init.d/rc.S
    patching file etc/init.d/rc.S
    patching file usr/www/all/html/de/menus/menu2_fon.html
    patching file usr/www/all/html/de/menus/menu2_homehome.html
    patching file usr/www/all/html/de/menus/menu2.inc
    Hunk #1 FAILED at 15.
    1 out of 1 hunk FAILED -- saving rejects to file usr/www/all/html/de/menus/menu2.inc.rej
    patching file usr/www/all/html/de/menus/menu2_internet.html
    patching file usr/www/all/html/de/menus/menu2_system.html
    patching file usr/www/all/html/de/menus/menu2_wlan.html
make: *** [firmware] Fehler 2

Und die build/modified/filesystem/usr/www/all/html/de/menus/menu2.inc.rej meint dies:

Code:
***************
*** 15,17 ****
  <? setvariable var:evtxt05 "USB-Zubehör" ?>
  <? setvariable var:evtxt06 "Netzwerkgeräte" ?>
  <? setvariable var:evtxt07 "Einstellungen" ?>
--- 15,18 ----
  <? setvariable var:evtxt05 "USB-Zubehör" ?>
  <? setvariable var:evtxt06 "Netzwerkgeräte" ?>
  <? setvariable var:evtxt07 "Einstellungen" ?>
+ <? setvariable var:menuDSMOD "DS-MOD" ?>

Bricht das target "firmware" nun also wegen dieses misslungenen Patches ab oder ist da noch was anderes im Busch? Kann/darf ich den Patch einfach von Hand in die Datei schreiben oder hat da das make-Script was gegen? Nutzt das überhaupt was? :)

Ahoi,

ChrisDi
 
chrisdi schrieb:
Bricht das target "firmware" nun also wegen dieses misslungenen Patches ab oder ist da noch was anderes im Busch? Kann/darf ich den Patch einfach von Hand in die Datei schreiben oder hat da das make-Script was gegen? Nutzt das überhaupt was? :)
ja, nein, ja, nein, ja :p
 
Hi!

knox schrieb:
ja, nein, ja, nein, ja :p

Ich werde dann heute abend mal den Code von Hand ergänzen. Sicherlich wird der Patch sich darüber beschweren. Aber ich bin gespannt, ob das "make" dann durchläuft.

Oder gibt's 'ne saubere Lösung? Hmm ... vieeleicht "patch -p0 < patchfile", misslungene Patches nachziehen, *.Patch-Datei löschen, "make".

Mal schauen ...

ChrisDi
 
chrisdi schrieb:
Oder gibt's 'ne saubere Lösung?
fix doch einfach den patch.

möglicher weise wird durch die sander patches etwas verändert, so das die normalen patches für das webinterface nicht mehr passen?
 
Hoi!

knox schrieb:
fix doch einfach den patch.

Das habe ich nun getan. :)

möglicher weise wird durch die sander patches etwas verändert, so das die normalen patches für das webinterface nicht mehr passen?

Nein, diese Patches sind unschuldig, das Problem kommt schon mit dem ds-0.2.9-p2.patch daher. Dieser nämlich geht von einer neueren Firmware aus als die für die aktuell für die FBF 7050 verfügbare. In der 14.04.15er Firmware ist die Menüstruktur innerhalb der Datei /usr/www/all/html/de/menus/menu2.inc wie der im ds-0.2.9-opensrc-Paket enthaltene Patch unter patches/fon_wlan_7050/de/190...-Patch voraussetzt.

Nachdem ich nun in der aktuellen Version mit allen eingespielten Patches den zu neuen Patch durch den von danisahne mitgelieferten ausgetauscht habe, wird das Image gebaut ...

... ohh, Mist, nun ist es "too big" ... muss ich wohl doch mal schauen, ob ich das eine oder andere Modul nicht benötige ...

Ahoi!

ChrisDi
 
bei mir hat es ohne b.sander patches wunderbar geklappt. 14.04.25 ins dl-Verzeichnis, dann lief es. Schau mal unter

http://www.ip-phone-forum.de/showpost.php?p=771666&postcount=9

was bei mir da mit 14.04.25 gerade reingepasst hat, damit du etwas Gefühl dafür kriegst.

Viel bleibt bei 7050 mit xx.25 Firmware nicht übrig.

MfG

Hermann
 
Hi!

hermann72pb schrieb:
bei mir hat es ohne b.sander patches wunderbar geklappt. 14.04.25 ins dl-Verzeichnis, dann lief es.

Ich habe aber leider nicht die 14.04.25 sondern nur die 14.04.15 zur Verfügung, da AVM die .25 ja wieder vom Server entfernt hat. :-(

Viel bleibt bei 7050 mit xx.25 Firmware nicht übrig.

Das kann ich leider - für die .15 - nur bestätigen. :-( Ich habe mittlerweile in menuconfig alle Packages entfernt, nur ein Branding aktiv, alle Removes aktiviert und alle Patches deaktiviert und dennoch ist das gebackene Image zu groß, aber nur innerhalb einer Blocksize ... :-/
 
chrisdi schrieb:
( Ich habe mittlerweile in menuconfig alle Packages entfernt, nur ein Branding aktiv, alle Removes aktiviert und alle Patches deaktiviert und dennoch ist das gebackene Image zu groß, aber nur innerhalb einer Blocksize ... :-/

Das kann ich dir nicht glauben. Die xx.15 Firmware ist kleiner als xx.25. Etwas machst du falsch. Schau bitte nach bibliotheken um. Ist vielleicht eine aktiviert, die man nicht braucht?

MfG

Hermann
 
Hi!

hermann72pb schrieb:
Das kann ich dir nicht glauben. Die xx.15 Firmware ist kleiner als xx.25. Etwas machst du falsch. Schau bitte nach bibliotheken um. Ist vielleicht eine aktiviert, die man nicht braucht?

Hmm ... diese Einstellungen habe ich, wie von Danisahne voreingestellt, übernommen. Folgend die Liste der aktivierten Libraries:

Code:
DS_LIB_ld_uClibc=y
DS_LIB_libcrypt=y
DS_LIB_libdl=y
DS_LIB_libnsl=y
DS_LIB_libpthread=y
DS_LIB_libuClibc=y
DS_LIB_libutil=y
DS_LIB_libipt_iprange=y
DS_LIB_libipt_LOG=y
DS_LIB_libipt_mac=y
DS_LIB_libipt_multiport=y
DS_LIB_libipt_standard=y
DS_LIB_libipt_state=y
DS_LIB_libipt_tcp=y
DS_LIB_libipt_udp=y
DS_LIB_libncurses=y
DS_LIB_libcrypto=y
DS_LIB_libssl=y

Wenn das danisahne-mod dann installiert ist, soll auch noch der LCR (wieder) installiert werden - der benötigt dann ja auch noch Platz.

Interessant beim Bau der Firmware finde ich immer diesen Output:
Code:
squashfs blocksize
  hidden squashfs: 65536
  root filesystem: 65536
packing var.tar
creating filesystem image
  kernel raw: 444305 (max: 720896)
  kernel image size: 720896 (max: 720896)
  filesystem image size: 3211264 (max: 3145728)
ERROR: filesystem image is 65536 bytes too big
make: *** [firmware] Fehler 1

Mich wundert daran, dass anscheinend dem Kernel viel zu viel Platz zur Verfügung steht, der mir dann im Filesystem fehlt. Aber evtl. muss das ja so sein ...

Gruß,

ChrisDi
 
Dieses Libraries sind nicht voreingestellt.
Abwhälen kannst du:
libssl, libcrypto, libncurses und libipt* (wenn du iptables nicht nutzen willst).

MfG Oliver
 
Hi!

So, ich habe nun eine erweiterte Firmware mit meiner Lieblingskonfiguration aufgespielt - vor allem dank der Hilfe von hermann72pb... aber euch allen Danke für eure Beiträge.

Nun bin ich glücklich! :)

Ahoi!

ChrisDi
 
Könntest du die .config mal posten bitte ? :)
 
Hi Leute,
hab leider das gleiche Problem.
Kann mir bitte jemand die Firmware 14.04.25 für die 7050 mailen?
[email protected]
Gruss
Schmide
 
Hi!

KatZe schrieb:
Könntest du die .config mal posten bitte ? :)

Aber gerne doch! :) Hier, reduziert auf die aktiven Einstellungen, der Code-Schnipsel:

Code:
DS_HAVE_DOT_CONFIG=y
DS_AVM_VERSION_04_06=y
DS_AVM_VERSION_STRING="04.06"
DS_TYPE_FON_WLAN_7050=y
DS_TYPE_LANG_DE=y
DS_TYPE_LANG_STRING="de"
DS_TYPE_STRING="fon_wlan_7050"
DS_INSTALL_BASE=y
DS_REPLACE_BUSYBOX=y
DS_REPLACE_KERNEL=y
DS_TARGET_REF="4mb"
DS_KERNEL_REF="4mb"
DS_HIDDEN_ROOT=y
DS_CONTIGUOUS_HIDDEN_ROOT=y
DS_SQUASHFS_LZMA=y
DS_ROOTFS_VARTAR=y
DS_KERNEL_MTD_SIZE=11
DS_FILESYSTEM_MTD_SIZE=48
DS_HAS_PHONE=y
DS_HAS_WLAN=y
DS_HAS_USB=y
DS_BRANDING_1und1=y
DS_REMOVE_HELP=y
DS_REMOVE_ASSISTANT=y
DS_REMOVE_CDROM_ISO=y
DS_PATCH_ENUM=y
DS_PATCH_INTERNATIONAL=y
DS_LANG_DE=y
DS_LANG_STRING="de"
DS_PACKAGE_CALLMONITOR=y
DS_PACKAGE_DNSMASQ=y
DS_PACKAGE_FIREWALL_CGI=y
DS_DL_SITE="ftp://ftp.avm.de/fritz.box/fritzbox.fon_wlan_7050/firmware"
DS_DL_SOURCE="fritz.box_fon_wlan_7050.14.04.25.image"
DS_VERBOSITY_LEVEL=2
DS_FAVICON_NONE=y
DS_FAVICON_STRING="none"
DS_SQUASHFS_BLOCKSIZE_65536=y
DS_MODULE_ip_conntrack_ftp=y
DS_MODULE_ip_conntrack=y
DS_MODULE_iptable_filter=y
DS_MODULE_ip_tables=y
DS_MODULE_ipt_iprange=y
DS_MODULE_ipt_LOG=y
DS_MODULE_ipt_mac=y
DS_MODULE_ipt_multiport=y
DS_MODULE_ipt_state=y
DS_LIB_ld_uClibc=y
DS_LIB_libcrypt=y
DS_LIB_libdl=y
DS_LIB_libnsl=y
DS_LIB_libpthread=y
DS_LIB_libuClibc=y
DS_LIB_libutil=y
DS_LIB_libipt_iprange=y
DS_LIB_libipt_LOG=y
DS_LIB_libipt_mac=y
DS_LIB_libipt_multiport=y
DS_LIB_libipt_standard=y
DS_LIB_libipt_state=y
DS_LIB_libipt_tcp=y
DS_LIB_libipt_udp=y
DS_LIB_libgpg_error=y
DS_LIB_libgcrypt=y
DS_TARGET_CROSS="mipsel-linux-uclibc-"
DS_TARGET_MAKE_PATH="toolchain/target/bin"
DS_TARGET_CFLAGS_NORMAL=y
DS_TARGET_CFLAGS="-Os -W -Wall -pipe -march=4kc -Wa,--trap"
DS_KERNEL_CROSS="mipsel-unknown-linux-gnu-"
DS_KERNEL_MAKE_PATH="toolchain/kernel/bin"
DS_TARGET_COMPILER_GCC_4_1_0_UCLIBC_0_9_26=y
DS_TARGET_GCC_VERSION="4.1.0"
DS_TARGET_UCLIBC_VERSION="0.9.26"
DS_TARGET_BINUTILS_VERSION="2.16.91.0.6"
DS_TARGET_UCLIBC_CONFIG_MOD=y
DS_TARGET_UCLIBC_REF="mod"
DS_TARGET_GXX=y
DS_TARGET_CCACHE=y
DS_KERNEL_COMPILER_GCC_3_3_2_GLIBC_2_3_2=y
DS_KERNEL_GCC_VERSION="3.3.2"
DS_KERNEL_GLIBC_VERSION="2.3.2"

Ahoi!

ChrisDi
 
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.