SAR:Infrastruktur:Firmware-Update

From
Revision as of 23:37, 8 July 2007 by Jeschke (talk | contribs) (→‎Besonderheiten)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Unabhängig vom SDP-Verfahren muss u.U. die Firmware (OpenWGT) der Netgear WGTs manchmal aktualisiert werden, wenn eine der folgenden Komponenten zu aktualisieren ist:

  • Linux Kernel (wenn Aktualisierung nicht durch Austausch eines Kernel-Moduls möglich ist)
  • SDP
  • Evtl. Binaries des RootFS (busybox o.ä.)

Vorbereitungen

Zunächst muss der zu updatende WGT vom Netzwerk gebootet werden. Dazu ist dieser auf dem NFS-Studenten entsprechend freizuschalten:

$ ssh root@nfs-student
$ # Falls testwgt und wgt21 aktualisiert werden sollen
$ sh /wgtroot/admin/allow-hosts.sh "testwgt wgt21"

Nun muss noch der entsprechende WGT rebootet werden:

$ telnet wgt21
Trying 192.168.3.21...
Connected to wgt21.
Escape character is '^]'.



BusyBox v1.00 (2005.08.23-11:45+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______  berlin roof net    ________ v0.06f-brn  __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||  - ||   _|
 |_______||   __|_____|__|__||________||___ ||____|
   S A R  |__|                         .____|

-> THIS IS AN EXPERIMENTAL OpenWRT PORT FOR THE NETGEAR WGT634U <-
root@wgt21:/# reboot
root@Owgt21/# Connection closed by foreign host.

Update

Wenn der WGT im NFS-Modus neu gestartet ist, kann das Update beginnen:

  • Dazu muss zunächst das OpenWGT-Image nach /tmp kopiert werden
  • Dann das entsprechende Restore-Skript gestartet werden

Folgendes Skript tut dies für OpenWGT 0.06f1-brn:

#!/bin/sh

cp /restore/images/openwgt-0.06f1-brn.img /tmp
FIRMWARE_PATH=/tmp IMAGE_FILE=openwgt-0.06f1-brn.img sh /restore/restore-firmware.sh

ACHTUNG: Der watchdog ist vorher zu deaktivieren, sonst kann durch den Zugriff auf den FLASH-Speicher das System hängen bleiben!

Besonderheiten

  • OpenWGT 0.06b-brn hat nicht die korrekte STARTUP-Variable im NVRAM gesetzt, so dass der (gzippte) 2.6er-Kernel nicht starten kann.
watchdog
nvram get STARTUP
sleep 10
nvram set STARTUP="ifconfig eth0 -auto;boot -elf -tftp 192.168.4.3:vmlinux;boot -z -elf flash0.os:;boot -elf flash0.os:;reboot"
nvram commit
  • Der Treiber des JFFS2-Dateisystems macht im 2.6er Kernel unabhängig vom Watchdog Probleme beim Reboot (WGT bleibt hängen). Scheinbar ist der Watchdog, doch nicht so gut implementiert, wie erwartet :-(.
    Es sollte somit der 2.4er-Netzkernel benutzt werden, um Änderungen am RootFS vorzunehmen (z.B. editieren der /etc/nvram.conf).
    Frage: Warum tritt der Effekt nicht beim Ändern des laufenden RootFS auf (beim Booten vom Flash)?
 nvram set STARTUP="ifconfig eth0 -auto;boot -elf -tftp 192.168.4.3:vmlinux;boot -elf flash0.os:;reboot"

Testen:

 nvram set STARTUP='ifconfig eth0 -auto;boot -elf -tftp $BOOT_SERVER:$BOOT_FILE;boot -elf -tftp 192.168.4.3:vmlinux;boot -elf flash0.os:;reboot'