FRITZ!Box-geeignetes tar für Windows

leo22

Aktives Mitglied
Mitglied seit
13 Apr 2005
Beiträge
920
Punkte für Reaktionen
6
Punkte
18
Ich wollte mal wissen, wie ich so ganz auf die Schnelle unter Windows ein Pseudo-Image für die FRITZ!Box erstellen kann.
Aber auf meine Frage hier: http://www.ip-phone-forum.de/forum/viewtopic.php?p=176402#176402 hat wohl niemand eine Antwort :(
leo22 schrieb:
olistudent schrieb:
Und du musst aufpassen, dass du ein "altes" tar verwendest,

weil das busybox tar nur die "alten" Archive lesen kann.
...
Kann also mal jemand genaue Angaben zu der notwendigen tar-Version machen?

[EDIT] Die tar-Version aus dem Mod-Script von haveaniceday, mit der es funktionieren müsste, ist GNU tar 1.13.25.
...
Was blieb mir da also übrig? Ich mußte mich selbst auf die Suche begeben. Die Unterschiede zwischen dem alten und neuen tar-Format herauszufinden, war mir jedoch zu mühselig.

Aber für tar unter Windows gibt es die folgende Lösung: Man nimmt die Cygwin-tar-Version. Ich habe es mit der Version 1.13.25 probiert, und es funktioniert.

Für alle, die nicht aus den umfangreichen Cygwin-Dateien das richtige tar raussuchen wollen, habe ich mal das Notwendige zusammengestellt.

Wenn man also haveanicedays Update für die debug.cfg zum Telnet-Start in der Datei var/install auf der Festplatte ablegt, dann erhält man mit:
Code:
tar.exe --owner 0 --group 0 -cf beispiel.image var/install
das Image beispiel.image, das über die Firmware-Update-Funktion auf die Box geladen werden kann.
 

Anhänge

  • tar_fuer_windows.zip
    478.3 KB · Aufrufe: 674
uh da soltest aufpassen den zu 100% sind hinterher dei berechtigungen der einzelden dateien anders
 
Ja, da hast du recht. Schon deshalb weil es ja bei Linux mehr verschiedene Berechtigungen gibt als bei Windows. Aber es funktioniert bei mir trotzdem.

Wenn meine unter Windows erstellte Datei install nur das Archiv-Attribut besitzt, entsteht nach dem Archivieren mit tar folgende install-win im Gegensatz zur Datei insatll-ori aus dem Original-Firmware-Image:

Code:
install-win   -rwxrwxrwx 0/0
install-ori   -rwxrwxr-x 0/0

Als ich diese Datei als Firmware-Update einspielte, konnte ich z. B. bei meiner Box die OEM-Version auf 1und1 und zurück auf avm setzen.
 
Man kann einfach busybox-1.00-pre3, die auch auf der FBox eingesetzt wird, für den Hostrechner kompilieren und die Option zur Erzeugung von tar-Archiven aktivieren.

Der tar-Symlink zur busybox sollte dann vielleicht nicht unter /usr/bin landen - aber hier ging´s ja eh um Windows ;-)

Sebi
 
Hm.......
Bei mir funktioniert da was nicht:
tar.exe --owner=0 --group=0 --mode=+rwx -cf mein.image var/install
erzeugt das image wie gewünscht.
Es wird auch auf die Box geladen. ls -l /var/install zeigt:
-rwxrwxrwx 1 root root 61 Aug 23 23:10 install
Aber es wird nicht ausgeführt!
Die Fritz!Box-html-Oberfläche meldet "Nicht näher spezifizierter Fehler" und die DSL-LED erlischt.
Was mag das sein?
 
Ich pack meine Images immer mit "tar cf mein.image var/"!?
Stimmt das mit dem var/install, wird da der Pfad mitgepackt?
Ansonsten kannst du mal unter /var/tmp schauen, da sollten nach misslungenem Update 2 Errorlogs liegen...

MfG Oliver
 
Ich werd verrückt, jetzt funktionierts!
Hab exakt die gleiche Syntax benutzt wie gestern, aber diesmal macht die FB mit! :gruebel:

Das Image von gestern beginnt so:
Code:
00000000h: 76 61 72 2F 69 6E 73 74 61 6C 6C 00 00 00 00 00 ; var/install.....
00000010h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000030h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000040h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000050h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000060h: 00 00 00 00 30 31 30 30 37 37 37 00 30 30 30 30 ; ....0100777.0000
00000070h: 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ; 000.0000000.0000
00000080h: 30 30 30 30 31 32 30 00 31 30 33 30 32 37 31 34 ; 0000120.10302714
00000090h: 34 30 31 00 30 31 30 31 37 33 00 20 30 00 00 00 ; 401.010173. 0...
000000a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000100h: 00 75 73 74 61 72 20 20 00 00 00 00 00 00 00 00 ; .ustar  ........
00000110h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000120h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000130h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
Und das von heute so:
Code:
00000000h: 76 61 72 2F 69 6E 73 74 61 6C 6C 00 00 00 00 00 ; var/install.....
00000010h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000030h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000040h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000050h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000060h: 00 00 00 00 30 31 30 30 37 37 37 00 30 30 30 30 ; ....0100777.0000
00000070h: 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ; 000.0000000.0000
00000080h: 30 30 30 30 31 32 30 00 31 30 33 30 32 37 31 34 ; 0000120.10302714
00000090h: 34 30 31 00 30 31 30 31 31 36 00 20 30 00 00 00 ; 401.010116. 0...
000000a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000100h: 00 75 73 74 61 72 20 20 00 00 00 00 00 00 00 00 ; .ustar  ........
00000110h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000120h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000130h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
Der Rest ist identisch, Unterschiede nur in den Bytes 98h und 99h. :noidea:
Bei haveaniceday sieht der Anfang so aus:
Code:
00000000h: 76 61 72 2F 69 6E 73 74 61 6C 6C 00 00 00 00 00 ; var/install.....
00000010h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000030h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000040h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000050h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000060h: 00 00 00 00 30 31 30 30 37 35 35 00 30 30 30 31 ; ....0100755.0001
00000070h: 37 35 31 00 30 31 37 37 37 37 36 00 30 30 30 30 ; 751.0177776.0000
00000080h: 30 30 30 30 31 36 37 00 31 30 31 37 33 37 35 37 ; 0000167.10173757
00000090h: 36 31 30 00 30 31 32 37 31 36 00 20 30 00 00 00 ; 610.012716. 0...
000000a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000100h: 00 75 73 74 61 72 20 20 00 66 72 69 74 7A 00 00 ; .ustar  .fritz..
00000110h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000120h: 00 00 00 00 00 00 00 00 00 6E 6F 67 72 6F 75 70 ; .........nogroup
00000130h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
Wie bekommt man das hin? Mit dieser tar-Version wahrscheinlich garnicht...

Im var/tmp/update_error.log steht: Prüfsummenfehler.
Das ist seltsam, denn gestern habe ich noch (mit Erfolg) versucht, haveanicedays header einfach in mein Image reinzukopieren. Da hätte die Box doch auch Prüfsummenfehler schreien müssen?
 
Pumbaa80 schrieb:
Wie bekommt man das hin? Mit dieser tar-Version wahrscheinlich garnicht...
haveniceday hatte als owner "fritz" angegeben und keine gruppe. Kann man machen, muss man aber nicht. Ich rufe es unter Linux mit nur mit "owner 0" ohne gruppe auf. Geht auch...
 
Klar, das cygwin-tar meldet aber

tar: fritz: Invalid owner
tar: Error is not recoverable: exiting now

Will also einfach nicht :-(
Egal, das ist ja eigentlich alles nicht so wichtig...
 
Ich schaue mal heute wieder hier rein, da ich aus dem Urlaub zurück bin. Kann auf die Schnelle eure Probleme nicht richtig nachvollziehen. Nur soviel: So wie oben beschrieben funktioniert es bei mir mit dem Image zum Ändern des OEM-Eintrages hervorragend, anderes habe ich nicht getestet.

Das ungepackte File muss vorher in var/install liegen und die Verzeichnisstruktur wird dann in das tar-File mit übernommen. Und: wenn das install-File mit einem Windows-Editor erstellt wird, muss dieser das Unix-konforme Zeilenende mit nur 0AH statt 0DH 0AH bei DOS beherrschen!
 
Hi
Also wenn man weder Group noch Owner oder Mode angibt, funkts auch (Cygwin). So hab ich meine WolMod Testimages gepackt.
Gruß, Peter
 
MaZderMind schrieb:
Also wenn man weder Group noch Owner oder Mode angibt, funkts auch (Cygwin)
Bei den Original-AVM-Firmware-Files steht bei Owner und Group jeweils 0 (siehe oben). Ein solches tar-File erzeugt man mit --owner 0 --group 0
 
hmm, ich will das jetzt auch hinbekommen mit den eigenen Images, doch bekomme ich auch einen "nicht näher spezifizierten Fehler" beim einspielen meines mittels cygwin-tar erzeugten Images. was muss denn in der "install" datei im verzeichnis /var drinstehen? wenn ich einfach den wol-mod verpacken möchte und den inhalt der wol.sh in die "install"-datei einfüge passiert leider nichts... :?
Code:
#!/bin/sh

#WakeOnLan installieren

ETHERWAKE=http://www.akk.org/~enrik/fbox/OLD/etherwake

#Herunterladen und installieren von etherwake
mkdir /var/wol
wget ${ETHERWAKE} -P /var/wol
chmod 755 /var/wol/etherwake


#Webserver umleiten um eigene Skripte ausführen zu können
cd /var
mkdir -p html.new/cgi-bin
cp -d html/index.html html/html html.new
for script in html/cgi-bin/*; do
  ln -s ../../html.orig/cgi-bin/$(basename $script) html.new/cgi-bin
  done
mv html html.orig
mv html.new html

#HTML Formular für die Eingabe der MAC-Adresse erstellen
#http://fritz.box/wol.html
echo '<html>
<body>
<form method="GET" action ="/cgi-bin/wol.cgi">         
Bitte geben Sie die MAC-Adresse des zu weckenden PC´s ein:






<input size="2" name="MAC1" value="00">
<input size="2" name="MAC2" value="00">
<input size="2" name="MAC3" value="00">
<input size="2" name="MAC4" value="00">
<input size="2" name="MAC5" value="00">
<input size="2" name="MAC6" value="00">






<input type="submit" value="PC aufwecken"> 
</form>
</body>
</html>' > html/wol.html
 
#CGI-Skript für WOL: http://fritz.box/cgi-bin/wol.cgi
echo "#!/bin/sh
echo -e 'Content-type: text/html'
echo ''
echo '<html><body>'
ADRESSE=\`echo \${QUERY_STRING}|sed -e 's/\&/\:/g' -e 's/\=//g' -e 's/MAC.//g'\`

if /var/wol/etherwake \$ADRESSE 2>/dev/null; then
echo 'Befehl wurde erfolgreich ausgeführt!'
else
echo 'Es gab einen Fehler beim ausführen des Befehls!

'
fi
echo '


'
echo '<a href=\"/wol.html\">Weitere Anfrage</a>'
echo '</body></html>'" > html/cgi-bin/wol.cgi

chmod +x html/cgi-bin/wol.cgi
 
Hi
Lass dein install mal gant am anfang den telnet-deamon (/usr/sbin/telnetd -l /sbin/ar7login;) ausführen. Nach (erfolglosem) einspielen des Updates kannst du dann immerhin per telnet auf die Box. Dann kannst du dir anschauen was in den logfiles unter /var/tmp/ steht.

Eine sache die mir mehrfach passiert ist - hast du das installscript auch mit Unix-Zeilenumbrüchen gespeichert? Lade die install mal manuell auf die box (wget oder tftp) und schau sie dir mal mit vi an. Wenn da lauter ^M oder andere Escapesequenzen am Zeilenende kleben dann ist es eindeutig obiger Fehler.

Gruß, Peter
 
Moin,

zum Thema "richtiges tar" hätte ich noch etwas:

Ich selbst verwende GNU-tar 1.15 (Linux). Grundsätzlich kann zumindest unter GNU-Linux,Unix... jede neue tar-Version auch die alten Formate lesen und schreiben! Die Fritz!Box hat's gern im Format GNU tar <= 1.12 (oldgnu).

[highlight=yellow:92c70b7820]tar --format=oldgnu -cf bla.tar bla/*[/highlight:92c70b7820]

Ich hatte es auch mit --format=gnu (GNU tar 1.13.x) probiert. Wollte meine Box allerdigs nicht haben.

bis denne....
 
tar archiv für fritzbox upload

Grüß' Euch,

ich hoffe es hilft jemandem weiter:

Ich habe eine Fritz!Fon WLAN Box 7050 mit Firmware 04.15 dazu einen Rechner mit Fedora FC5. Angeregt durch http://www.tecchannel.de/server/linux/432803/ habe ich versucht einen FTP-Server zu installieren. Jedesmal wenn ich eine vorgefertigte Image Datei verwendete klappte es mit dem Update, bei meinen eigenen nicht.

Letztendlich habe ich mir aus verschiedenen Beiträgen hier zusammengereimt, daß ein besonderes, altes tar Format nötig ist, aber auch Gruppe und Eigentümer eine Rolle spielen. Mein GNU tar ist 1.15.90 und über das GUI ( File Roller 2.14.3 ) kann man ( oder ich zumindest ) die Erstellung nur unwesentlich beeinflussen.

Letzlich funktioniert hat das CLI:

tar --format=oldgnu --group=0 --owner=0 -cvf archivneu.tar verzeichnis/*

ebenfalls OK

tar --format=oldgnu --group=0 --owner=0 -cvf archivneu.tar ./verzeichnis/*

damit ( ./ )wird ein Leerverzeichnis als Basis erstellt ( die AVM images sehen so aus )

Vielleicht läßt sich ein Howto an etwas prominenterer Stelle dazu einrichten, das hat wiedermal richtig Zeit gekostet.

Gruß,

tdneraynotna
 
Hi,

leider scheint's mit dem taren der pseudo images unter windows nicht so einfach zu sein.
Beim mit (Fritz!Box SL WLAN 09.04.34) hat es geklappt mit tar_fur_windows.zip, danke leo22 und folgender command line:

tar.exe --posix --group=0 --owner=0 -cvf pseudo.image ./var/*

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