[Gelöst] Firmware Update geht nicht, reboot auch nicht

int_ar

Neuer User
Mitglied seit
18 Jul 2013
Beiträge
26
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe mir aus dem aktuellen Trunk ein Image basierend auf meiner Config von folgender Version gebaut:
113.06.24 Rev 13055

Gebaut habe ich 113.06.24 Rev 13206
erweitert um das Paket usbip 0.1.8

Ich kann das Image flashen über die Freetz Oberfläche:
Code:
./
./var/
./var/.packages
./var/chksum
./var/regelex
./var/install
./var/tmp/
./var/tmp/kernel.image
./var/tmp/filesystem.image
./var/info.txt
./var/signature
./var/.config
Code:
install: have Kernel 2.6.32.61 - set kversion '2.6.32' and FlashUpdateTool '/lib/modules/2.6.32.61/kernel/drivers/char/flash_update/flash_update.ko'
install: check and install new firmware ...
OEM=
ANNEX=B
testing acceptance for device Fritz_Box_HW185 ...
korrekt install type: mips34_512MB_xilinx_vdsl_dect446_4geth_2ab_isdn_nt_te_pots_2usb_host_wlan11n_27490
device has installtype mips34_512MB_xilinx_vdsl_dect446_4geth_2ab_isdn_nt_te_pots_2usb_host_wlan11n_27490
OK - accept this update for device Fritz_Box_HW185 ...
testing acceptance for device Fritz_Box_HW185 done
curr: 113.06.24  new: xx.06.24
debug: curr: 113.06.24
debug: new: "XX.06.24"
major_currFWver=113
middle_currFWver=6
minor_currFWver=24
middle_newFWver=6
minor_newFWver=24
check Firmware Version: xx.06.24
DEBUG: 6 >= 6
DEBUG: 24 >= 24
Accept Firmware Version: xx.06.24
install: 2.6.32 check files...
read 0x0 MACIG 0x0
File doesn't contain the checksum, adding
[cs_calc_sum] sum 0x421788b9
Calculated checksum is 421788B9
[cs_set_sum] tagged 0
write 0x23de53c4, 0xb9881742 MAGIC 0xc453de23 
Adding failed
chksum for file /var/tmp/filesystem.image ok
size for file /var/tmp/filesystem.image ok
read 0x89832a03 MACIG 0xc453de23
File already contains the checksum, verifying
[cs_calc_sum] sum 0x89832a03
Calculated checksum is 89832A03
Saved checksum is 89832A03
Checksum validation successful!
chksum for file /var/tmp/kernel.image ok
size for file /var/tmp/kernel.image ok
install: 2.6.32 getting mtds to install...
install: --mtd------------------------------------------------
install: --assert---------------------------------------------
install: --addr+size------------------------------------------
install: kernel_start=0x00000000
install: kernel_size=4194304
install: kernel_image_size=1961736
install: filesystem_start=0x00400000
install: filesystem_size=50331648
install: filesystem_image_size=25677824
install: 2.6.32 writing commands to install...
install: check for old settings ...
set INFO led to blink (modul=7, state=4)
ERLEDIGT – Rückgabewert des Installationsskripts: 1 (INSTALL_SUCCESS_REBOOT)

Von /var/post_install generierter Inhalt:
Code:
#! /bin/sh
echo $0: start
sleep 1
killall run_clock
if ps | grep -v grep | grep -q telefon ; then killall telefon ; fi
if ps | grep -v grep | grep -q telnetd ; then killall telnetd ; fi
echo skip deleting language from env
echo MODE=update > /dev/avm_power
echo "disable" > /dev/watchdog
echo still running:
ps
lsmod
sleep 1
update_state=good
echo Erase mtd partitions '2' and '3' ...
/sbin/update_kernel -o /dev/mtd2
/sbin/update_kernel -o /dev/mtd3
echo Copy kernel image...
/sbin/update_kernel -i /var/tmp/kernel.image  -o /dev/mtd2
[ $? -ne 0 ] && echo failed with error "$?" && update_state=bad
echo Copy filesystem image ...
mkdir -p /var/tmp/fs
mkdir -p /var/tmp/fs_mtd
mount -t squashfs /var/tmp/filesystem.image /var/tmp/fs
mount -t yaffs2 /dev/mtdblock3 /var/tmp/fs_mtd
var_mount_squashfs=`mount | grep "/var/tmp/fs type squashfs"`
var_mount_mtd=`mount | grep /dev/mtdblock3`
[ -z "$var_mount_squashfs" ] && echo failed to mount filesystem.image && update_state=bad
[ -z "$var_mount_mtd" ] && echo failed to mount /dev/mtdblock3 && update_state=bad
if [ "$update_state" = "good" ] ; then
    echo Copy filesystem ...
    cp -R /var/tmp/fs/* /var/tmp/fs_mtd
    [ $? -ne 0 ] && echo failed with error "$?" && update_state=bad
    echo ... Copy filesystem done
fi
if [ "$update_state" = "good" ] ; then
    echo Setting linux_fs_start mirror...
    echo linux_fs_start 1 > /proc/sys/urlader/environment
else
    echo Setting linux_fs_start skipped due to errors...
fi
umount /var/tmp/fs
umount /var/tmp/fs_mtd
rmdir /var/tmp/fs
rmdir /var/tmp/fs_mtd
exit 0

Danach ist die Box weiterhin an, lässt sich nicht rebooten, weder per Freetz WebIF, AVM WebIF noch Konsole. Dieses Reboot Problem ist übrigens generell, also unabhängig ob davor ein Update war.
Nach stromlos machen und neustart ist die Box normal erreichbar, hat aber keine neue Firmware erhalten.

Was ist das Problem?
Meine .config hängt bei

EDIT: ich hab die var/post_install mal händisch durchgeführt und folgende Meldungen sind mir aufgefallen, ich weiß nicht, ob die korrekt sind?
 

Anhänge

  • freetz.zip
    12.8 KB · Aufrufe: 1
  • freetz_error.jpg
    freetz_error.jpg
    106.5 KB · Aufrufe: 15
Zuletzt bearbeitet:
Hast Du denn mal die "normale" Update Funktion der 7490 versucht?
 
Dein Screenshot von der Konsole zeigt leider genau den falschen Teil des Update-Vorgangs.

Das letzte, was da zu sehen ist, ist das Schreiben des neuen Kernels.

Anschließend wird ein neues Dateisystem in mtdblock3 erzeugt und der Inhalt von filesystem.image in dieses yaffs2-Dateisystem kopiert.

Erst wenn auch diese Aktion noch erfolgreich abgeschlossen wurde, wird für den nächsten Start auf das neue System umgeschaltet (die 7490 hat davon zwei).

Offenbar kommt es bei Dir nicht bis zur Umschaltung, um die Ursache zu sehen, müßtest Du "sh -x /var/post_install" nach der Modifikation der post_install aufrufen und das Ergebnis in vollem Umfang (nicht nur als Screenshot, noch dazu nur vom Kernel-Flashen) mal hier als Anhang einstellen. Dann kann man da auch einmal reinsehen ...
 
Hallo @andiling,

ja, habe ich versucht. gleiches Ergebnis

@PeterPawn: ich probiere das gleich aus und meld mich

EDIT:
Code:
/var/post_install: start
skip deleting language from env
still running:
  PID USER       VSZ STAT COMMAND
    1 root      1300 S    init
    2 root         0 SW   [kthreadd]
    3 root         0 SW   [migration/0]
    4 root         0 SW   [ksoftirqd/0]
    5 root         0 SW   [watchdog/0]
    6 root         0 SW   [migration/1]
    7 root         0 SW   [ksoftirqd/1]
    8 root         0 SW   [watchdog/1]
    9 root         0 SW   [yield_w/0]
   10 root         0 SW   [yield_w/1]
   11 root         0 SW   [yield_w/0]
   12 root         0 SW   [yield_w/1]
   13 root         0 SW   [events/0]
   14 root         0 SW   [events/1]
   15 root         0 SW   [khelper]
   18 root         0 SW   [async/mgr]
   34 root         0 SW   [sync_supers]
   35 root         0 SW   [bdi-default]
   37 root         0 SW   [kblockd/0]
   38 root         0 SW   [kblockd/1]
   58 root         0 SW   [kswapd0]
   59 root         0 SWN  [ksmd]
   60 root         0 SW   [aio/0]
   61 root         0 SW   [aio/1]
   75 root         0 SW   [pm_info]
   82 root         0 SWN  [avm_debugd]
  108 root         0 SW   [mtdblockd]
  117 root         0 DW   [ifx_ssc]
  128 root         0 SW   [l2tp]
  132 root         0 SW   [tffsd]
  133 root         0 SW   [avmnet_workqueu]
  134 root         0 SW   [PhyWaspHeartbea]
  140 root         0 SW   [avmnet_timer]
  142 root         0 SW<  [loop0]
  148 root      1548 S    {rc.S} /bin/sh /etc/init.d/rc.S
  174 root         0 SW   [yaffs-bg-1]
  357 root         0 SW   [cleanup_timer_f]
  433 root         0 SW   [yaffs-bg-1]
  446 root         0 SW   [capi_pipew/0]
  447 root         0 SW   [capi_pipew/1]
  448 root         0 SW   [capi_schedw/0]
  449 root         0 SW   [capi_schedw/1]
  450 root         0 SW   [pcmlink_ctrl]
  453 root         0 SW   [capitransp]
  457 root         0 SW<  [avm_dect_thread]
  770 root      1060 S <  /sbin/udevd --daemon
  779 root      1300 S    {busybox} tail -f /nohup.out
  795 root         0 SW   [khubd]
  997 root      2428 S    /bin/configd
 1069 root      6104 S    dsl_control -i10_00_10_40_00_04_01_07 -f/lib/modules/dsp_vr9/vr9-B-dsl.bin -n/etc/dsl/notify/dsl_notify.sh
 1080 root      3900 S    dsl_monitor -d
 1175 root      2592 S    avmipcd
 1177 root      3112 S    l2tpv3d
 1185 root     15712 S    /usr/bin/avm/ctlmgr
 1189 root      8364 S    upnpd
 1213 root         0 SW   [autbtex]
 1214 root         0 SW   [pmex_ne]
 1215 root         0 SW   [pmex_fe]
 1271 nobody    1112 S    dnsmasq --pid-file=/var/run/dnsmasq/dnsmasq.pid -p 53
 1295 root      4072 S    multid
 1310 root      3556 S    ddnsd
 1317 root      3292 S    upnpdevd
 1327 root      4548 S    wland -B
 1343 root      4636 S    dsld -i -n
 1362 root         0 SW   [wlan_com_tx_thr]
 1365 root      6228 S    pbd
 1413 root      6916 R    telefon a127.0.0.1
 1442 root      5984 S <  voipd
 1450 root      5388 S    dect_manager
 1452 root      4596 S    /usr/bin/faxd -a
 1468 root      4176 S    feedd
 1472 root         0 SW   [avmcsrpc]
 1476 root      2056 S    pictured -Dpicserver -Dhandheld -Dsequence -Dpicdb -Djpegconvert
 1481 root      3120 S    audiod
 1511 root     10520 S    /usr/bin/aha
 1518 root      1280 S    hostapd -g /var/run/hostapd/global
 1520 root      1060 S <  /sbin/udevd --daemon
 1530 root         0 SW   [tgt_alive_poll_]
 1551 root      1548 S    {rc.S} /bin/sh /etc/init.d/rc.S
 1552 root      1300 S    {busybox} tee /var/log/mod.log
 1672 root      1272 S    wpa_supplicant -g /var/run/wpa_supplicant/global -D athr
 1730 root      1304 S    {busybox} crond -b
 2030 root      1308 S    {busybox} syslogd -L -C -R 10.0.20.3
 2035 root      1296 S    /sbin/klogd -c 4
 2056 root      1960 S    capiotcp_server -p5031 -m99
 2061 root         0 SW   [ksock tcp worke]
 2062 root         0 SW   [ksock tcp serve]
 2063 root         0 SWN  [dect_uart]
 2074 root      1296 S    {busybox} inetd
 2158 root      1060 S <  /sbin/udevd --daemon
 2162 root      1232 S    oamd
 2360 root      3484 S    usermand
 2377 root      3356 S    contfiltd
 2543 openvpn   3280 S    openvpn --config /mod/etc/openvpn.conf --writepid /var/run/openvpn.pid --daemon
 2688 root       924 S    ser2net -c /tmp/flash/ser2net.conf -P /var/run/ser2net.pid
 2808 root      1104 S    vsftpd
 2942 root      1304 S    {busybox} sh /tmp/flash/mod/rc.custom
 2979 root      4924 S    /bin/avmike
 7368 root      1580 S    {onlinechanged.s} /bin/sh /bin/onlinechanged.sh online status_onlinev4
20731 root      1356 S    dropbear -i -0
20740 root      1320 S    -sh
21642 root      1304 S    {busybox} sh +x /var/post_install
21646 root      1292 S    {busybox} sleep 5
21655 root      1300 R    {busybox} ps
21656 root      1292 S    {busybox} sleep 1
Module                  Size  Used by    Tainted: P
ifx_ppa_mini_qos        4928  0
ifx_ppa_mini_sessions    85546  0
ifxmips_ppa_hal_vr9_a5    76338  0
userman_mod            68964  4
ifxmips_ppa_datapath_vr9_a5   192447  2
sch_sfq                 5933  4
sch_llq                10087  1
sch_tbf                 5042  1
ulpcmlink              37684  0
atd                   162329  0
fwd                    14306  1 atd
athlogger               7786  0
hif_gmac               13148  3 atd,fwd,athlogger
adf                   130044  2 atd,fwd
aae                   119318  3 atd,fwd,hif_gmac
kdsldmod             1587251  9 userman_mod
dsl_vr9               303720  2
mei_vr9               181834  4 ifxmips_ppa_datapath_vr9_a5,dsl_vr9
xhci                   61748  0
usbcore               173212  2 xhci
vfat                   12052  0
fat                    63670  1 vfat
dect_io                12905  2
avm_dect              277747  1 dect_io
capi_codec            427173  0
isdn_fbox_fon5        893763  5
pcmlink               415419  5 ulpcmlink,avm_dect,capi_codec,isdn_fbox_fon5
Piglet_noemif          51958  0
rtc_avm                 5880  1 pcmlink
led_modul_Fritz_Box_HW185   105881  8
Erase mtd partitions 2 and 3 ...
info 0x0
{mtd_info} type 0x4
{mtd_info} size 0x400000
{mtd_info} erasesize 0x20000
{mtd_info} writesize 0x800
{mtd_info} oobsize 0x40
[main] exit error 0
info 0x0
{mtd_info} type 0x4
{mtd_info} size 0x3000000
{mtd_info} erasesize 0x20000
{mtd_info} writesize 0x800
{mtd_info} oobsize 0x40
[main] exit error 0
Copy kernel image...
info 0x0
{mtd_info} type 0x4
{mtd_info} size 0x400000
{mtd_info} erasesize 0x20000
{mtd_info} writesize 0x800
{mtd_info} oobsize 0x40
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] written 0x20000 Bytes
[main] append 4344 Bytes
[main] written 0x20000 Bytes
[main] eof reached
[main] exit error 0
Copy filesystem image ...
Copy filesystem ...
... Copy filesystem done
Setting linux_fs_start mirror...
So beim überfliegen fällt mir nichts auf?

Reboot geht trotzdem nicht, nach Stromlos machen findet kein Flash statt
 
Zuletzt bearbeitet:
int_ar schrieb:
Reboot geht trotzdem nicht, nach Stromlos machen findet kein Flash statt
Anders als bei NOR-Boxen ist das "Flashen" mit dem Kopieren des Kernels, des Dateisystems und dem Setzen der Variablen "linux_fs_start" auf den alternierenden Wert (0 oder 1) schon erledigt und das neue System sollte beim nächsten Start geladen werden.

Copy filesystem image ...
Copy filesystem ...
... Copy filesystem done
Setting linux_fs_start mirror...
Nach dieser Zeile sollte eigentlich das andere System beim nächsten Start benutzt werden.

Mach mal vor allen Flashversuchen ein "grep linux_fs_start /proc/sys/urlader/environment" und jeweils nach dem "Flashen" und nach einem Neustart. Die spannende Frage ist halt, ob da umgeschaltet wird und Du das nur nicht bemerkst oder warum da die Variable im Urlader-Environment nicht "überlebt".

So wie ich das anhand der Prozessliste beurteilen würde, hängt die Box da wegen falschem Umgang mit Kommandos beim Starten von Skripten noch mitten in der Initialisierung fest (sogar die rc.custom ist noch aktiv, auch deren Parent dürfte bei 2x rc.S noch laufen) ... keine Ahnung, wie "init" reagiert, wenn es zum "reboot" aufgefordert wird, obwohl der Start noch gar nicht beendet ist.
 
Okay,

ich wollte jetzt neustarten, die Kommandos ausgeben und schreiben.
Dann rief aber nach dem Klick auf Reboot (und nix passierte) mich jemand auf dem Handy an und ich hab mich festgequatscht.
Habe dann die Box stromlos gemacht (etwa 20min nach klick auf Reboot), ist neu gebootet und siehe da: flash hat stattgefunden.

Ich probiere das heut abend oder morgen nochmal, ob das wieder auftritt und liefere die gewünschten Werte
 
Bitte nicht meinetwegen ...

Du benutzt (meine Vermutung) die Freetz-Hooks in einer Weise, die das "ordentliche Beenden" des Systemstarts verhindern und das gesamte System über die gesamte Laufzeit in einem "hängenden Zustand" lassen.

Das ist mir zu kompliziert zu analysieren und wenn inzwischen die Umschaltung erfolgt ist, ist Dein Problem ja erst einmal geklärt.

Das grundlegende Problem "kein Reboot möglich" ist eben ein anderes und ohne Investition entsprechender Zeit und Mühe wohl nicht aus dem Stand zu lösen. Wenn Du das angehen willst, mach ein neues Thema dazu auf ... mit dem "Flashen geht nicht" hat es mit einiger Wahrscheinlichkeit erst einmal nichts zu tun.

Wenn Du dem Reboot-Problem vielleicht einfach mal selbst etwas weiter nachgehen willst, solltest Du Dich zuerst über Shell-Prozesse und die Abhängigkeiten dort gestarteter asynchroner Prozesse informieren. Bei Dir warten offensichtlich einige der Initialisierungsskripte auf das Ende dort gestarteter Kommandos (sieht man in der Prozessliste sehr deutlich) und in der Folge der gesamte "init"-Prozess vom Systemstart auf die Feststellung "Ok, das System ist jetzt bereit.".

Wenn Du "nur" neu starten willst (ist eben gefährlich wegen der Integrität von Dateisystemen u.a.), reicht auch ein Senden des passenden Triggers an sysrq (hier hilft Google), das ist (mit ein paar Abstrichen) praktisch der "Reset-Knopf".
 
Guter Tipp, die rc.custom hatte ich nicht mehr auf dem Schirm.
Da waren altlasten drin, die hab ich rausgenommen, den aufruf beendet und siehe da: geht. Inkl. Reboot.

Danke für den Tipp, das Problem ist gelöst :)
 
Klasse ... dann markiere das freundlicherweise auch noch entsprechend in #1 im Thread (sprich: ändere den Thread-Titel), spart anderen Hilfewilligen das Lesen. Danke.
 
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.