@Dude Danke für die Tipps. Die Tools waren mir bekannt, auch wenn ich sie noch nicht selber getestet habe. Man kann ja nicht alles ausprobieren 🙂
Unbound bot sich hier einfach als Test für die LXC Container an.
Ich wollte das schon länger mal testen und hier festhalten. Dann heute mal ran.
Wie hier im Beitrag beschrieben OpenWrt neu kompilieren. Für die Faulen, hier die Schritte...
git clone https://github.com/openwrt/openwrt.git
cd openwrt
git status
git diff
wget https://patch-diff.githubusercontent.com/raw/mj22226/openwrt/pull/2.patch
git am 2.patch
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make -j 6
Danach haben wir ein squashfs sysupgrade Image.
openwrt-rockchip-armv8-friendlyarm_nanopi-r4s-squashfs-sysupgrade.img.gz
Dieses File können wir nun auf die bestehende Installation hochladen. Unter System / Backup/Flash Firmware die Datei auswählen. Danach auf Flash Image klicken! Danach etwas Geduld.
Ihr seht, hierbei kann man die Settings beibehalten. Es gibt da aber ein kleines Problem. Mit Settings ist kein Webinterface und evt. Zusatzpakete gemeint. Das ist danach alles weg und man fängt von vorne an Der Flashvorgang sieht so aus.
Nach einiger Zeit läuft die Kiste wieder, man bekommt wieder eine IP-Adresse usw. Aber. man kann das Webinterface nicht mehr erreichen, weil dieses schlicht nicht mehr installiert ist. Also, flott wieder nachinstallieren.
opkg update
opkg install luci
Danach hat man wieder Zugriff aufs Webinterface. Version im Webinterface.
Beim Installieren von Luci kamen noch diese netten Meldungen
Collected errors:
* resolve_conffiles: Existing conffile /etc/config/uhttpd is different from the conffile in the new package. The new conffile will be placed at /etc/config/uhttpd-opkg.
* resolve_conffiles: Existing conffile /etc/config/luci is different from the conffile in the new package. The new conffile will be placed at /etc/config/luci-opkg.
* resolve_conffiles: Existing conffile /etc/config/ucitrack is different from the conffile in the new package. The new conffile will be placed at /etc/config/ucitrack-opkg.
Ok, neue Config Files(?), muss ich mir noch ansehen......
Hier die Anleitung von OpenWrt wie das ganze funktioniert und wie man auch seine Sachen sichern kann. Das teste ich dann im nächsten Schritt.
In der OpenWrt Anleitung findet man das hier
Opkgscript
Copy opkgscript to your router. Ideally in a directory which will be preserved after flashing so you don't have to copy it again. Make it executable:
chmod +x /path/to/the/opkgscript.sh
Create a snapshot of the installed packages:
/path/to/the/opkgscript.sh -v write
By default the script will save the list in /etc/config/opkg.installed, which is preserved over flashing. When you log back in after the upgrade configure the internet connectivity, run and wait until it finished with the installation:
/path/to/the/opkgscript.sh -v install
Das scheint eine sehr einfache Möglichkeit zu sein, die installierten Pakete zu erfassen und hinterher erneut zu installieren. Ich habe die zwei Dateien mal nach /etc/config geschrieben
root@OpenWrt:/etc/config# ls -lha
drwxr-xr-x 1 root root 3.4K May 24 08:30 .
drwxr-xr-x 1 root root 3.4K May 24 08:27 ..
-rw------- 1 root root 4.3K Feb 4 07:26 collectd
-rw------- 1 root root 1.2K Jan 18 2013 dhcp
-rw------- 1 root root 134 Jan 31 08:18 dropbear
-rw------- 1 root root 3.0K Jan 18 2013 firewall
-rw-r--r-- 1 root root 862 Feb 7 09:53 luci
-rw-r--r-- 1 root root 687 May 19 13:17 luci-opkg
-rw-r--r-- 1 root root 4.4K Feb 11 19:45 luci_statistics
-rw------- 1 root root 894 Jan 18 2013 network
-rw-r--r-- 1 root root 3.4K May 24 08:30 opkg.installed
-rwxr-xr-x 1 root root 5.7K May 24 08:29 opkgscript.sh
-rw------- 1 root root 167 May 18 17:31 rpcd
-rw------- 1 root root 653 Jan 18 2013 system
-rw-r--r-- 1 root root 910 Feb 10 16:41 ucitrack
-rw-r--r-- 1 root root 788 May 19 13:17 ucitrack-opkg
-rw------- 1 root root 783 Feb 7 09:53 uhttpd
-rw------- 1 root root 4.1K Mar 21 21:34 uhttpd-opkg
Ein Ausschnitt aus der opkg.installed
luci-lib-ip - git-20.250.76529-62505bd
luci-lib-jsonc - git-19.317.29469-8da8f38
luci-lib-nixio - git-20.234.06894-c4a4e43
luci-mod-admin-full - git-19.253.48496-3f93650
luci-mod-network - git-21.140.43486-398932f
luci-mod-status - git-21.132.35841-3c66c5b
luci-mod-system - git-21.105.64372-8c6a29a
luci-proto-ipv6 - git-21.074.38504-171ef77
luci-proto-ppp - git-21.088.74146-7d49508
luci-theme-bootstrap - git-20.363.32570-6ffd159
mkf2fs - 1.14.0-1
mtd - 26
nano - 5.7-1
Luci und Nano sind kein Standard und müssen somit nach einem Sysupgrade neu installiert werden. Das sollte mit dem Script sehr einfach zu realisieren sein. Ein erster Versuch war erfolgreich, ich werde das aber noch ein wenig testen.
Script -> https://github.com/richb-hanover/OpenWrtScripts/blob/master/opkgscript.sh
Mir war gerade aufgefallen, das ich kein Wireguard installieren konnte. Ok, kurz nachdenken, das Kernel Modul fehlt vermutlich. Also
make menuconfig
aufrufen. Dann Kernel modules / Network Support auswählen. Dort findet man ganz unten
kmod-wireguard
Danach den Kernel neugebaut und das Image geflasht. Danach war wieder alles weg. Und dann schnell das Script aufgerufen
/etc/config/./opkgscript.sh install
Jetzt kommt ein Fehler, weil wir erst mal alle Daten holen müssen. Also VORHER das hier
opkg update
Danach installiert das Script alles was fehlt. Und meine Wireguard Installation ging auch.
root@OpenWrt:/etc/config# opkg install wireguard-tools
Installing wireguard-tools (1.0.20210223-2) to root...
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_generic/base/wireguard-tools_1.0.20210223-2_aarch64_generic.ipk
Configuring wireguard-tools.
Für die Wireguard Installation fehlten noch zwei Pakete.
root@OpenWrt:~# opkg install luci-proto-wireguard
Installing luci-proto-wireguard (git-21.074.38504-171ef77) to root...
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_generic/luci/luci-proto-wireguard_git-21.074.38504-171ef77_all.ipk
Configuring luci-proto-wireguard.
root@OpenWrt:~# opkg install luci-app-wireguard
Installing luci-app-wireguard (git-21.058.18697-98c3d36) to root...
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_generic/luci/luci-app-wireguard_git-21.058.18697-98c3d36_all.ipk
Configuring luci-app-wireguard.
Nach einem Reboot ist dann auch alles vorhanden. Somit kann man Wireguard auch über Luci administrieren. Ich komme ein wenig vom Thema ab
Damit das Ganze beim nächsten Upgrade auch noch vorhanden ist, eine kurze Sicherung.
root@OpenWrt:~# /etc/config/./opkgscript.sh write
Das habe ich bisher auf meinem zweiten NanoPi R4S ausprobiert, genau dafür ist er da :), jetzt das Ganze mal auf meinem NanoPi R4S ausprobieren, der mir als Firewall hinter meiner Fritzbox dient. Der macht hier schon monatelang seinen Dienst, ohne einen Fehler. Zocken mit Playstation, TV streamen, alles störungsfrei
Ich schrieb ja oben über Daten Sichern bevor man was macht......
Ok, danach war die Installation lauffähig, aber das Webinterface kaputt. Kryptische Fehlermeldung, die ich auch mit Google nicht fixen konnte. Naja, es war nicht so schwer da ich ja noch einen R4S mit identischer Konfiguration hatte. SD_Karte getauscht und weiter geht's....
Aber!! Warum? Ich musste ganz schön lange suchen, bis ich heraus fand das es mittlerweile eine neue Version als Release Candidate gibt.
Diese Version habe ich dann installiert und das Upgrade ist gescheitert. Da ich auf der alten Installation auch schon eine ganze Menge getestet hatte und es evt. auch vermurkst hatte, war es ja nicht so verkehrt mal was frisches aufzusetzen.
Kurz meine Konfigurationsdateien kontrolliert und nach kleineren Korrekturen und Reboot lief alles wieder wie vorher.
Diesmal habe ich mir die SD-Karte als Image gesichert. Nur für den Fall, das ich das mal dringend brauche.
Es bleibt weiterhin nicht ganz einfach eine OpenWrt Installation aktuell zu halten. Aber so einmal im Jahr kann man sich ja die Arbeit machen.....