Mechanizm automatycznej aktualizacji obrazów OpenWrt
Ostatnia zmiana: 2024-08-18 13:24
Attendedsysupgrade, przetłumaczony na język polski jako "Nadzorowany Sysupgrade" (we wcześniejszych wersjach) lub "Aktualizacja interaktywna" w nowszych wersjach, to mechanizm pozwalający na sprawdzenie dostępności nowej wersji OpenWrt oraz aktualizację systemu. W przeciwieństwie do ręcznej aktualizacji możliwe jest żądanie zbudowania obrazu do którego dołączone zostaną dodatkowe pakiety które już mamy w systemie lub chcemy dodać je ręcznie. Proces ten opiera się o usługę online pozwalającą na budowanie obrazów z wykorzystaniem
imagebuilda, a która dostępna jest także z poziomu serwisu
https://firmware-selector.openwrt.org/Ten mechanizm jest opcjonalny, nie jest instalowany i nie jest dostępny domyślnie w obrazach OpenWrt. Moje obrazy LuCI zawierają go już wbudowanego.
Konsola
# opkg update
# opkg install auc
Plik konfiguracyjny (/etc/config/attendedsysupgrade, dostępny przez uci) zawiera m.in. adres URL serwera aktualizacji projektu OpenWrt (którego na początek nie musimy zmieniać).
Podstawowe wywołanie programu to:
Sam proces aktualizacji wygląda następująco:
# auc
auc/0.3.1-1
Server: https://sysupgrade.openwrt.org
Running: 22.03.1 r19777-2853b6d652 on x86/64 (generic)
Available: 22.03.2 r19803-9a599fee93
Requesting package lists...
rpcd: 2022-08-24-82904bd4-1 -> 2022-09-21-8c852b65-1
busybox: 1.35.0-3 -> 1.35.0-5
ucode-mod-ubus: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
luci-theme-bootstrap: git-22.141.59265-d8ecf48 -> git-22.288.45147-96ec0cd
libuuid: 2.37.3-3 -> 2.37.4-1
base-files: 1492-r19777-2853b6d652 -> 1494-r19803-9a599fee93
ucode-mod-uci: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
partx-utils: 2.37.3-3 -> 2.37.4-1
libsmartcols: 2.37.3-3 -> 2.37.4-1
firewall4: 2022-09-01-f5fcdcf2-1 -> 2022-10-18-7ae5e14b-1
dnsmasq: 2.86-14 -> 2.86-15
luci-mod-status: git-22.189.48501-6731190 -> git-22.302.42268-2878b35
libblkid: 2.37.3-3 -> 2.37.4-1
ucode-mod-fs: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
libnftnl: 1.2.1-1 -> 1.2.1-2
rpcd-mod-file: 2022-08-24-82904bd4-1 -> 2022-09-21-8c852b65-1
ucode: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
luci-base: git-22.245.77528-487e58a -> git-22.304.65171-ec905e6
libucode: 2022-08-29-344fa9e6-1 -> 2022-10-18-00af0650-1
rpcd-mod-iwinfo: 2022-08-24-82904bd4-1 -> 2022-09-21-8c852b65-1
luci-mod-network: git-22.244.54818-b13d8c7 -> git-22.300.51227-e076071
Are you sure you want to continue the upgrade process? [N/y] y
Requesting build....................
Downloading image from https://sysupgrade.openwrt.org/store/02227acb8c8d3bf7d11d087afcd18f1b/openwrt-22.03.2-ce7c8be5016d-x86-64-generic-squashfs-combined.img.gz
Writing to 'openwrt-22.03.2-ce7c8be5016d-x86-64-generic-squashfs-combined.img.gz'
Tue Nov 15 19:17:51 UTC 2022 upgrade: Image metadata not present
Tue Nov 15 19:17:51 UTC 2022 upgrade: Reading partition table from bootdisk...
Tue Nov 15 19:17:51 UTC 2022 upgrade: Extract boot sector from the image
Tue Nov 15 19:17:51 UTC 2022 upgrade: Reading partition table from image...
invoking sysupgrade
Tue Nov 15 19:17:53 UTC 2022 upgrade: Sending TERM to remaining processes ...
Tue Nov 15 19:17:57 UTC 2022 upgrade: Sending KILL to remaining processes ...
W przypadku takiej aktualizacji wszystkie pliki konfiguracyjne zostaną zachowane, ale stracimy własne pliki, skrypty czy ustawienia które nie wchodzą w skład pakietów. Czyli zachowuje się identyczne jak ręczna aktualizacja z opcją zachowania konfiguracji.
auc posiada kilka różnych opcji pozwalających na sprawdzenie dostępności wydania, wymuszenie aktualizacji, instalowane określonej wersji czy aktualizację innego wydania niż ostatnie dostępne.
LuCI
W środowisku graficznym LuCI aktualizujemy listę pakietów i instalujemy dodatkowe pakiety (menu System -> Oprogramowanie):
luci-app-attendedsysupgrade oraz ew pakiet
luci-i18n-attendedsysupgrade-pl jeżeli chcemy mieć język polski. Po ponownym zalogowaniu się do LuCI w menu "System" powinna być dostępna pozycja "Nadzorowany Sysupgrade" lub "Aktualizacja interaktywna".


Pierwsza zakładka umożliwia sprawdzenie i ew pobranie oprogramowania, druga zakładka - konfigurację usługi. Jeżeli zostanie zaznaczona opcja "Tryb zaawansowany" w zakładce "Konfiguracja" to w momencie sprawdzenia dostępności wersji zostanie wyświetlona lista zainstalowanych pakietów którą można zmodyfikować - usunąć lub wpisać nowe pakiety. Serwis zbuduje nowe obraz bazując na takiej liście który będzie można pobrać lub/i automatycznie zainstalować.



Obrazy z eko.one.pl
Witryna eko.one.pl także posiada mechanizm aktualizacji obrazów do ostatniej dostępnej wersji. W przeciwieństwie do serwisu openwrt.org, mechanizm eko.one.pl nie pozwala na automatycznie budowanie obrazów bazujących na własnej liście pakietów tylko dostarcza gotowe, skompilowane obrazy które dostępne są także za pośrednictwem
wyszukiwarki czy bezpośrednio do pobrania z
witryny dl.eko.one.pl.
Aby skorzystać z mechanizmu dostarczonego przez portal eko.one.pl należy zmienić adres serwera aktualizacji na
https://dl.eko.one.pl który zawarty jest w pliku /etc/config/attendedsysupgrade - ręcznie z konsoli:
# uci set attendedsysupgrade.server.url='https://dl.eko.one.pl'
# uci commit
lub w LuCI z zakładce "System" -> "Nadzorowany Sysupgrade" -> "Konfiguracja", sekcja "Serwer" pole "Adres".

Po zapisaniu zmian możliwe jest użycie w identyczny sposób z konsoli lub LuCI jak opisano powyżej.
Aktualizowane obrazy z witryny dl.eko.one.pl zawsze mają predefiniowaną zawartość.
Wraz z końcem sierpnia 2023r pojawił się w repozytorium eko.one.pl pakiet
backupandrestore, zawarty domyślnie w aktualnie budowanych obrazach pobieranych z
https://dl.eko.one.pl. W jego skład wchodzą dwa skrypty:
- backuppkgslist.sh, wykonanie go tworzy listę pakietów zainstalowanych ręcznie przez użytkownika
- restorepkgslist.sh, po którego uruchomieniu instalowane są pakiety ze wcześniej utworzonej listy
Dzięki tym pakietom możliwe jest zrobienie listy pakietów zrobionych przez użytkownika, wykonanie aktualizacji systemu z zachowaniem konfiguracji (ręcznie przez sysupgrade, przez auc lub z LuCI przez attendedsysupgrade) a później zainstalowanie pakietów na podstanie danych z zachowanego backupu.
Więcej informacji: na
forum witryny.