ds-0.2.9 + tar-1.15.1 Kompatibilitäts-Patch (auch für Cygwin)

kriegaex

Aktives Mitglied
Mitglied seit
7 Nov 2006
Beiträge
2,927
Punkte für Reaktionen
3
Punkte
36
Hallo an alle, die Ihr noch auf Firmwares mit Kernel 2.4 angewiesen seid und vor dem Problem steht, daß Ihr zwar Firmware-Images bauen könnt, die Fritz!Box sie aber nicht annimmt:

Es trat ein nicht näher spezifizierter Fehler während des Updates auf.

Das liegt oft daran, daß die Firmware mit einer aktuellen Tar-Version (1.16.x) gebaut wurde, die trotz der Option --format=oldgnu Images baut, die mit dem Tar auf den Boxen inkompatibel sind und deswegen nicht entpackt werden können. Kein Entpacken, kein Flashen. :noidea:

Abhilfe schafft eine ältere Tar-Version wie 1.15.1, deren oldgnu-Option noch kompatibel ist mit der Fritz!Box. Diese wird unter tools/tar im Mod-Verzeichnis gebaut und vom Skript anstelle des im System standardmäßig installierten Tar vom Skript fwmod verwendet. So ist es zumindest beim DS-Mod_26. Um dieses Verhalten auch im alten Mod zu erreichen, habe ich diesen Patch für Euch erstellt (ungetestet, bitte Feedback).

Installation: Voraussetzung ist ds-0.2.9 mit Patch 2, zumindest habe ich dort eingebaut. Erst mal den Patch ins Mod-Verzeichnis kopieren und per cd dorthin wechseln. Dann:

Code:
cat tar_old_compatibility.patch.bz2 | bunzip2 | patch -p0

Viel Erfolg beim Modden! :D

Update 1 (09.04.2007, 18:45): Ich habe einen Cygwin-Patch für tar-1.15.1 eingebaut sowie eine Fallunterscheidung in tar.mk, abgeschaut von fwmod: Wenn die Umgebungsvariable TERM den Wert cygwin hat, wird der zusätzliche Patch angewandt vor configure und make. Mangels Cygwin-Umgebung ist es nicht getestet, daher ist Feedback willkommen. Bin gespannt, ob sich Tar damit übersetzen läßt.

Update 2 (10.04.2007, 03:45): Jetzt habe ich doch mal Cygwin installiert und den Tar-Build samt Firmware-Bauens getestet, dabei eine Kleinigkeit gefixt (Dateiendung .exe unter Windows).

Update 3 (26.04.2007, 15:28): Mea maxima culpa: Ein von mir aus der 2.6er Linie übernommenes Detail in fwmod gehörte dort nicht hin, weil es im alten Mod noch kein Makedevs-Skript gibt. Das war mir entfallen. Es führt dazu, daß die geflashte Box nicht zu Ende bootet, weil sie den Mountpoint /dev nicht findet. Wer das manuell beheben möchte nach bereits eingespieltem Patch, suche bitte in der Datei fwmod nach --exclude=dev und nehme es raus, lasse den Rest der Zeile aber intakt (das Patch-Archiv wurde entsprechend aktualisiert):
Code:
# Vorher
	"$TAR" -cf - -C "$ORG_DIR"[COLOR="Red"] --exclude=dev[/COLOR] . | 
# Nachher
	"$TAR" -cf - -C "$ORG_DIR" . |
 

Anhänge

  • tar_old_compatibility.patch.bz2
    14.4 KB · Aufrufe: 38
Zuletzt bearbeitet:
So, jetzt habe ich auch mal getestet: Bei mir ging es nicht mit der alten FW 29.04.21, weil fwmod beim Patchen in build/modified hängen blieb. Das liegt aber nicht am Tar-Patch, auch ohne schlug es fehl. Als ich dann 29.04.29 nahm, lief es glatt durch, mit oder ohne Tar-Patch. Kann es sein, daß Du ein anderes Problem hast?
 
Zuletzt bearbeitet:
Heute morgen war die 21.04.15 noch die aktuellste für die 3030.
Ich habe es probiert und es hat nicht geklappt.
Ich poste mal das Ende der Ausgaben beim erstellen:
ds-0.2.9-opensrc-04.06.tar.bz2 + ds-0.2.9-p2.patch.bz2 + tar_old_compatibility.patch.bz2
Code:
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT argp
-parse.o -MD -MP -MF ".deps/argp-parse.Tpo" -c -o argp-parse.o argp-parse.c; \
        then mv -f ".deps/argp-parse.Tpo" ".deps/argp-parse.Po"; else rm -f ".de
ps/argp-parse.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT argp
-pv.o -MD -MP -MF ".deps/argp-pv.Tpo" -c -o argp-pv.o argp-pv.c; \
        then mv -f ".deps/argp-pv.Tpo" ".deps/argp-pv.Po"; else rm -f ".deps/arg
p-pv.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT argp
-pvh.o -MD -MP -MF ".deps/argp-pvh.Tpo" -c -o argp-pvh.o argp-pvh.c; \
        then mv -f ".deps/argp-pvh.Tpo" ".deps/argp-pvh.Po"; else rm -f ".deps/a
rgp-pvh.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT argp
-xinl.o -MD -MP -MF ".deps/argp-xinl.Tpo" -c -o argp-xinl.o argp-xinl.c; \
        then mv -f ".deps/argp-xinl.Tpo" ".deps/argp-xinl.Po"; else rm -f ".deps
/argp-xinl.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT back
upfile.o -MD -MP -MF ".deps/backupfile.Tpo" -c -o backupfile.o backupfile.c; \
        then mv -f ".deps/backupfile.Tpo" ".deps/backupfile.Po"; else rm -f ".de
ps/backupfile.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT dirn
ame.o -MD -MP -MF ".deps/dirname.Tpo" -c -o dirname.o dirname.c; \
        then mv -f ".deps/dirname.Tpo" ".deps/dirname.Po"; else rm -f ".deps/dir
name.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT base
name.o -MD -MP -MF ".deps/basename.Tpo" -c -o basename.o basename.c; \
        then mv -f ".deps/basename.Tpo" ".deps/basename.Po"; else rm -f ".deps/b
asename.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT stri
pslash.o -MD -MP -MF ".deps/stripslash.Tpo" -c -o stripslash.o stripslash.c; \
        then mv -f ".deps/stripslash.Tpo" ".deps/stripslash.Po"; else rm -f ".de
ps/stripslash.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT excl
ude.o -MD -MP -MF ".deps/exclude.Tpo" -c -o exclude.o exclude.c; \
        then mv -f ".deps/exclude.Tpo" ".deps/exclude.Po"; else rm -f ".deps/exc
lude.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT exit
fail.o -MD -MP -MF ".deps/exitfail.Tpo" -c -o exitfail.o exitfail.c; \
        then mv -f ".deps/exitfail.Tpo" ".deps/exitfail.Po"; else rm -f ".deps/e
xitfail.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT full
-write.o -MD -MP -MF ".deps/full-write.Tpo" -c -o full-write.o full-write.c; \
        then mv -f ".deps/full-write.Tpo" ".deps/full-write.Po"; else rm -f ".de
ps/full-write.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT getd
ate.o -MD -MP -MF ".deps/getdate.Tpo" -c -o getdate.o getdate.c; \
        then mv -f ".deps/getdate.Tpo" ".deps/getdate.Po"; else rm -f ".deps/get
date.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT gett
ime.o -MD -MP -MF ".deps/gettime.Tpo" -c -o gettime.o gettime.c; \
        then mv -f ".deps/gettime.Tpo" ".deps/gettime.Po"; else rm -f ".deps/get
time.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT hash
.o -MD -MP -MF ".deps/hash.Tpo" -c -o hash.o hash.c; \
        then mv -f ".deps/hash.Tpo" ".deps/hash.Po"; else rm -f ".deps/hash.Tpo"
; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT huma
n.o -MD -MP -MF ".deps/human.Tpo" -c -o human.o human.c; \
        then mv -f ".deps/human.Tpo" ".deps/human.Po"; else rm -f ".deps/human.T
po"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT loca
lcharset.o -MD -MP -MF ".deps/localcharset.Tpo" -c -o localcharset.o localcharse
t.c; \
        then mv -f ".deps/localcharset.Tpo" ".deps/localcharset.Po"; else rm -f
".deps/localcharset.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT mode
change.o -MD -MP -MF ".deps/modechange.Tpo" -c -o modechange.o modechange.c; \
        then mv -f ".deps/modechange.Tpo" ".deps/modechange.Po"; else rm -f ".de
ps/modechange.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT quot
e.o -MD -MP -MF ".deps/quote.Tpo" -c -o quote.o quote.c; \
        then mv -f ".deps/quote.Tpo" ".deps/quote.Po"; else rm -f ".deps/quote.T
po"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT quot
earg.o -MD -MP -MF ".deps/quotearg.Tpo" -c -o quotearg.o quotearg.c; \
        then mv -f ".deps/quotearg.Tpo" ".deps/quotearg.Po"; else rm -f ".deps/q
uotearg.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT safe
-read.o -MD -MP -MF ".deps/safe-read.Tpo" -c -o safe-read.o safe-read.c; \
        then mv -f ".deps/safe-read.Tpo" ".deps/safe-read.Po"; else rm -f ".deps
/safe-read.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT safe
-write.o -MD -MP -MF ".deps/safe-write.Tpo" -c -o safe-write.o safe-write.c; \
        then mv -f ".deps/safe-write.Tpo" ".deps/safe-write.Po"; else rm -f ".de
ps/safe-write.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT save
-cwd.o -MD -MP -MF ".deps/save-cwd.Tpo" -c -o save-cwd.o save-cwd.c; \
        then mv -f ".deps/save-cwd.Tpo" ".deps/save-cwd.Po"; else rm -f ".deps/s
ave-cwd.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT save
dir.o -MD -MP -MF ".deps/savedir.Tpo" -c -o savedir.o savedir.c; \
        then mv -f ".deps/savedir.Tpo" ".deps/savedir.Po"; else rm -f ".deps/sav
edir.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT xmal
loc.o -MD -MP -MF ".deps/xmalloc.Tpo" -c -o xmalloc.o xmalloc.c; \
        then mv -f ".deps/xmalloc.Tpo" ".deps/xmalloc.Po"; else rm -f ".deps/xma
lloc.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT xall
oc-die.o -MD -MP -MF ".deps/xalloc-die.Tpo" -c -o xalloc-die.o xalloc-die.c; \
        then mv -f ".deps/xalloc-die.Tpo" ".deps/xalloc-die.Po"; else rm -f ".de
ps/xalloc-die.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT xget
cwd.o -MD -MP -MF ".deps/xgetcwd.Tpo" -c -o xgetcwd.o xgetcwd.c; \
        then mv -f ".deps/xgetcwd.Tpo" ".deps/xgetcwd.Po"; else rm -f ".deps/xge
tcwd.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT xstr
tol.o -MD -MP -MF ".deps/xstrtol.Tpo" -c -o xstrtol.o xstrtol.c; \
        then mv -f ".deps/xstrtol.Tpo" ".deps/xstrtol.Po"; else rm -f ".deps/xst
rtol.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT xstr
toul.o -MD -MP -MF ".deps/xstrtoul.Tpo" -c -o xstrtoul.o xstrtoul.c; \
        then mv -f ".deps/xstrtoul.Tpo" ".deps/xstrtoul.Po"; else rm -f ".deps/x
strtoul.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT xstr
toumax.o -MD -MP -MF ".deps/xstrtoumax.Tpo" -c -o xstrtoumax.o xstrtoumax.c; \
        then mv -f ".deps/xstrtoumax.Tpo" ".deps/xstrtoumax.Po"; else rm -f ".de
ps/xstrtoumax.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT geto
pt.o -MD -MP -MF ".deps/getopt.Tpo" -c -o getopt.o getopt.c; \
        then mv -f ".deps/getopt.Tpo" ".deps/getopt.Po"; else rm -f ".deps/getop
t.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT geto
pt1.o -MD -MP -MF ".deps/getopt1.Tpo" -c -o getopt1.o getopt1.c; \
        then mv -f ".deps/getopt1.Tpo" ".deps/getopt1.Po"; else rm -f ".deps/get
opt1.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT mkti
me.o -MD -MP -MF ".deps/mktime.Tpo" -c -o mktime.o mktime.c; \
        then mv -f ".deps/mktime.Tpo" ".deps/mktime.Po"; else rm -f ".deps/mktim
e.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT erro
r.o -MD -MP -MF ".deps/error.Tpo" -c -o error.o error.c; \
        then mv -f ".deps/error.Tpo" ".deps/error.Po"; else rm -f ".deps/error.T
po"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT fnma
tch.o -MD -MP -MF ".deps/fnmatch.Tpo" -c -o fnmatch.o fnmatch.c; \
        then mv -f ".deps/fnmatch.Tpo" ".deps/fnmatch.Po"; else rm -f ".deps/fnm
atch.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT getc
wd.o -MD -MP -MF ".deps/getcwd.Tpo" -c -o getcwd.o getcwd.c; \
        then mv -f ".deps/getcwd.Tpo" ".deps/getcwd.Po"; else rm -f ".deps/getcw
d.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT obst
ack.o -MD -MP -MF ".deps/obstack.Tpo" -c -o obstack.o obstack.c; \
        then mv -f ".deps/obstack.Tpo" ".deps/obstack.Po"; else rm -f ".deps/obs
tack.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT stpc
py.o -MD -MP -MF ".deps/stpcpy.Tpo" -c -o stpcpy.o stpcpy.c; \
        then mv -f ".deps/stpcpy.Tpo" ".deps/stpcpy.Po"; else rm -f ".deps/stpcp
y.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/usr/lib\" -I. -I. -I..     -O2 -Wall -MT strc
hrnul.o -MD -MP -MF ".deps/strchrnul.Tpo" -c -o strchrnul.o strchrnul.c; \
        then mv -f ".deps/strchrnul.Tpo" ".deps/strchrnul.Po"; else rm -f ".deps
/strchrnul.Tpo"; exit 1; fi
rm -f libtar.a
ar cru libtar.a prepargs.o rtapelib.o allocsa.o argmatch.o argp-ba.o argp-eexst.
o argp-fmtstream.o argp-fs-xinl.o argp-help.o argp-parse.o argp-pv.o argp-pvh.o
argp-xinl.o backupfile.o dirname.o basename.o stripslash.o exclude.o exitfail.o
full-write.o getdate.o gettime.o hash.o human.o localcharset.o modechange.o quot
e.o quotearg.o safe-read.o safe-write.o save-cwd.o savedir.o xmalloc.o xalloc-di
e.o xgetcwd.o xstrtol.o xstrtoul.o xstrtoumax.o getopt.o getopt1.o mktime.o erro
r.o fnmatch.o getcwd.o obstack.o stpcpy.o strchrnul.o
ranlib libtar.a
/bin/sh ./config.charset 'i686-pc-cygwin' > t-charset.alias
mv t-charset.alias charset.alias
sed -e '/^#/d' -e 's/@''PACKAGE''@/tar/g' ref-add.sin > t-ref-add.sed
mv t-ref-add.sed ref-add.sed
sed -e '/^#/d' -e 's/@''PACKAGE''@/tar/g' ref-del.sin > t-ref-del.sed
mv t-ref-del.sed ref-del.sed
make[4]: Leaving directory `/home/Kevin/ds-0.2.9/source/tar-1.15.1/lib'
make[3]: Leaving directory `/home/Kevin/ds-0.2.9/source/tar-1.15.1/lib'
Making all in rmt
make[3]: Entering directory `/home/Kevin/ds-0.2.9/source/tar-1.15.1/rmt'
gcc -O2 -Wall    rmt.c   -o rmt
rmt.c:34:20: system.h: No such file or directory
rmt.c:35:23: localedir.h: No such file or directory
rmt.c:36:23: safe-read.h: No such file or directory
rmt.c:37:24: full-write.h: No such file or directory
rmt.c:63: error: `BUFSIZ' undeclared here (not in a function)
rmt.c:67: error: parse error before '*' token
rmt.c:67: warning: type defaults to `int' in declaration of `debug_file'
rmt.c:67: warning: data definition has no type or storage class
rmt.c: In function `private_strerror':
rmt.c:91: warning: implicit declaration of function `_'
rmt.c:91: warning: return makes pointer from integer without a cast
rmt.c:92: warning: return makes pointer from integer without a cast
rmt.c: In function `report_error_message':
rmt.c:100: warning: implicit declaration of function `fprintf'
rmt.c:102: warning: implicit declaration of function `sprintf'
rmt.c:103: warning: implicit declaration of function `full_write'
rmt.c:103: error: `STDOUT_FILENO' undeclared (first use in this function)
rmt.c:103: error: (Each undeclared identifier is reported only once
rmt.c:103: error: for each function it appears in.)
rmt.c:103: warning: implicit declaration of function `strlen'
rmt.c: In function `report_numbered_error':
rmt.c:112: error: `STDOUT_FILENO' undeclared (first use in this function)
rmt.c: In function `get_string':
rmt.c:122: warning: implicit declaration of function `safe_read'
rmt.c:122: error: `STDIN_FILENO' undeclared (first use in this function)
rmt.c:123: warning: implicit declaration of function `exit'
rmt.c: In function `prepare_input_buffer':
rmt.c:138: warning: implicit declaration of function `free'
rmt.c:140: warning: implicit declaration of function `malloc'
rmt.c:144: warning: passing arg 2 of `fprintf' makes pointer from integer withou
t a cast
rmt.c:146: warning: implicit declaration of function `N_'
rmt.c:146: warning: passing arg 1 of `report_error_message' makes pointer from i
nteger without a cast
rmt.c:155: error: `INT_MAX' undeclared (first use in this function)
rmt.c: In function `decode_oflag':
rmt.c:180: warning: implicit declaration of function `strtol'
rmt.c:184: warning: implicit declaration of function `ISSPACE'
rmt.c:195: error: `O_CREAT' undeclared (first use in this function)
rmt.c:195: error: initializer element is not constant
rmt.c:195: error: (near initialization for `table[0].value')
rmt.c:195: error: initializer element is not constant
rmt.c:195: error: (near initialization for `table[0]')
rmt.c:199: error: `O_EXCL' undeclared (first use in this function)
rmt.c:199: error: initializer element is not constant
rmt.c:199: error: (near initialization for `table[1].value')
rmt.c:199: error: initializer element is not constant
rmt.c:199: error: (near initialization for `table[1]')
rmt.c:209: error: `O_RDONLY' undeclared (first use in this function)
rmt.c:209: error: initializer element is not constant
rmt.c:209: error: (near initialization for `table[2].value')
rmt.c:209: error: initializer element is not constant
rmt.c:209: error: (near initialization for `table[2]')
rmt.c:210: error: `O_RDWR' undeclared (first use in this function)
rmt.c:210: error: initializer element is not constant
rmt.c:210: error: (near initialization for `table[3].value')
rmt.c:210: error: initializer element is not constant
rmt.c:210: error: (near initialization for `table[3]')
rmt.c:217: error: `O_TRUNC' undeclared (first use in this function)
rmt.c:217: error: initializer element is not constant
rmt.c:217: error: (near initialization for `table[4].value')
rmt.c:217: error: initializer element is not constant
rmt.c:217: error: (near initialization for `table[4]')
rmt.c:218: error: `O_WRONLY' undeclared (first use in this function)
rmt.c:218: error: initializer element is not constant
rmt.c:218: error: (near initialization for `table[5].value')
rmt.c:218: error: initializer element is not constant
rmt.c:218: error: (near initialization for `table[5]')
rmt.c:227: warning: implicit declaration of function `strncmp'
rmt.c:229: warning: implicit declaration of function `strchr'
rmt.c: In function `usage':
rmt.c:256: error: `stderr' undeclared (first use in this function)
rmt.c:257: warning: passing arg 2 of `fprintf' makes pointer from integer withou
t a cast
rmt.c:260: warning: implicit declaration of function `printf'
rmt.c:266: warning: passing arg 1 of `printf' makes pointer from integer without
 a cast
rmt.c:267: error: `PACKAGE_BUGREPORT' undeclared (first use in this function)
rmt.c:267: warning: passing arg 1 of `printf' makes pointer from integer without
 a cast
rmt.c: In function `main':
rmt.c:299: error: `PACKAGE_NAME' undeclared (first use in this function)
rmt.c:299: error: `PACKAGE_VERSION' undeclared (first use in this function)
rmt.c:301: warning: implicit declaration of function `puts'
rmt.c:301: warning: passing arg 1 of `puts' makes pointer from integer without a
 cast
rmt.c:316: warning: implicit declaration of function `fopen'
rmt.c:316: warning: assignment makes pointer from integer without a cast
rmt.c:319: error: `errno' undeclared (first use in this function)
rmt.c:322: warning: implicit declaration of function `setbuf'
rmt.c:328: error: `STDIN_FILENO' undeclared (first use in this function)
rmt.c:345: warning: implicit declaration of function `close'
rmt.c:347: warning: implicit declaration of function `open'
rmt.c:347: error: `MODE_RW' undeclared (first use in this function)
rmt.c:400: warning: passing arg 1 of `report_error_message' makes pointer from i
nteger without a cast
rmt.c:407: warning: implicit declaration of function `atoi'
rmt.c:409: error: `SEEK_SET' undeclared (first use in this function)
rmt.c:410: error: `SEEK_CUR' undeclared (first use in this function)
rmt.c:411: error: `SEEK_END' undeclared (first use in this function)
rmt.c:413: warning: passing arg 1 of `report_error_message' makes pointer from i
nteger without a cast
rmt.c:416: warning: implicit declaration of function `lseek'
rmt.c:431: error: `STDOUT_FILENO' undeclared (first use in this function)
rmt.c:442: warning: implicit declaration of function `atol'
rmt.c:450: error: `SAFE_READ_ERROR' undeclared (first use in this function)
rmt.c:452: warning: passing arg 2 of `fprintf' makes pointer from integer withou
t a cast
rmt.c:454: warning: passing arg 1 of `report_error_message' makes pointer from i
nteger without a cast
rmt.c:562: warning: passing arg 2 of `fprintf' makes pointer from integer withou
t a cast
rmt.c:564: warning: passing arg 1 of `report_error_message' makes pointer from i
nteger without a cast
rmt.c: At top level:
rmt.c:63: error: storage size of `reply_buffer' isn't known
rmt.c:63: warning: 'reply_buffer' defined but not used
make[3]: *** [rmt] Error 1
make[3]: Leaving directory `/home/Kevin/ds-0.2.9/source/tar-1.15.1/rmt'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/Kevin/ds-0.2.9/source/tar-1.15.1'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/Kevin/ds-0.2.9/source/tar-1.15.1'
make: *** [source/tar-1.15.1/src/tar] Error 2
ohne den tar_old_compatibility.patch.bz2 ging das erstellen heute morgen noch.
 
Ach so, Du hast kein Problem beim Erstellen der Firmware, sondern beim Kompilieren von tar-1.15.1. Hast Du etwa Cygwin? Diese Zeile aus Deinem Post bringt mich auf die Idee:
Code:
/bin/sh ./config.charset 'i686-pc-cygwin' > t-charset.alias

Ob dieses Tar-Paket unter Cygwin so gebaut werden kann, weiß ich nicht. Was ich aber weiß, weil ich früher selbst Cygwin verwendete, ist, daß Du Dir eine ältere Tar-Version über die Cygwin-Konfiguration auch so ziehen kannst, fertig gebaut. Die kannst Du dann nach tools kopieren, tar.mk wieder aus tools/make/Makefile.in entfernen und den Rest des Patches so lassen. Dann wird das alte tar verwendet, denn fwmod ist ja immer noch gepatcht und ruft tools/tar auf.
 
Zuletzt bearbeitet:
ja, ich verwende Cygwin.
Ich weiß aber nicht, was du mit
kriegaex schrieb:
eine ältere Tar-Version über die Cygwin-Konfiguration auch so ziehen kannst, fertig gebaut.
meinst. Muss ich das Setup Programm nochmal holen und irgendwas zusätzlich installieren?
Edit:
Ich habe auch noch eine Kubunto 6.06.1 Live-CD hier rummliegen, meinst du, damit könnte man ohne Installation was machen?
Edit2:
Ich hab diese Anleitung Howto_ds-mod_cygwin.pdf verwendet um Cygwin zu Installieren.
 
Zuletzt bearbeitet:
tar-1.15.1 für Cygwin

Auf Linux als Build-Plattform umzusteigen, wäre sicher keine schlechte Idee, aber solange es nur am Tar-Build liegt, daß Du Probleme hast, kannst Du bei Cygwin bleiben und das Folgende versuchen:
  • Normalerweise kann man mit dem Cygwin-Setup anstatt der aktuellen auch eine ältere Programmversion installieren, aber das ist ja nicht, was Du möchtest. Du möchtest ja eine ältere zusätzlich im Mod-Unterverzeichnis tools haben. Davon abgesehen, liegt eine so alte Version sowieso auf keinem normalen Mirror mehr.
  • Ältere Cygwin-Pakete für Tar habe ich hier für Dich gefunden: http://cygwin.paracoda.com/release/tar/. Dort kann man entweder Source-Pakete holen (bestehen aus Original-Sourcen plus Cygwin-Patch) oder gleich Binärpakete. Letzteres empfehle ich Dir, da Du Dich nicht so gut auszukennen scheinst.
  • Also holst Du Dir http://cygwin.paracoda.com/release/tar/tar-1.15.1-4.tar.bz2 und entpackst es mit
    Code:
    tar -xvjf tar-1.15.1-4.tar.bz2 usr/bin/tar.exe
    Im aktuellen Verzeichnis findest du dann usr/bin/tar.exe.
  • Jetzt kopierst Du das entpackte tar.exe nach ds-0.2.9/tools, entfernst die Zeile für tar.mk (Update: nein, muß TOOLS+=tar heißen) wieder aus tools/make/Makefile.in, damit nicht versucht wird, Tar neu zu bauen.
  • Ohne es getestet zu haben (habe kein Cygwin mehr installiert), hoffe ich, daß es damit dann klappt und Du erfolgreich einen make ausführen kannst.
 
Zuletzt bearbeitet:
In meiner Makefile.in steht nirgens tar.mk. Daher werde ich jetzt erneut versuchen das Packet zu bauen.
Edit:
Jetzt habe ich erneut gebaut und es ging nicht. Dannach hab ich die Zeile TOOLS+=tar entfernt und jetzt ist das Skript bei Schritt 2
Edit2:
Das Skript kam erfolgreich durch, werde das Image jetzt einspielen.

 
Zuletzt bearbeitet:
Update 1 (09.04.2007, 18:45): Es gibt jetzt ein Download-Paket mit Cygwin-Patch, so daß also Tar auch unter Cygwin gebaut werden können sollte. Bitte testen (habe kein Cygwin) - siehe Posting #1.

Anmerkung: Inzwischen ist es getestet und gefixt, es gibt jetzt Update 2.
 
Zuletzt bearbeitet:
Doppelfritz, versteh doch bitte: Der Patch ist dafür gedacht, überhaupt ein Image erzeugen zu können, das von der Box als Update angenommen wird. Ohne den Patch kriegst Du das nicht hin. Wenn aber die Box Dein Image angenommen hat, liegt es nicht am Patch zum Bauen der Firmware, sondern am Inhalt der Firmware selbst, nämlich den darin befindlichen AVM- und DS-Mod-Paketen. Falls Letzteres bei Dir der Fall sein sollte, dann mach dafür bitte einen neuen Thread auf, denn spätestens ab da ist es dann off-topic hier.
 
Ich weiß, dass der Patch für das erstellen ist, aber ich habe mit dem Post gemeint, dass ich erst versuche, das Mod auf meine Box zu spielen, bevor ich für dich den Patch ausprobire.
Ich hab den Patch gerade ausprobirt. Ich habe erst das Ds-Mod verzeichniss gelöscht, aus deinem ersten Post die Datei runtergeladen und dann folgendes gemacht:
Code:
tar -xvjf ds-0.2.9-opensrc-04.06.tar.bz2
patch -p0 < ds-0.2.9-p2.patch
cd ds-0.2.9/
#per Windows copierfunktion tar_old_compatibility.patch.bz2 in ds-0.2.9 kopieren
cat tar_old_compatibility.patch.bz2 | bunzip2 | patch -p0
make menuconfig
#einstellungen machen (Wlan 3030 + bftp, den Rest gelassen, wie es war)
make
Es wurde kein Image erstellt.
strip: tools/tar: No such file or directory
make: *** [tools/tar] Error 1
 
Kannst Du in fwmod mal an TAR_TOOL die Endung .exe dran hängen?
 
Ich hab jetzt
Code:
#ds-mod verzeichniss löschen
tar -xvjf ds-0.2.9-opensrc-04.06.tar.bz2
patch -p0 < ds-0.2.9-p2.patch
cd ds-0.2.9/
#per Windows copierfunktion tar_old_compatibility.patch.bz2 in ds-0.2.9 kopieren
cat tar_old_compatibility.patch.bz2 | bunzip2 | patch -p0
#in fwmod aus "TAR_TOOL="tar"" "TAR_TOOL="tar.exe"" gemacht 
make menuconfig
#einstellungen machen (Wlan 3030 + bftp)
make
gemacht und es ging nicht.
Ich habe aber bemerkt, dass in tools\ gar kein tar.exe vorhanden ist.
Außerdem sieht es so aus, als ob das Skript wieder nur nach tar und nicht nach tar.exe gesucht hat. (wieder
strip: tools/tar: No such file or directory
make: *** [tools/tar] Error 1)

Edit:
Nach dem Erstellversuch ist eine tar.exe vorhanden
 
Update 2: Patch jetzt Cygwin-fähig und getestet

Update 2 (10.04.2007, 03:55): Die Trial-and-Error-Testserie meines "im Blindflug" programmierten Cygwin-Hacks für tar-1.15.1 mit doppelfritz hat mir klar gemacht, daß es so zu lange dauern würde. Und er ist ja schließlich nicht mein Test-Sklave. Zwar wollte ich in Cygwin keine Zeit 'reinhängen, aber da ich nun schon einmal angefangen hatte, habe ich weiter gemacht und Cygwin (nach langer Zeit wieder) selbst installiert. Die Kleinigkeiten, die den Build am Funktionieren hinderten, waren schnell gefunden und eingebaut (vgl. aktualisierter Download in Posting #1). Aber mir ist mal wieder schmerzhaft aufgefallen, wie unglaublich langsam ein Configure + Make für so ein kleines Paket wie Tar unter Cygwin geht (>30 min im Vergleich zu 1-2 min in VMware). Ich empfehle wirklich jedem den Umstieg auf ein Linux seiner Wahl (bei mir Ubuntu 6.10) im VMware Player. Mit ein paar Tricks kriegt man dort auch die VMware Tools und somit Copy & Paste sowie dynamische Maus (Erkennung, wann innerhalb und außerhalb des Emulationsfensters) zwischen Host und Guest schön zum Laufen.
 
Update 3: Bugfix in fwmod

Siehe Posting #1. An dieser Stelle gilt mein Dank dem Benutzer Notfallplan, der mir mit seinen Logs geholfen hat, den Fehler überhaupt zu bemerken (siehe dort). Ich selbst verwende ja keine Kernel-2.4-Firmware und kann daher nicht selbst testen.
 
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.