Package ffgt-preserve-mods

Ich hab’ mir mal dazu was ausgedacht:

ffgt-preserve-mods
==================

Provide a framework to automatically re-do changes to
e. g. the network setup of a Gluon node (like moving
the LAN ports to the br-wan instead of br-client).

/lib/gluon/ffgt-preserve-mods.sh
--------------------------------

If existing and executable, it will be executed after
*every* firmware upgrade. You MUST ensure that this
skript will not cause errors nor behaves badly if run
multiple times.

This file is saved across firmware upgrades. Please keep
it small!

Sprich: man muß ein Shellskript erstellen, welches guckt, ob die eigenen Änderungen drin sind und falls nicht, diese nachzieht. Testversion in nächstem Build.

Dann gucken wir doch mal:

  OS: 17.01-SNAPSHOT, r3981+104-184fe1    FW: 1.0.1~8                         
  HW: TP-Link TL-WR841N/ND v9                                             
root@33332-4830-776a:~# cd /lib/gluon/
root@33332-4830-776a:/lib/gluon# mv ffgt-preserve-mods.sh-example ffgt-preserve-mods.sh
root@33332-4830-776a:/lib/gluon# vi ffgt-preserve-mods.sh
root@33332-4830-776a:/lib/gluon# cat ffgt-preserve-mods.sh
#!/bin/sh
# Rename this to /lib/gluon/ffgt-preserve-mods.sh and add commands;
# ENSURE that this script does NOT throw errors!
date >/tmp/boottime
exit 0
root@33332-4830-776a:/lib/gluon# cd /tmp/
root@33332-4830-776a:/tmp# wget http://firmware.4830.org/rawhide/sysupgrade/gluon-4830-1.0.1~9-tp-link-tl-wr841n-nd-v9-sysupgrade.bin
Downloading 'http://firmware.4830.org/rawhide/sysupgrade/gluon-4830-1.0.1~9-tp-link-tl-wr841n-nd-v9-sysupgrade.bin'
Connecting to 2a06:e881:1700:1:400:c0ff:fefb:e216:80
Writing to 'gluon-4830-1.0.1~9-tp-link-tl-wr841n-nd-v9-sysupgrade.bin'
gluon-4830-1.0.1~9-t 100% |*******************************|  3392k  0:00:00 ETA
Download completed (3473412 bytes)
root@33332-4830-776a:/tmp# sysupgrade -v gluon-4830-1.0.1~9-tp-link-tl-wr841n-nd-v9-sysupgrade.bin 
Image metadata not found
Saving config files...
etc/config/alfred
etc/config/autoupdater
etc/config/autoupdater-wifi-fallback
[…]
lib/gluon/core/sysconfig/wan_ifname
lib/gluon/ffgt-preserve-mods.sh
killall: watchdog: no process killed
Commencing upgrade. All shell sessions will be closed now.
Connection to 2001:bf7:1310:11:ea94:f6ff:fea4:776a closed by remote host.
Connection to 2001:bf7:1310:11:ea94:f6ff:fea4:776a closed.

Stunde der Wahrheit: hat das Skript überlebt UND wurde es ausgeführt?

  OS: 17.01-SNAPSHOT, r3981+104-184fe1    FW: 1.0.1~9                         
  HW: TP-Link TL-WR841N/ND v9                                             
root@33332-4830-776a:~# cat /tmp/boottime 
Wed Jan 30 01:42:07 GMT 2019
root@33332-4830-776a:~# ls -la /lib/gluon/*preserve*
-rwxrwxr-x    1 root     root           154 Feb 12 18:43 /lib/gluon/ffgt-preserve-mods.sh
-rwxrwxr-x    1 root     root           135 Apr 23  2016 /lib/gluon/ffgt-preserve-mods.sh-example

Das Example-Skript kommt immer (neu) mit, aber wie man sieht, hat das angelegte und modifizierte /lib/gluon/ffgt-preserve-mods.sh »überlebt« und wurde ausgeführt :smile:

1 „Gefällt mir“

Cool! :hugs:

Have fun :wink: Aber achtet auf den Speicherplatz!

  OS: 17.01-SNAPSHOT, r3981+104-184fe1    FW: 1.0.1~10                        
  HW: TP-Link TL-WR841N/ND v9                                             
root@33332-4830-776a:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.0M      2.0M         0 100% /rom
tmpfs                    13.4M    152.0K     13.3M   1% /tmp
/dev/mtdblock3          512.0K    256.0K    256.0K  50% /overlay
overlayfs:/overlay      512.0K    256.0K    256.0K  50% /
tmpfs                   512.0K         0    512.0K   0% /dev

Möglichst auf Kommentare und auch überflüssige Leerzeichen/-zeilen verzichten, auf 841ern und anderen 4/32-Kisten ist der Platz einfach sehr begrenzt! Ich werde auf /lib/gluon/ffgt-preserve-mods.sh-example verzichten und das ins Readme verlagern (auf github ist mehr Platz ;)).

:raised_hands: Chakka!
Es funktioniert. https://wiki.freifunk.net/Konsole hat alle nötigen Infos, damit ich nach einem Update die Ports umbiegen kann. Autoupdate habe ich auch wieder aktiviert (bin von der 1.1.2-7 auf die 1.1.2-10 gegangen).
Cool was man alles machen kann.

Meine ffgt-preserve-mods.sh sieht so aus

#!/bin/sh
# Rename this to /lib/gluon/ffgt-preserve-mods.sh and add commands;
# ENSURE that this script does NOT throw errors!
uci del_list network.client.ifname=eth0
uci add_list network.wan.ifname=eth0
uci commit
/etc/init.d/network restart
exit 0

Danke

1 „Gefällt mir“

Cool :wink: Ich würde noch:

  • Die Kommentare rauswerfen (jedes Byte zählt bei 4/32-Geräten)
  • " || true" ans Ende der ersten beiden uci-Zeilen packen, damit das Skript nicht abbricht, falls das Kommando einen Fehler wirft

Deshalb habe ich es hier gepostet. :wink:
Deine Vorschläge habe ich umgesetzt und bekomme ab jetzt keine Updates mehr mit. So die Idee. Spitze.

1 „Gefällt mir“