How can we make installation/upgrade on unsupported devices a bit better :
Debian Armel/Kirkwood/ARMv5TE, other old boards, or SoC's without current official Pi-hole support
@yubiuser , and any other dev who reads this... thank you for your help in making this smoother for us. Perhaps there will be new risc-v board that needs this "unsupported" in the coming months or years... as well as some of these older boards or "not-quite-raspberry-pi's"...
1. Proposal for a patch to smooth out the update system for unsupported arch's. I think it would make a good addition to what is already present in the unsupported/binary
branch.
Currently the upgrade.sh
script doesn't recognize the PIHOLE_SKIP_FTL_CHECK
env variable, and we see the behavior below, where it incorrectly identifies/states FTL: update available
and fruitless output after that...
root@debian-armel-trixie:/opt/pihole# PIHOLE_SKIP_OS_CHECK=true PIHOLE_SKIP_FTL_CHECK=true ./update.sh
[i] PIHOLE_SKIP_OS_CHECK env variable set to true - installer will continue
[β] Update local cache of available packages
[β] Building dependency package pihole-meta.deb
[β] Installing Pi-hole dependency package
[i] Checking for updates...
[i] Pi-hole Core: up to date
[i] Web Interface: up to date
[i] FTL: update available
[i] FTL out of date, it will be updated by the installer.
[β] Root user check
.;;,.
.ccccc:,.
:cccclll:. ..,,
:ccccclll. ;ooodc
'ccll:;ll .oooodc
.;cll.;;looo:.
.. ','.
.',,,,,,'.
.',,,,,,,,,,.
.',,,,,,,,,,,,....
....''',,,,,,,'.......
......... .... .........
.......... ..........
.......... ..........
......... .... .........
........,,,,,,,'......
....',,,,,,,,,,,,.
.',,,,,,,,,'.
.',,,,,,'.
..'''.
[i] SELinux not detected
[β] Update local cache of available packages
[β] Checking apt-get for upgraded packages... 13 updates available
[i] It is recommended to update your OS after installing the Pi-hole!
[β] Building dependency package pihole-meta.deb
[β] Installing Pi-hole dependency package
[i] PIHOLE_SKIP_OS_CHECK env variable set to true - installer will continue
[i] PIHOLE_SKIP_FTL_CHECK env variable set to true - skipping architecture check
[i] Performing unattended setup, no dialogs will be displayed
[i] Resetting local repos
[β] Resetting repository within /etc/.pihole...
[β] Resetting repository within /var/www/html/admin...
[β] Checking for user 'pihole'
[i] PIHOLE_SKIP_FTL_CHECK env variable set to true - skipping FTL binary installation
[β] Installing scripts from /etc/.pihole
[i] Installing configs from /etc/.pihole...
[β] Installing latest Cron script
[i] Installing latest logrotate script...
[i] Existing logrotate file found. No changes made.
[β] man pages installed and database updated
[i] Testing if systemd-resolved is enabled
[i] Systemd-resolved is not enabled
[i] Restarting services...
[β] Enabling pihole-FTL service to start on reboot...
[i] Restarting pihole-FTL service...System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to system scope bus via local transport: Host is down
Unable to complete update, please contact Pi-hole Support
root@debian-armel-trixie:/opt/pihole#
This patch provides a way for the user to more accurately determine a proper action and provide correct (or at least less erroneous) output. Corrected/appropriate output from it is also shown below. From my testing, it doesn't seem to alter behavior on supported systems.
root@debian-armel-trixie:/opt/pihole# cat /fix_FTLcheckupdate_for_PIHOLE_CHECK_FTL_SKIP.patch
--- update.sh-orig 2025-03-05 07:39:23.251302130 -0600
+++ update.sh 2025-03-05 07:26:34.755000097 -0600
@@ -151,7 +151,11 @@
local binary
binary="pihole-FTL${funcOutput##*pihole-FTL}" #binary name will be the last line of the output of get_binary_name (it always begins with pihole-FTL)
- if FTLcheckUpdate "${binary}" &>/dev/null; then
+
+ if [[ "$PIHOLE_SKIP_FTL_CHECK" == true ]]; then
+ FTL_update=false
+ echo -e " ${INFO} FTL:\\t\\t${COL_LIGHT_GREEN}PIHOLE_CHECK_FTL_SKIP env variable set to true, skipping FTL update check${COL_NC}"
+ elif [ "$PIHOLE_SKIP_FTL_CHECK" != true ] && [ FTLcheckUpdate "${binary}" &>/dev/null ] ; then
FTL_update=true
echo -e " ${INFO} FTL:\\t\\t${COL_YELLOW}update available${COL_NC}"
else
The patch maintains the function of the case
structure that follows (note the placement of the test FTLcheckUpdate "${binary}" &>/dev/null
at the end of the elif
block.)
The output and function can be seen below...
root@debian-armel-trixie:/opt/pihole# PIHOLE_SKIP_OS_CHECK=true PIHOLE_SKIP_FTL_CHECK=true ./update-psfc.sh
[i] PIHOLE_SKIP_OS_CHECK env variable set to true - installer will continue
[β] Update local cache of available packages
[β] Building dependency package pihole-meta.deb
[β] Installing Pi-hole dependency package
[i] Checking for updates...
[i] Pi-hole Core: up to date
[i] Web Interface: up to date
[i] FTL: PIHOLE_CHECK_FTL_SKIP env variable set to true, skipping FTL update check
[β] Everything is up to date!
- Question regarding the
unsupported/binary
branch.
Will this branch eventually be merged into master?
Thanks again for you help and consideration.
Dave