Update 14.01.2014: Anpassungen an OpenWrt Barrier Breaker (trunk) und Copy-Paste Befehlsliste zum schnellen Updaten mit den wichtigsten Paketen (Module, Webinterface, Services).
Es gibt verschiedene Methoden, einen OpenWrt-Router auf den neuesten Stand zu bringen. Hier wird der Weg über die Weboberfläche (Luci) beschrieben. Bei einem Upgrade von OpenWrt gehen alle installierten Anwendungen verloren. Immerhin gibt es die Möglichkeit die wichtigen Konfigurationsdateien zu sichern.
Siehe auch:
Bevor die neue Firmware "geflasht" wird, sollten die eigenen Konfigurationsdateien gesichert werden. Dazu erstellt man entweder direkt unter /etc/sysupgrade.conf eine Liste der Dateien oder Verzeichnisse, die zu sichern sind oder gibt diese Liste via Webinterface System > Backup / Flash firmware > Configuration ein.
/etc/openvpn/ /etc/samba /etc/mpd.conf /etc/dropbear /etc/crontabs /etc/init.d/mpd /etc/group /etc/passwd /etc/shadow #/usr/bin/sambauseradd.sh /usr/bin/usergroupadd.sh /usr/bin/getdynip.sh # User # ACHTUNG: Wenn /home gross ist, dieses lieber nicht aktivieren und # selber auf eine angeschlossene HD sichern. #/home # Administrator #/root/dyndns #/root/getdynip.lft
Das mit dem Sichern dieser Dateien wird auch /etc/config gesichert. Der Router kann nach einer Neuinstallation darum sehr schnell wieder auf seine wichtigsten Funktionen zurück gesetzt werden. Man braucht dann lediglich noch die fehlenden Packete nach zu installieren und hat wieder seine gewohnte Installation.
Man holt sich: http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-sysupgrade.bin (http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin) oder die entsprechende Datei für den eigenen Router unter http://downloads.openwrt.org/snapshots/trunk/. Für das Upgrade muss die Version mit der Endung squashfs-sysupgrade.bin verwendet werden.
Anschliessend wird die Datei via Webinterface (siehe Bild) auf den Router geladen und das Upgrade gestartet.
Nach dem Neustart des Systems wird die WLAN-Verbindung wieder hergestellt und die Route ins Internet etabliert. Aber nach dem Upgrade wird man auch feststellen, dass sich die Weboberfläche (Luci) nicht mehr aufrufen lässt, denn Luci fehlt in den trunk-Versionen. Eine Verbindung mittels ssh (und dem hinterlegten Schlüssel) auf die gewohnte IP-Nummer funktioniert weiterhin.
Eine Übersicht über das Filesystem zeigt: Das erweiterte Filesystem ist nicht mehr vorhanden.
# df -h Filesystem Size Used Available Use% Mounted on rootfs 5.1M 456.0K 4.6M 9% / /dev/root 1.8M 1.8M 0 100% /rom tmpfs 61.7M 92.0K 61.6M 0% /tmp tmpfs 512.0K 0 512.0K 0% /dev /dev/mtdblock3 5.1M 456.0K 4.6M 9% /overlay overlayfs:/overlay 5.1M 456.0K 4.6M 9% /
Nun muss gemäss Kapitel "Vor jeder weiteren Installation: Das root-Filesystem vergrössern" auf dieser Seite vorgegangen werden. Emüssen folgende Befehle ausgeführt werden (Kopieren und Einfügen in der Shell):
opkg update opkg install block-mount kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-usb-storage opkg install kmod-fs-ext4 kmod-fs-vfat kmod-fs-ntfs opkg install kmod-usb-storage-extras opkg install usbutils opkg install e2fsprogs
Nach der Installation aller dieser Pakete für BARRIER BREAKER (Bleeding Edge, r39424) sehen die Platzverhältnisse so aus:
root@hades:~# df -h Filesystem Size Used Available Use% Mounted on rootfs 5.1M 1.5M 3.5M 31% / /dev/root 1.8M 1.8M 0 100% /rom tmpfs 61.7M 564.0K 61.2M 1% /tmp /dev/mtdblock3 5.1M 1.5M 3.5M 31% /overlay overlayfs:/overlay 5.1M 1.5M 3.5M 31% / tmpfs 512.0K 0 512.0K 0% /dev
Ein Neustart wird empfohlen: reboot; exit
Nun stellt sich die Frage: Soll das Webinterface und weitere Kernelmodule ebenfalls in den Flashspeicher installiert werden? Der Vorteil: Auch ohne angeschlossenen USB-Stick für das erweiterte root-FS '/' kann der Router betrieben werden:
opkg install luci-mod-admin-full luci-theme-openwrt uhttpd libiwinfo-lua opkg install kmod-nls-cp850 kmod-nls-cp437 kmod-nls-cp850 opkg install kmod-nls-cp852 kmod-nls-iso8859-1 kmod-nls-utf8
Auch das braucht Platz (gekürzt auf das rootfs):
root@hades:~# df -h / Filesystem Size Used Available Use% Mounted on rootfs 5.1M 2.1M 2.9M 42% /
Die deutsche Weboberfläche und upnp (installiert die notwendingen Packete gleich mit wegen der Abhängigkeiten:
opkg install luci-i18n-german luci-app-firewall luci-app-qos opkg install luci-app-upnp luci-app-hd-idle
Nur noch 2.5MB frei:
root@hades:~# df -h / Filesystem Size Used Available Use% Mounted on rootfs 5.1M 2.6M 2.5M 51% /
Das reicht erst einmal für die Grundfunktionen. Nun fehlt noch:
/etc/init.d/uhttpd start /etc/init.d/uhttpd enable
Auch den midnight commander? Der Platz reicht noch:
opkg update; opkg install mc
Die glib2 braucht sehr viel Platz:
root@hades:~# df -h / Filesystem Size Used Available Use% Mounted on rootfs 5.1M 4.1M 996.0K 81% /
siehe auch: http://wiki.openwrt.org/doc/howto/extroot
Beim Sysupgrade werden die Konfigurationsdateien in /etc/config beibehalten. Nicht jedoch der Status der init-Dateien (ob sie nach dem Systemstart gestartet werden). Darum muss auch die "alte" fstab erst wieder aktiviert werden. Die Art und Weise, wie OpenWrt die Partition einbindet, hat sich mit der Version Barrier Breaker (trunk) geändert. Die alte fstab ist nicht mehr gültig. Vor dem Erstellen der neuen fstab wird kontrolliert, welche Block-Devices zur Verfügung stehen.
Welches Blockdevice benutzt man? Doch vorher erst die alte fstab sichern. Man kann fast alles übernehmen, ausser einem wichtigen Unterschied. Es gibt zwei Methoden: Pivot Overlay und Pivot Root. Bei der ersteren werden, einfach ausgedrückt, nur die nachinstallierten und geänderten Konfigurationen (und eigene Dateien) kopiert, bei der anderen ist es der gesamte Inhalt des root-fs. Beide funktioniert gleichermassen gut.
Das Device und seine uuid findet man mit block detect heraus. Die alten Einstellungen werden gesichert.
mv /etc/config/fstab /etc/config/ftab.bak
block detect > /etc/config/fstab
config 'global' option anon_swap '0' option anon_mount '0' option auto_swap '1' option auto_mount '1' option delay_root '0' option check_fs '0' config 'mount' option target '/mnt/sda1' option uuid 'e546f8e0-435f-3623-caf5-64e429fbf98c' option enabled '0'
Nun zu den zwei Methoden.
Anstelle des Devicenamens /dev/sda1 oder des Dateisystems unter /mnt/sda1 gibt man /overlay an. Anstelle der uuid kann man auch angeben option device '/dev/sda1' . Die Datei /etc/config/fstab abändern in:
config 'mount' option target '/overlay' option uuid 'c776f8e0-745f-4826-b0fb-64d939eaf94b' option enabled '1'
Alle weiteren Einträge, die erscheinen, wenn noch externe USB-HDs angeschlossen sind, entfernt man aus der fstab. Diese sind "automount". Das System wird nicht richtig hochfahren, wenn sie in der fstab eingetragen werden, aber nicht angeschlossen sind.
Dann wird das /overlay-fs kopiert:
tar -C /overlay -cvf - . | tar -C /mnt/sda1 -xf -
In der Datei /etc/config/fstab wird dieser Abschnitt um /sda1 geändert und ergänzt zu:
config mount
option target /
option device /dev/sda1
option fstype ext4
option options rw,sync
option enabled 1
option enabled_fsck 0
Auch hier könnte man statt dem Devicenamen die UUID angeben
Falls noch nicht durchgeführt:
mkdir /mnt/sda1; mount /dev/sda1 /mnt/sda1
cd / mkdir /tmp/cproot mount --bind / /tmp/cproot tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda1 -xvf - sync umount /mnt/sda1 umount /tmp/cproot
Der Schritt mkfs.ext4 /dev/sda1, der auch bei einer Neuinstallation angebracht ist, fehlt hier, er wird nur bei einer Neuinstallation durchgeführt. Dann sollte aber der aktuelle Inhalt, das alte root-Filesystem in einen Backup-Ordner verschoben werden. Man hat dann auch Zugriff auf alle Dateien der älteren Installation.
Die neue fstab wird aktiviert.
/etc/init.d/fstab enable /etc/init.d/fstab start #optional
Dann fehlt nur noch:
reboot; exit
Nach einem Neustart zeigt sich, wie viel Platz man hat. In diesem Fall hier sind auf / noch die root-fs der vorhergehenden OpenWrt-Versionen und die User-Verzeichnisse. Darum sind mehrere 100MB belegt.
df -h / Filesystem Size Used Available Use% Mounted on rootfs 14.3G 292.5M 13.3G 2% /
Auch die weiteren Kapitel zum Thema OpenWrt und die Artikel über die Installation von mpd oder minidlna finden Anwendung. Es füht kein Weg an einer beinahen Neuinstallation vorbei. Die Konfigurationen kann man jedoch beibehalten und oder sichern. Am einfachsten geht das via Luci (Webinterface).