Alice 7570 mit 16 MB Flash (war: nur 8 MB; fritzen fehlgeschlagen und kein Rückweg)

klasse. PM mir mal 1, 2 und 5. da dürfte nichts persönliches drin sein.

mir fällt dabei auf: es könnte sehr schwer werden die stelle zu finden, da wir evtl. nicht wissen, wie die firmware ohne aussieht...

ich schau mir das dann nächste WE an ;)
 
Die Firmware auspacken ist kein Problem. Ich hab ja die Damps.
Die aus den damps zusammengefügt Firmware läuft ja auch auf meinen W920.
Im mtd1 ist nur das Filesystem und im mtd5 ist das Filesystem plus kernel.

Der ausgelesene mtd5 ist fast 16MB groß warum? wenn die Partition 8MB hat.

Das schreit wieder mal nach den Profis wie MaxMuster und RalfFriedl, ich denke die blicken da eher durch.
 
Hat schonmal jemand versucht mtd1 nur zu löschen und das nur in mtd5 reinzuspielen?
 
Nein nicht das ich wüsste man kann das aber sicher mal probieren,
Irgendwas in diese Richtung hab ich auch angedacht, möglich dass filesystem.image ist ja derzeit 0 Bytes groß vielleicht ist im Filesystem mtd1 und kernel.image wider in mtd5. oder auch umgekehrt.
Nur warum der damp vom mdt5 so groß ist erklärt das natürlich nicht.
 
das problem, den router aus der reboot-schleife zu bekommen, konnte ich dank stevve33 schon mal lösen und habe nun eine freetz-fw vom w920 drauf.

allerdings kann ich nicht ins internet. am router blinkt die dsl leuchte rot und und im fritz.box menü ist das lämpchen bei dsl zwar grün, aber bei internet steht "not connected" . die benutzer daten sind schon eingetragen.

nun habe ich gelesen, dass man das problem beseitigen kann indem man die .export von der original fw und der modifizierten kombiniert, aber ich bin nicht so richtig schlau daraus geworden bzw. weiß nicht, was ich alles übernehmen muss ...

kann mir jemand dabei helfen ?

ps.: ja, ich weiß, dass es nicht besonders klug war die box ohne vorahnung zu flashen
 
@jpascher

Der Dump sieht wie folgt aus :

Mtd1 7.066.112 Kbytes
MTD2 929.280 Kbytes
Mtd3 262.144 Kbytes
Mtd4 262.144 Kbytes
Mtd5 262.144 Kbytes

Daher frage ich mich wieso der letzte so gross sein soll ???
 
Da stimmt irgend was nicht, die Nummerierung ist um eins versetzt
ich hab mtd0 - 5

-rw-r--r-- 1 freetz freetz 7066112 Sep 29 13:22 mtdblock0
-rw-r--r-- 1 freetz freetz 929280 Sep 29 13:22 mtdblock1
-rw-r--r-- 1 freetz freetz 262144 Sep 29 13:22 mtdblock2
-rw-r--r-- 1 freetz freetz 262144 Oct 31 10:02 mtdblock3
-rw-r--r-- 1 freetz freetz 262144 Oct 31 10:02 mtdblock4
-rw-r--r-- 1 freetz freetz 16777216 Sep 29 13:23 mtdblock5
 
Nach einem Hinweis von Johann auf diesen Thread, gebe ich mal meinen Senf dazu ;-)
Meine 5130 (auch eine AVM-Box von Alice) ist eine abgespeckte 5140 aber mit 8MB Flash (dem doppelten der anderen Box) und ebenfalls mtd5.
Bei verschiedenen Boxen sind teilweise mtd1 und mtd5 "vertauscht" (siehe z.B. im "5130-Thread" im Beitrag #28 und #106)
Die Box schreibt scheinbar beim Flashen erstmal in den "ungenutzen" Bereich und "tauscht" dann die beiden mtd's. Damit lässt sich sogar "Flashen und Prüfen" im laufenden Betrieb der Box..

Bei der 5130 war es möglich, diese Bereiche so umzulegen, dass nur noch ein "großer" mtd1 vorhanden war #110.

Warum Johann einen mtd5 mit knapp 16MB ausgelesen (bekommen) hat, weiß ich auch nicht, vielleicht doch ein Fehler bei der Erzeugung?!?

Jörg
 
Zuletzt bearbeitet:
Flashsize: 16.777.216 Bytes (16.384 kb, 16 MB)
Memsize: 67.108.864 Bytes (65.536 kb, 64 MB, 0,1 GB)
mtd0: 0 Bytes
mtd1: 7.995.392 Bytes (7.808 kb, 7,6 MB)
mtd2: 262.144 Bytes (256 kb, 0,3 MB)
mtd3: 262.144 Bytes (256 kb, 0,3 MB)
mtd4: 262.144 Bytes (256 kb, 0,3 MB)
mtd5: 7.995.392 Bytes (7.808 kb, 7,6 MB)

Das ist die ausgelesene Flashsize der einzelnen MTD´s
 
Das bringt ja schon etwas mehr Licht in die Sache!

War meine Nase somit richtig, dass Du dich da besser auskennst.
Der Damp ist nicht von mir und wurde per Telnet ausgelesen.
Der Damp ist komplett in Ordnung lässt sich sauber auspacken und auch wieder eine Firmware daraus bauen.
Warum mein dump 16777216 groß ist? Das frag ich mich nun wirklich.
 
Der Dump wurde per Telnet ausgelesen und direkt auf USB Stick gezogen der sollte sauber sein.
Genauso wie die env . Auch per Telnet ausgelesen.
 
Zuletzt bearbeitet:
Heute wird irgendwie zu viel für mich, ...

Das eine ist die Aufteilung und das andere sind die Damps, richtig - und die Damps sind bei dir genauso groß?
Der Damp stammt von jemand anderen und nur dieser funktioniert.

@MaxMuster

Gibt es irgend einen Grund warum nur bei den alice Boxen mit der Flachaufteilung was anders ist?

Ist die Hardware vielleicht die selbe nur der Bootlader teilt das anders auf?
Kann sein, dass in den Verlinkten Beträgen von der eh was dazu steht aber ich hab das noch nicht alles durchgelesen.
 
Zuletzt bearbeitet:
Ich kann es nur für die 5130 sagen, dort ist der Speicher gegenüber der "normalen" Version verdoppelt. Und wenn ich mich recht erinnere, war in dem "ungenutzen" Bereich mtd5 auch ein komplettes squashfs enthalten, wie im "aktiven" mtd1.
Deshalb meine Vermutung, dass das als "sicherer" Weg für ein Update genutzt wird, weil man im laufenden Betrieb ein Image nach mtd5 "schieben" kann, das dann prüfen (per md5 oder wie auch immer) und nach Erfolg im Bootlader die beiden Bereiche "tauschen" kann, so dass dann die Box mit dem anderen hochfährt. Vielleicht hat der Bootlader auch selbst einen Prüfmechanismus, um ein ggf. fehlerhaftes Image zu erkennen und von der anderen Partition zu booten.
Das ist aber alles nur Spekulation, denn der Bootlader und dessen Funktionen sind nach meinem Wissen nur durch "reverse engineering" und nur in einigen Teilen bekannt...

Jörg
 
Immerhin - klingt plausibel, und es gäbe für Test-freudige was zu tun.

Ich denke Du hast da recht, für mich bleibt jetzt die Frage offen wie man per FTP eine größere Firmware aufteilen kann damit diese richtig in die zwei getrennten Bereiche geladen wird. Ein Update müsste wie du das andeutest eher funktionieren da man direkt mtdblock5 schreiben kann. Wäre halt super wenn man ein original Install Skript einer Firmware hätte.
 
(...) Ein Update müsste wie du das andeutest eher funktionieren da man direkt mtdblock5 schreiben kann. Wäre halt super wenn man ein original Install Skript einer Firmware hätte.

Wir haben doch das HN-image, enthält das nicht ein original Skript?

Ich hatte dasselbe gedacht und versucht über freetz ein update aus laufender Box reinzuspeichern, aber das hat nicht funktioniert. Im endeffekt dürfte das aber auch keinen Unterschied machen, oder? ob ich es byte-genau aufspalte oder automatisch reinschreibe. aber probieren sollte man's. Vielleicht komme ich am WE dazu.
 
Wäre halt super wenn man ein original Install Skript einer Firmware hätte.
Meinst Du dies hier?
Code:
#! /bin/sh
##################################################################################


kernel_update_start=0
kernel_update_len=0
name_list=""

get_kernel_mtd() {
    kernel_image_size=$1
    kernel_mtd_size=$2

    # es gibt unterschiedliche Bezeichnungen in versch. Kernelversionen
    tmp_size=`cat /proc/mtd | grep urlader | sed -n -e 's/mtd[0-9].*: \([^ ]*\) \([^ ]*\) .*/\1/p'`
    if [ -z "$tmp_size" ] ; then 
        tmp_size=`cat /proc/mtd | grep bootloader | sed -n -e 's/mtd[0-9].*: \([^ ]*\) \([^ ]*\) .*/\1/p'`
    fi
    if [ -z "$tmp_size" ] ; then
        echo ACHTUNG keine bootloader_size!
        # kernel_update_start=0 gibt einen Fehler
        return 0
    fi
    bootloader_size=0x$tmp_size

    tmp_size=`cat /proc/mtd | grep '"jffs2"' | grep -v Kernel | sed -n -e 's/mtd[0-9].*: \([^ ]*\) \([^ ]*\) .*/\1/p'`
    if [ -z "$tmp_size" ] ; then tmp_size=0; fi
    jffs2_size=0x$tmp_size
    Kernel_without_jffs2_size=$(($kernel_mtd_size-$jffs2_size))
    kernel_update_start=$((0x10000000 + $bootloader_size))

    echo bootloader_size $bootloader_size
    echo jffs2_size $jffs2_size
    echo Kernel_without_jffs2_size $Kernel_without_jffs2_size
    echo kernel_image_size $kernel_image_size
    echo kernel_mtd_size $kernel_mtd_size

    echo Kernel_Start_Add=$kernel_update_start
    echo Kernel_End_Addr=$(($kernel_update_start + $kernel_image_size))
    echo Kernel_without_jffs2_End_Addr=$(($kernel_update_start + $Kernel_without_jffs2_size))

    if [ $kernel_image_size -le $Kernel_without_jffs2_size ] ; then
        kernel_update_len=$Kernel_without_jffs2_size
    else
        if [ ! "$jffs2_size" = "0x0" ] ; then 
           echo install: Image would overlap - jffs2 will be deleted ... ; 
        fi
        kernel_update_len=$kernel_mtd_size
    fi

    return 0
}

get_kernel_mtd_iks() {
    kernel_image_size=$1
    kernel_mtd_size=$2

    # es gibt unterschiedliche Bezeichnungen in versch. Kernelversionen
    tmp_size=`cat /proc/mtd | grep urlader | sed -n -e 's/mtd[0-9].*: \([^ ]*\) \([^ ]*\) .*/\1/p'`
    if [ -z "$tmp_size" ] ; then 
        tmp_size=`cat /proc/mtd | grep bootloader | sed -n -e 's/mtd[0-9].*: \([^ ]*\) \([^ ]*\) .*/\1/p'`
    fi
    if [ -z "$tmp_size" ] ; then
        echo ACHTUNG keine bootloader_size!
        # kernel_update_start=0 gibt einen Fehler
        return 0
    fi
    bootloader_size=0x$tmp_size

    tmp_size=`cat /proc/mtd | grep '"jffs2"' | grep -v Kernel | sed -n -e 's/mtd[0-9].*: \([^ ]*\) \([^ ]*\) .*/\1/p'`
    if [ -z "$tmp_size" ] ; then tmp_size=0; fi
    jffs2_size=0x$tmp_size
    Kernel_without_jffs2_size=$(($kernel_mtd_size-$jffs2_size))
    kernel_update_start=$((0x1f000000 + $bootloader_size))

    echo bootloader_size $bootloader_size
    echo jffs2_size $jffs2_size
    echo Kernel_without_jffs2_size $Kernel_without_jffs2_size
    echo kernel_image_size $kernel_image_size
    echo kernel_mtd_size $kernel_mtd_size

    echo Kernel_Start_Add=$kernel_update_start
    echo Kernel_End_Addr=$(($kernel_update_start + $kernel_image_size))
    echo Kernel_without_jffs2_End_Addr=$(($kernel_update_start + $Kernel_without_jffs2_size))

    if [ $kernel_image_size -le $Kernel_without_jffs2_size ] ; then
        kernel_update_len=$Kernel_without_jffs2_size
    else
        if [ ! "$jffs2_size" = "0x0" ] ; then 
           echo install: Image would overlap - jffs2 will be deleted ... ; 
        fi
        kernel_update_len=$kernel_mtd_size
    fi

    return 0
}


#. /etc/init.d/rc.conf

##################################################################################
# install results:
##################################################################################
export INSTALL_SUCCESS_NO_REBOOT=0
export INSTALL_SUCCESS_REBOOT=1
export INSTALL_WRONG_HARDWARE=2
export INSTALL_KERNEL_CHECKSUM=3
export INSTALL_FILESYSTEM_CHECKSUM=4
export INSTALL_URLADER_CHECKSUM=5
export INSTALL_OTHER_ERROR=6
export INSTALL_FIRMWARE_VERSION=7
export INSTALL_DOWNGRADE_NEEDED=8

force_update=n
for i in $* ; do
    case $i in
        -f)
            force_update=y
        ;;
    esac
done

##################################################################################
# get Kernelversion for further handling (update 2.4<->2.6)
##################################################################################
case `uname -r` in
    2.4*)
        echo "install: have Kernel 2.4";
        kversion=24
        ;;
    2.6*)
        echo "install: have Kernel 2.6";
        kversion=26
        ;;
    *)
        exit $INSTALL_OTHER_ERROR
        ;;
esac

##################################################################################
echo "install: check and install new firmware ..."
##################################################################################

need_reboot=$INSTALL_SUCCESS_NO_REBOOT
korrekt_version=0

##################################################################################
# Power LED blinken lassen
##################################################################################
/bin/update_led_on

if [ ${kversion} = 24 ] ; then
	##################################################################################
	# ACHTUNG ACHTUNG ACHTUNG Memory Layout prüfen Entfaellt!!!
	# Ggfs. ist ein Urlader- bzw. Memorylayout-Update erforderlich!
	##################################################################################
	#
	# ANM.: Das Handling von alten Geräten ohne Installtype ist nunmehr etwas intransparent...
	#
	#       Erläuterung:
	#           Updateversuche auf alte Geräte ohne Installtype erzeugen bereits bei der
	#           Memorylayoutprüfung einen Fehler, falls diese Firmware die Falsche für das alte Gerät ist!
	#
	#       Fehlerdetektion:
	#           1.) Es gibt zwei Arten von altem Memorylayout mit jeweils eindeutigem Merkmal (s.u.).
	#               Wenn das Gerät eines mit altem Layout ist, muß auch die für das Merkmal erwartete
	#               "install-XMB-urlader" Datei in der ankommenden FW vorliegen.
	#           2.) Falls es daran nicht scheitert so stimmt der erwartete Urlader nicht mit
	#               dem mitgelieferten überein. (In der "install-XMB-urlader" Datei wird der erwartete
	#               aus der HWRevision des alten Gerätes ermittelt und als verfügbar vorausgesetzt).
	#               [ Dieser Fall könnte bei hausinternen verwendeten alten 'FRITZ!Box FON' - mit FW die
	#                 nicht aus echten Releases stammt - auftreten, da diese dasselbe Merkmal
	#                 wie alte 'FRITZ!Box' haben.]
	#
	#       Voraussetzung für diese Vorgehensweise ist:
	#           Nur Geräte mit altem Memorylayout haben ggfs. keinen Installtype.
	#           Das trifft auf echte Releases von 'FRITZ!Box' (< 05.02.78) und 'FRITZ!Box SL' (< 05.01.70) zu.
	#           Alle echten Releases anderer Geräte haben bereits einen Installtype.
	#
	#       >>> Somit darf die nachfolgende Installtype-Prüfung
	#       >>> immer von der Existenz des Installtypes ausgehen!
	#
	##################################################################################
	if [ -e /dev/mtdblock/5 ] ; then
		echo "altes 4MB Memory layout, mtd5 existiert"
		exit $INSTALL_FIRMWARE_VERSION	# altes MemoryLayout wird nicht mehr unterstützt, Umweg ueber Zwischenupdate (dieses update verhindern)
	fi

	if [ ! -e /dev/mtdblock/4 ] ; then
		echo "altes 2MB Memory layout, mtd4 existiert nicht"
		exit $INSTALL_FIRMWARE_VERSION	# altes MemoryLayout wird nicht mehr unterstützt, Umweg ueber Zwischenupdate (dieses update verhindern)
	fi
fi





##################################################################################
#       Die nachfolgende Installtype-Prüfung darf
#       immer von der Existenz des Installtypes ausgehen! (s.o.)
#
#       ANM.: Bei alten Geräten ohne Installtype, welche mit korrekter FW geupdatet werden sollen
#       liefert die nachfolgende Installtype-Prüfung via '/etc/version --install=xyz'  immer 'TRUE', 
#       da sich in /etc/version der CASE ohne default-Tag bei nichtexistentem Tag leider so verhält.
#       Das ist bei alten FW-Versionen noch der Fall und wird hiermit toleriert.
##################################################################################
################################
# list of accepted installtypes:
################################
echo OEM=$OEM
# get annex from Kernel dep env path
if [ "${kversion}" = 24 ] ; then
    export CONFIG_ENVIRONMENT_PATH=/proc/sys/dev/adam2
else
    export CONFIG_ENVIRONMENT_PATH=/proc/sys/urlader
fi
export ANNEX=`cat ${CONFIG_ENVIRONMENT_PATH}/annex`
if [ -z "${ANNEX}" ] ; then echo ANNEX=${ANNEX} not supported ; exit $INSTALL_WRONG_HARDWARE ; fi
echo ANNEX=$ANNEX
# Fritz_Box_7570
if [ -z "$DISABLE_Fritz_Box_7570" ] ; then
   echo testing acceptance for device Fritz_Box_7570 ...
           echo OK - accept this update for device Fritz_Box_7570 ...
           korrekt_version=1
   echo testing acceptance for device Fritz_Box_7570 done
fi

kernel_start=0x90020000
kernel_size=16121856
filesystem_start=0x90000000
filesystem_size=0
urlader_start=0x90000000
urlader_size=131072
newFWver=04.82
# Versioninfo:	81.04.86
# Checkpoint:	r16971
#! /bin/sh
#! /bin/sh
if [ $korrekt_version = 0 ] ; then
    echo "error: installype not korrket"
    echo "set INFO led to off (modul=7, state=1)"
    /bin/update_led_off
    exit $INSTALL_WRONG_HARDWARE # warum auch immer: für diese Gerät wird die FW abgelehnt
fi
##################################################################################
# Rücksprung nur für die 11.01.xx verhindern
#
# FW Version Muster: xx.BB.CC  --  der Nummernkreis BB muss übereinstimmen und CC größer oder gleich sein
#
##################################################################################
currFWver=`/etc/version -v`
echo "curr: ${currFWver}  new: xx.${newFWver}"
# Version AA.BB.CC zerlegen
major_currFWver=${currFWver%%.*} # bis zum ersten Punkt
middle_currFWver=${currFWver%.*}; middle_currFWver=${middle_currFWver#*.} # dazwischen
minor_currFWver=${currFWver##*.} # ab dem letzten Punkt
echo "debug: curr: ${major_currFWver}.${middle_currFWver}.${minor_currFWver}"
middle_newFWver=${newFWver%.*}; middle_newFWver=${middle_newFWver#*.} # dazwischen
minor_newFWver=${newFWver##*.} # ab dem letzten Punkt
echo "debug: new: \"XX.${middle_newFWver}.${minor_newFWver}\""
##################################################################################
#  führenden Nullen beseitigen damit die Werte zur Berechnung genutzt werden
#  können
##################################################################################
major_currFWver=${major_currFWver##0}
middle_currFWver=${middle_currFWver##0}
minor_currFWver=${minor_currFWver##0}
major_newFWver=${major_newFWver##0}
middle_newFWver=${middle_newFWver##0}
minor_newFWver=${minor_newFWver##0}
echo "major_currFWver=$major_currFWver"
echo "middle_currFWver=$middle_currFWver"
echo "minor_currFWver=$minor_currFWver"
echo "middle_newFWver=$middle_newFWver"
echo "minor_newFWver=$minor_newFWver"
##################################################################################
# update verhindern
##################################################################################
if [ -z "${middle_currFWver}" ] || [ -z "${minor_currFWver}" ] || [ -z "${middle_newFWver}" ] || [ -z "${minor_newFWver}" ] ; then
    echo "error: could not resolve Firmwareversion"
    echo "set INFO led to off (modul=7, state=1)"
    /bin/update_led_off
    exit $INSTALL_FIRMWARE_VERSION
fi
##################################################################################
# Downgrade with factorysettings or normal update ?
##################################################################################
if [ "${force_update}" = "y" ] ; then
    echo "Force: Accept Firmware Version: xx.${newFWver} "
    echo "Force: factorysettings ..."
    ##################################################################################
    # factorysettings non-tffs
    ##################################################################################
    # TAM
    if [ -d /data ] ; then
        if [ -d /data/tam ] ; then
            rm -f /data/tam/config
            rm -f /data/tam/meta*
        fi
    fi
    # DECT (Swissvoice)
    if [ -x /bin/dectwe ] ; then
        /bin/dectwe
    fi
    ##################################################################################
    # factorysettings tffs: ID's erst ab 100 (0x64) loeschen
    ##################################################################################
    id=$((0x64))
    while [ $id -le 255 ] ; do
        echo "clear_id $id" >/proc/tffs
        id=$(($id + 1))
    done
    id=$((0x4000))
    while [ $id -le $((0x4040)) ] ; do
        echo "clear_id $id" >/proc/tffs
        id=$(($id + 1))
    done
    id=$((0x4400))
    while [ $id -le $((0x4440)) ] ; do
        echo "clear_id $id" >/proc/tffs
        id=$(($id + 1))
    done
    echo "Force: factorysettings done."
else
    echo "check Firmware Version: xx.${newFWver}"
    ##################################################################################
    #    BB (neu) < BB (aktuell) :   update rueckfrage anstossen
    #    BB (neu) = BB (aktuell) &&  CC (neu) < CC (aktuell) :   update rueckfrage anstossen
    ##################################################################################
    if [ "$middle_newFWver" -lt "$middle_currFWver" ] ; then
        echo "warning: Firmware downgrade detected"
        echo "set INFO led to off (modul=7, state=1)"
        /bin/update_led_off
        # behaviour for devices which basically are downgradable
        exit $INSTALL_DOWNGRADE_NEEDED
    else
        echo "DEBUG: $middle_newFWver >= $middle_currFWver"
    fi
    if [ "$middle_newFWver" -eq "$middle_currFWver" ] ; then
        if ( [ "$minor_currFWver" -gt "89" ] && [ "$minor_newFWver" -ne "$minor_currFWver" ] ) ||
             [ "$minor_newFWver" -lt "$minor_currFWver" ] ; then
            if ( [ "$minor_currFWver" -eq "96" ] && [ "$minor_newFWver" -le "89" ] ) ; then
                echo "Info: Firmware downgrade mini-lab -> non-lab detected"
                echo "DEBUG: $minor_newFWver < $minor_currFWver"
            else
                echo "warning: Firmware downgrade detected"
                echo "set INFO led to off (modul=7, state=1)"
                /bin/update_led_off
                # behaviour for devices which basically are downgradable
                exit $INSTALL_DOWNGRADE_NEEDED
            fi
        else
            echo "DEBUG: $minor_newFWver >= $minor_currFWver"
        fi
    else
        echo "DEBUG: $middle_newFWver > $middle_currFWver"
    fi
    echo "Accept Firmware Version: xx.${newFWver}"
fi
echo install: ${kversion} check files...
##################################################################################
# firmware Files pruefen
##################################################################################
# skip filesystem if empty
if [ -f /var/tmp/filesystem.image ] && [ $filesystem_size -ne 0 ] ; then
    if ! /var/chksum /var/tmp/filesystem.image ; then
        echo "chksum for file /var/tmp/filesystem.image failed."
        echo "set INFO led to off (modul=7, state=1)"
        /bin/update_led_off
        exit $INSTALL_FILESYSTEM_CHECKSUM
    fi
    echo chksum for file /var/tmp/filesystem.image ok
fi
if [ -f /var/tmp/kernel.image ] ; then
    if ! /var/chksum /var/tmp/kernel.image ; then
        echo "chksum for file /var/tmp/kernel.image failed."
        echo "set INFO led to off (modul=7, state=1)"
        /bin/update_led_off
        exit $INSTALL_KERNEL_CHECKSUM
    fi
    echo chksum for file /var/tmp/kernel.image ok
fi
##################################################################################
# prepare install
##################################################################################
# do no longer overwrite/remove /var/post_install
if [ ! -f /var/post_install ] ; then
# create, if not present
  echo "#! /bin/sh" >/var/post_install
fi
# append sequence to /var/post_install
echo 'echo $0: start' >>/var/post_install
# LED- und Betriebsstundenzaehler- Demon stoppen
echo "sleep 1" >>/var/post_install
echo "killall run_clock" >>/var/post_install
echo "if ps | grep -v grep | grep -q telefon ; then killall telefon ; fi" >>/var/post_install
echo "if ps | grep -v grep | grep -q telnetd ; then killall telnetd ; fi" >>/var/post_install
# ueberfluessigen urlader-env eintrag entsorgen
if [ ${kversion} = 24 ] ; then
# echo "echo language > /proc/sys/dev/adam2/environment" >>/var/post_install
# darf für zukünftige internationalisierung nicht mehr gelöscht werden
  echo "echo skip deleting language from env" >>/var/post_install
else
# echo "echo language > /proc/sys/urlader/environment" >>/var/post_install
# darf für zukünftige internationalisierung nicht mehr gelöscht werden
  echo "echo skip deleting language from env" >>/var/post_install
echo "echo MODE=update > /dev/avm_power" >>/var/post_install
fi
# unmittelbar vor dem Flashen den Watchdog ausschalten
if [ -e /dev/watchdog ] ; then >>/var/post_install
  echo "echo \"disable\" > /dev/watchdog" >>/var/post_install
fi >>/var/post_install
# wer läuft jetzt noch ?
echo "echo still running:" >>/var/post_install
echo "ps" >>/var/post_install
echo "lsmod" >>/var/post_install
echo "sleep 1" >>/var/post_install
##################################################################################
# setting files to install
##################################################################################
if [ ${kversion} = 24 ] ; then
    echo install: ${kversion} setting files to install...
    if [ -f /var/tmp/kernel.image ] ; then
        crc_param=1
        x=`cat /proc/sys/dev/adam2/environment | grep jffs2_size`
        jffs2_size=${x##jffs2_size}
        if [ -z "${jffs2_size}" ] ; then jffs2_size=0; fi
        mtd1_size=0x`cat /proc/mtd | grep ^mtd1 | sed -n -e 's/mtd1: \([^ ]*\) .*/\1/p'`
        mtd1_blocksize=0x`cat /proc/mtd | grep ^mtd1 | sed -n -e 's/mtd1: [^ ]* \([^ ]*\) .*/\1/p'`
        mtd1_blocks=$(($mtd1_size / $mtd1_blocksize))
        act_kernel_size=`ls -l /var/tmp/kernel.image | sed -e 's/[^0-9]/#/g' | sed -e 's/#\+[0-9]\+#\+\([0-9]\+\).*/\1/'`
        kernel_blocks=$(($act_kernel_size / $mtd1_blocksize))
        kernel_blocks_rest=$(($act_kernel_size % $mtd1_blocksize))
        if [ $kernel_blocks_rest -gt 0 ]; then
            kernel_blocks=$(($kernel_blocks + 1))
        fi
        to_erase=$(($mtd1_blocks - $jffs2_size))
        to_erase_size=$(($to_erase * $mtd1_blocksize))
        if [ $kernel_blocks -le $to_erase ]; then
            echo "install: /var/tmp/kernel.image to mtd1 ($to_erase blocks)"
            echo "update_parameter=flash_update_file0=\"/var/tmp/kernel.image,$kernel_start,$to_erase_size,crc=${crc_param}\"" >>/var/post_install
        else
            echo "install: /var/tmp/kernel.image to mtd1"
            echo "update_parameter=flash_update_file0=\"/var/tmp/kernel.image,$kernel_start,$kernel_size,crc=${crc_param}\"" >>/var/post_install
        fi
        need_reboot=$INSTALL_SUCCESS_REBOOT
    fi
# skip filesystem if empty
    if [ -f /var/tmp/filesystem.image ] && [ $filesystem_size -ne 0 ] ; then
        echo "install: /var/tmp/filesystem.image to mtd0"
        echo "update_parameter=\"\$update_parameter flash_update_file1=\"/var/tmp/filesystem.image,$filesystem_start,$filesystem_size,crc=1\"\"" >>/var/post_install
        need_reboot=$INSTALL_SUCCESS_REBOOT
    fi
    if [ $need_reboot -eq $INSTALL_SUCCESS_REBOOT ] ; then
        echo "insmod /var/flash_update.o \$update_parameter" >>/var/post_install
    fi
else
    ###########################################
    echo install: ${kversion} getting mtd to install...
    echo install: -----------------------------------------------------
    kernel_image_size="`ls -l /var/tmp/kernel.image | sed -e 's/[^0-9]/#/g' | sed -e 's/#\+[0-9]\+#\+\([0-9]\+\).*/\1/'`"
    get_kernel_mtd ${kernel_image_size} ${kernel_size}
    echo install: -----------------------------------------------------
    echo install: kernel_size=${kernel_size}
    echo install: kernel_update_start=${kernel_update_start}
    echo install: kernel_update_len=${kernel_update_len}
    if [ "${kernel_update_start}" = "0" ] ; then
        echo "install: get_kernel_mtd() failed!"
        echo "install: aborting."
        echo "set INFO led to off (modul=7, state=1)"
        /bin/update_led_off
        exit $INSTALL_URLADER_CHECKSUM
    fi
    ###########################################
    echo install: ${kversion} setting files to install...
    if [ -f /var/tmp/kernel.image ] ; then
        crc_param=1
        echo "install: /var/tmp/kernel.image to start($kernel_update_start) size($kernel_update_len)"
        echo "update_parameter=flash_update_file0=\"/var/tmp/kernel.image,$kernel_update_start,$kernel_update_len,crc=${crc_param}\"" >>/var/post_install
        need_reboot=$INSTALL_SUCCESS_REBOOT
    fi
#TODO: get_kernel_mtd() liefert falsche?! $filesystem_size (sollte '0' sein)- daher erstmal alles weglassen
# skip filesystem if empty
    if [ -f /var/tmp/filesystem.image ] ; then
        act_fs_size=`ls -l /var/tmp/filesystem.image | sed -e 's/[^0-9]/#/g' | sed -e 's/#\+[0-9]\+#\+\([0-9]\+\).*/\1/'`
        if [ $act_fs_size -ne 0 ] ; then
            echo "WARNING: /var/tmp/filesystem.image with size $act_fs_size"
            # it is not validated, that backupdate with filesystem.image works!
            # need_reboot=$INSTALL_SUCCESS_REBOOT
            need_reboot=$INSTALL_FILESYSTEM_CHECKSUM
        fi
    fi
    if [ $need_reboot -eq $INSTALL_SUCCESS_REBOOT ] ; then
        echo "insmod /var/flash_update.ko \$update_parameter" >>/var/post_install
    fi
fi
# due to append sequence add exit to prevent accidently second run.
echo "exit 0" >>/var/post_install
chmod +x /var/post_install
##################################################################################
# Spezialbehandlungen - aber nur wenn bis hierhin alles gut ist!
##################################################################################
if [ $need_reboot -eq $INSTALL_SUCCESS_REBOOT ] ; then
    ##################################################################################
    # suche & entferne _alte_ persistente Debugsettings um CAPIoTCP zu starten (/var/flash/debug.cfg, /var/rc.user)
    echo "install: check for old settings ..."
    OLD_SETTINGS_FILE="#! /bin/sh major=\`grep tffs /proc/devices\` tffs_major=\${major%%tffs} telnetd -l /sbin/ar7login killall capiotcp_server sleep 5 /usr/bin/capiotcp_server -p5031 -m3 &"
    cmp_file(){
        for i in $OLD_SETTINGS_FILE; do
            if [ ! "$1" = "$i" ] ; then echo "'$1' differs from '$i' - abweichung und raus ..."; return 1; fi
            shift
        done
        if [ ! -z "$1" ] ; then echo "'$1' following last member '$i' - abweichung und raus ..."; return 1; fi
        return 0;
    }
    if [ -f /var/rc.user ] ; then
        if cmp_file `cat /var/rc.user` ; then
            echo +++ nodes 61,62 komplett entsorgen
            echo clear_id $((0x61)) >/proc/tffs
            echo clear_id $((0x62)) >/proc/tffs
            rm -rf /var/rc.user
        fi
    fi
    ##################################################################################
    # Wahlregel-Konverter
    ##################################################################################
    if [ -x /var/regelex ] && [ -e /var/flash/fx_lcr ] ; then
      case ${OEM} in
          1und1)
              if [ -f /etc/default.${Country}/fx_lcr.${OEM} ]; then
                  # nur bis Version 04.25 laufen lassen, inkompatibel mit Labor
                  if [ "$middle_currFWver" -le "4" ] && [ "$minor_currFWver" -le "25" ]; then
                      echo konvertiere Wahlregeln: ./var/regelex 2 /var/flash/fx_lcr /etc/default.${Country}/fx_lcr.${OEM} /var/flash/fx_lcr
                      /var/regelex 2 /var/flash/fx_lcr /etc/default.${Country}/fx_lcr.${OEM} /var/flash/fx_lcr 2>/dev/null
                  fi
              fi
              ;;
      esac
    fi
    ##################################################################################
    # Loeschen der C+P Logs
    echo clear_id 95 >/proc/tffs
    echo clear_id 96 >/proc/tffs
fi
##################################################################################
if [ $need_reboot -eq $INSTALL_SUCCESS_REBOOT ] ; then
    echo "set INFO led to blink (modul=7, state=4)"
    /bin/update_led_on
else
    echo "set INFO led to off (modul=7, state=1)"
    /bin/update_led_off
fi
##################################################################################
#  returnwerte:  0 kein reboot,  1 reboot
##################################################################################
exit $need_reboot
##################################################################################
echo "****INSTALLSCRIPT STOPPED ON DEVICE FOR TESTING (disabling watchdog)****"
if [ -e /dev/watchdog ] ; then
    echo "disable" > /dev/watchdog
fi
if [ -f /var/run/delayed_reboot.pid ] ; then
    ## Terminate any scheduled delayed reboot from firmwarecfg-CGI
    local REBOOT_PID=`cat /var/run/delayed_reboot.pid`
    rm /var/run/delayed_reboot.pid
    if [ "$REBOOT_PID" != "" ] ; then
        kill -9 $REBOOT_PID
    fi
fi
echo "****$need_reboot****"
exit 0
##################################################################################
 
Ok, nach ein bisschen patchen des Install-Skripts (u.a. ein Freetz-bug) hab ich es geschafft, dass ich ein Image direkt über das Webinterface von Freetz hochladen könnte. Er hat es also über das flash_update.ko modul eingespielt. Aber das hat auch nur funktioniert solange das image unter 7996... byte war. Ist offenbar also auch nicht direkt die Lösung. Allerdings nutze ich das Skript der Original 7570... müsste mal mit dem Alice-skript vergleichen.

Update:
Ich sehe keine wesentlichen Unterschiede in den Skripten.
Aber vielleicht ist das ja gerade so gewollt. Ich überlege gerade: Alice wird ja sowieso nie seinen Kunden ein Firmware-Update schicken. Vielleicht ist das sozusagen "manuell deaktiviert". Wenn alice ein Firmware-Update anstoßen würde, dann ja wohl über tr069, richtig? Das heißt man müsste sich wohl eher das mal ansehen, wie das läuft.
 
Zuletzt bearbeitet:
Ja leider enthält das HN Image kein original alice Skript, das HN Image ist eines das auf einer 7570/W920 läuft.
 
hi
ich habe heute mein 7570 HN bekommen
etwas geschockt hab ich nun gelesen, das dect, analog ports abgeschaltet sidn, sipgate scheinbar auch cniht einfach geht...
interessant, genau danach hatte ich bei der hotline gefragt..mit ein bestellgrund bei alice

wenn jemand einen dump braucht..ich kann von der box frisch aus dem karton was ziehen, bevor ich sie uebermorgen anschleissen muss

ich brauch nur wen, der mir sagt, was ich wie zu tun habe, am besten per pm
 
ich habe heute mein 7570 HN bekommen
etwas geschockt hab ich nun gelesen, das dect, analog ports abgeschaltet sidn,
Wenn du ISDN bestellt hast, sind die Analogports abgeschaltet, ja. Bei ISDN gehören aber Analogports nicht zu den zugesagten Leistungen (und umgekehrt bekommt man bei einem Analoganschluss keinen S0-Port). DECT gehört ebenfalls nicht zum Leistungsumfang eines Alice-Anschlusses, sonst würde das in der Leistungsbeschreibung stehen. Genau genommen gehört noch nicht einmal eine 7570 zum Lieferumfang, sondern eine "Alice Homebox". Hansenet kann jederzeit andere geeignete Geräte ausliefern, wenn ihnen danach ist.

sipgate scheinbar auch cniht einfach geht...
Selbstverständlich geht Sipgate. Und zwar mit beliebiger VoIP-Hardware, die du an die Homebox anschließen kannst. Allerdings musst du diese Hardware selbst besorgen. Aber auch das hätte man wissen können, wenn man das Kleingedruckte gelesen hat, denn auch Hardware zur Nutzung mit VoIP-Drittanbietern gehört nicht zum Lieferumfang.

ich brauch nur wen, der mir sagt, was ich wie zu tun habe, am besten per pm
Dazu braucht es keine PM. Einfach die Forensuche bemühen, dann findest du schon die entscheidenden Informationen. Von einer Modifikation der Alice Box würde ich allerdings dringend abraten. Erstens lässt sich die Alice Box nicht so einfach umflashen wie andere Geräte auf FB 7570-Basis, und zweitens gehört dir die Box nicht. Sie ist nur ein Leihgerät. Wenn du sie kaputtmachst, wird sie dir Hansenet in Rechnung stellen. Erfahrungsgemäß wird das nicht billig.

Grüßle

Der Mikrogigant
 
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.