Skip to content

NanoPi R4S - OpenWrt upgraden !?

NanoPi R4S
  • Ich wollte das schon länger mal testen und hier festhalten. Dann heute mal ran.

    Teil 1

    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
    

    !!Achtung!! Bitte vorher für eine Datensicherung sorgen, es kann ja auch mal was schief gehen 😉

    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.

    20210524_085725.jpg

    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.

    20210524_090344.jpg

    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.

    795c8c39-a637-464b-894a-e49ff84f0632-grafik.png

    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
    

    67ac6dbd-6c66-4742-8548-67f94e5892cb-grafik.png

    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.....

  • NanoPi5 - eMMC

    Verschoben NanoPi R5S
    1
    0 Stimmen
    1 Beiträge
    195 Aufrufe
    Niemand hat geantwortet
  • OpenWrt - LXC Container

    Linux
    4
    0 Stimmen
    4 Beiträge
    617 Aufrufe
    FrankMF

    @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.

  • OpenWrt - Docker & DNS & Zugriff auf WAN

    Linux
    4
    0 Stimmen
    4 Beiträge
    431 Aufrufe
    FrankMF

    Es geht weiter, der erste ☕ und ich bin mit der Lösung nicht so richtig zufrieden, also suchen.

    Als erstes habe ich heute Morgen ein frisches SD-Karten Image mit Docker von FreindlyWrt genommen und auf meinem Test NanoPi R5S installiert. Dort mal die Config angeschaut um zu sehen, ob der Eintrag standardmäßig gesetzt ist. Doch dort taucht dann einmal eine ganz ander Config auf 🙄

    # The following settings require a restart of docker to take full effect, A reload will only have partial or no effect: # bip # blocked_interfaces # extra_iptables_args # device config globals 'globals' # option alt_config_file '/etc/docker/daemon.json' option enable '1' option data_root '/mnt/nvme_part2/docker' option log_level 'warn' option iptables '1' #list hosts 'unix:///var/run/docker.sock' # option bip '172.18.0.1/24' # option fixed_cidr '172.17.0.0/16' # option fixed_cidr_v6 'fc00:1::/80' # option ipv6 '1' # option ip '::ffff:0.0.0.0' # list dns '172.17.0.1' # list registry_mirrors 'https://<my-docker-mirror-host>' list registry_mirrors 'https://hub.docker.com' option remote_endpoint '0' # option bridge 'br-container' # Docker ignores fw3 rules and by default all external source IPs are allowed to connect to the Docker host. # See https://docs.docker.com/network/iptables/ for more details. # firewall config changes are only additive i.e firewall will need to be restarted first to clear old changes, # then docker restarted to load in new changes. config firewall 'firewall' option device 'docker0' list blocked_interfaces 'wan' option extra_iptables_args '--match conntrack ! --ctstate RELATED,ESTABLISHED' # allow outbound connections

    Das interessiert uns jetzt

    list blocked_interfaces 'wan' option extra_iptables_args '--match conntrack ! --ctstate RELATED,ESTABLISHED' # allow outbound connections

    Wenn ich das jetzt alles richtig verstehe, muss WAN geblockt sein, weil sonst der Docker Host offen im Netz steht (Hierbei bin ich mir nicht 100% sicher)
    Die zweite Zeile ist eine iptables Regel, die es den Containern dann ermöglicht das Internet zu erreichen.

    Das habe ich jetzt so eingestellt und getestet.

    root@b9ffae24913a:/# ping 1.1.1.1 PING 1.1.1.1 (1.1.1.1): 56 data bytes 64 bytes from 1.1.1.1: icmp_seq=0 ttl=57 time=17.151 ms 64 bytes from 1.1.1.1: icmp_seq=1 ttl=57 time=16.553 ms 64 bytes from 1.1.1.1: icmp_seq=2 ttl=57 time=20.630 ms 64 bytes from 1.1.1.1: icmp_seq=3 ttl=57 time=13.948 ms ^C--- 1.1.1.1 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 13.948/17.071/20.630/2.382 ms root@b9ffae24913a:/# ping google.de PING google.de (142.250.185.195): 56 data bytes 64 bytes from 142.250.185.195: icmp_seq=0 ttl=58 time=23.797 ms 64 bytes from 142.250.185.195: icmp_seq=1 ttl=58 time=16.953 ms 64 bytes from 142.250.185.195: icmp_seq=2 ttl=58 time=19.441 ms ^C--- google.de ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/stddev = 16.953/20.064/23.797/2.829 ms

    Ich hoffe mal das ich diese Thema jetzt zu den Akten legen kann.

    Wenn was falsch ist, bitte hier kommentieren, damit ich das ändern kann.

  • NanoPi R5S - FriendlyWrt Docker Image

    NanoPi R5S
    1
    0 Stimmen
    1 Beiträge
    659 Aufrufe
    Niemand hat geantwortet
  • NanoPi R4S - Armbian

    NanoPi R4S
    2
    0 Stimmen
    2 Beiträge
    356 Aufrufe
    FrankMF

    Müsste seit gestern so weit sein 🙂

    b20f93d2-1719-40c5-afb8-6b4edafa6793-image.png

  • OpenWrt - Sysupgrade

    OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    240 Aufrufe
    Niemand hat geantwortet
  • Ubiquiti ER-X - DMZ

    Verschoben OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    251 Aufrufe
    Niemand hat geantwortet
  • Ubiquiti ER-X - Switch

    Verschoben OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    260 Aufrufe
    Niemand hat geantwortet