Building Pi-hole v6.0 on Pogoplug V2

Yeah, the Dashboard has shown V6 for all 3 components, but it really wasn't. At least not completely. /usr/local/bin/pihole was still V5. Stuff in /opt/pihole was V5. I fixed that stuff, and also just updated to Debian 12.9.

Here's the memory stuff

root@pihole:~# free -h ;  ls -lsh /dev/shm
               total        used        free      shared  buff/cache   available
Mem:           106Mi        31Mi        13Mi        96Ki        72Mi        74Mi
Swap:          255Mi       9.5Mi       246Mi
total 2.1M
   0 drwxrwxrwt  2 root   root    380 Feb 25 13:27 .
   0 drwxr-xr-x 12 root   root   2.8K Feb 25 13:27 ..
   0 -rw-r--r--  1 root   root      0 Feb 25 13:26 .tmpfs
332K -rw-------  1 pihole pihole 332K Feb 25 13:27 FTL-1166-clients
4.0K -rw-------  1 pihole pihole 4.0K Feb 25 13:27 FTL-1166-clients-lookup
4.0K -rw-------  1 pihole pihole  328 Feb 25 13:27 FTL-1166-counters
4.0K -rw-------  1 pihole pihole 4.0K Feb 25 13:27 FTL-1166-dns-cache
4.0K -rw-------  1 pihole pihole 4.0K Feb 25 13:27 FTL-1166-dns-cache-lookup
4.0K -rw-------  1 pihole pihole 4.0K Feb 25 13:27 FTL-1166-domains
4.0K -rw-------  1 pihole pihole 4.0K Feb 25 13:27 FTL-1166-domains-lookup
548K -rw-------  1 pihole pihole 548K Feb 25 14:00 FTL-1166-fifo-log
4.0K -rw-------  1 pihole pihole   56 Feb 25 13:27 FTL-1166-lock
 12K -rw-------  1 pihole pihole  12K Feb 25 13:27 FTL-1166-overTime
4.0K -rw-------  1 pihole pihole 4.0K Feb 25 13:27 FTL-1166-per-client-regex
288K -rw-------  1 pihole pihole 288K Feb 25 13:27 FTL-1166-queries
768K -rw-------  1 pihole pihole 768K Feb 25 13:27 FTL-1166-recycler
4.0K -rw-------  1 pihole pihole  136 Feb 25 13:27 FTL-1166-settings
 80K -rw-------  1 pihole pihole  80K Feb 25 13:27 FTL-1166-strings
 12K -rw-------  1 pihole pihole  12K Feb 25 13:27 FTL-1166-upstreams
root@pihole:~#

But note that I don't have any clients using it yet. I'm going to "click every button" on the web interface and make sure everything appears to be working, then point just my PC to it and see how it does.

So here's a question: I'm trying to figure out a way to update just core and/or web when updates are available, since I'll have to compile FTL myself. Does "pihole checkout core master" and "pihole checkout web master" do that? Or does it just pull them download somewhere (/etc/.pihole ?) and I'd have to still apply them?

This should work


This is unlikely to work. It will always trigger the installation script to set up everything and will fail at the FTL step.

Is there another way to update core?

Why do you want to update just one of the components? Core will always pull FTL binary.

CPU architecture on my Pogoplug is no longer supported, so I'll be manually compiling FTL when it gets updated. Trying to figure out a way to update the other 2 components.

I agree w/ @yubiuser, if I understand what he is saying... My understand/experience is that it will indeed do the core (pihole script, and helper scripts), but after that (including FTL) will fail.

I'm not sure how many of the developers (whom I respect and value greatly - for their work and for their patience in terms of support) have an unsupported arch hardware item to experiment on ... so I don't know/understand what it looks like from their end. :+1: for Developers/Support Folks.

@yubiuser , is it indeed the case that pihole checkout web master will first update the scripts (non-binaries in /opt/ and /usr/local/ ) and then fail for the rest?

========================

@rsantag : Let me clarify/correct something... I used PIHOLE_SKIP_OS_CHECK=true pihole checkout core master, and it did work for me. I apologize for not stating the env flag PIHOLE_SKIP_OS_CHECK=true. It makes a difference.

Depending on how much memory is being used before you run this command, you may want to first shut down all non-essential services that might be running on your little 128MB box... especially pihole-FTL. apt-get and git use a lot of memory also and the box may struggle w/ it.

I just have an alias in my ~/.profile that shuts down FTL, does the upgrades, then restarts FTL.

root@trixie-debian-armel:/opt/pihole# PIHOLE_SKIP_OS_CHECK=true pihole checkout core master
  Please note that changing branches severely alters your Pi-hole subsystems
  Features that work on the master branch, may not on a development branch
  This feature is NOT supported unless a Pi-hole developer explicitly asks!
  Have you read and understood this? [y/N] y

  [βœ“] Fetching branches from https://github.com/pi-hole/pi-hole.git
  [i] 10 branches available for Pi-hole Core

  [βœ“] Switching to branch: 'master' from 'refs/heads/master'
  [i] Already up to date.
  [i] Running installer to upgrade your installation

  [βœ“] 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... 30 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] Performing unattended setup, no dialogs will be displayed
  [βœ“] Check for existing repository in /etc/.pihole
  [i] Update repo in /etc/.pihole...HEAD is now at 567bb72 Pi-hole Core v6.0.4 (#5975)
  [βœ“] Update repo in /etc/.pihole

  [βœ“] Check for existing repository in /var/www/html/admin
  [i] Update repo in /var/www/html/admin...HEAD is now at 42e7279a Pi-hole web v6.0.1 (#3234)
  [βœ“] Update repo in /var/www/html/admin

  [βœ“] Checking for user 'pihole'

  [i] FTL Checks...

  [βœ—] This processor architecture is not supported by Pi-hole (v5TE)  [βœ—] Unknown error. Please contact Pi-hole Support
  [βœ“] 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...   Error: Unable to complete update, please contact support

My own restart of FTL does still work, even though the installer itself is unhappy about things...

Oh, interesting. I did try PIHOLE_SKIP_OS_CHECK=true when I was originally doing "pihole -up", and that didn't seem to help. But using it with "pihole checkout core master" sounds promising. If that works, then maybe there is a fairly easy path for updating core and web. I will definitely give that a try the next time there's an update to core. Thanks!

I would happily provide Pogoplug V4 devices running Debian 12.9 to a few of the developers if it would mean adding back support for Armel devices...

Alas, it is very unlikely to happen. They moved the build system from Debian to Arch (or is it Alpine?) for overall ease, but that new distro doesn't have a prebuilt Docker image for Armel/ARMv5TE, so it was decided to orphan it... I can understand the reasoning - Kirkwood was a great SoC in 2010... 15 years is a long run for a non-desktop machine.

Debian will officially support them through the end of Trixie (2028 or so, then maybe less formal support after that).

I'll use mine and build locally as long as the machines and I both function. Handy dependable low-wattage machines that are robust.

2 Likes

I would say: none. We are busy to keep all things up with supported hardware. The reason the Popoglug is not supported is simple: we use an Alpine linux build image to compile the FTL binary, but there are no Arm v5 Alpine images.

I prepared a PR which could make your life easier. It would allow to skip the architecture detection and FTL download.

https://github.com/pi-hole/pi-hole/pull/6022


@yubiuser , is it indeed the case that pihole checkout web master will first update the scripts (non-binaries in /opt/ and /usr/local/ ) and then fail for the rest?

It will first fetch the git repos (e.g. for core to /etc/.pihole)

and then run the installer to update everything (e.g. copying to /opt/pihole)

See above, why we (unfortunately) can't support it anymore.

Yes, understood why support is being dropped. But this change would definitely make it much easier to update everything but FTL. Thank you.

I'm happily hopeful... and say thanks to @yubiuser for this. I will give it a go during the next day or so... I had briefly looked through the scripts to try to where such switch/flag could be set/tested, but I lack the deep familiarity that developers have when it comes to looking at their own code and seeing quickly what might be done.

I'll report back and offer whatever feedback and observations that I can.

Thanks again.

Dave

@yubiuser, I ran some tests today using the new flag PIHOLE_SKIP_FTL_BINARY_CHECK and this branched basic-install.sh script. This was on an already established, working installation, so it simply treated it as an update rather than a fresh install. I will try a fresh install later this week and report back w/ details.

If there is any way I can further help in testing, please let me know and I'll contribute. NOTES: are at the end...

Conditions for these tests:

  • hardware: Pogoplug v4 (Kirkwood SoC w/ ARMv5TE @800MHz, 128MB RAM)
  • installed OS: Debian Trixie/Testing (13.0, not yet released) [N.B. Current Debian Stable is Bookworm 12.x]
  • init: sysvinit, not systemd

pihole v6 already installed,up-to-date, operating as expected

  • Core version is v6.0.4 (Latest: v6.0.4)
  • Web version is v6.0.1 (Latest: v6.0.1)
  • FTL version is v6.0.2 (Latest: v6.0.2)

pihole-FTL binary pre-installed at /usr/bin/pihole-FTL, built from vanilla/official/master source w/ Debian chroot/qemu setup

Output/Results

  1. ./basic-install.sh
root@trixie-debian-armel:/# ./basic-install.sh 

  [βœ“] 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... 41 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

  [βœ—] Unsupported OS detected: Debian 
      If you are seeing this message and you do have a supported OS, please contact support.

      https://docs.pi-hole.net/main/prerequisites/#supported-operating-systems

      If you wish to attempt to continue anyway, you can try one of the following commands to skip this check:

      e.g: If you are seeing this message on a fresh install, you can run:
             curl -sSL https://install.pi-hole.net | sudo PIHOLE_SKIP_OS_CHECK=true bash

           If you are seeing this message after having run pihole -up:
             sudo PIHOLE_SKIP_OS_CHECK=true pihole -r
           (In this case, your previous run of pihole -up will have already updated the local repository)

      It is possible that the installation will still fail at this stage due to an unsupported configuration.
      If that is the case, you can feel free to ask the community on Discourse with the Community Help category:
      https://discourse.pi-hole.net/c/bugs-problems-issues/community-help/

================================================

  1. PIHOLE_SKIP_OS_CHECK=true PIHOLE_SKIP_FTL_BINARY_CHECK=true ./basic-install.sh
root@trixie-debian-armel:/# PIHOLE_SKIP_OS_CHECK=true PIHOLE_SKIP_FTL_BINARY_CHECK=true ./basic-install.sh 

  [βœ“] 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... 41 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] Update option selected
  [βœ“] Check for existing repository in /etc/.pihole
  [i] Update repo in /etc/.pihole...HEAD is now at 567bb72 Pi-hole Core v6.0.4 (#5975)
  [βœ“] Update repo in /etc/.pihole

  [βœ“] Check for existing repository in /var/www/html/admin
  [i] Update repo in /var/www/html/admin...HEAD is now at 42e7279a Pi-hole web v6.0.1 (#3234)
  [βœ“] Update repo in /var/www/html/admin

  [βœ“] Checking for user 'pihole'

  [i] FTL Checks...

  [βœ—] This processor architecture is not supported by Pi-hole (v5TE)  [βœ—] Unknown error. Please contact Pi-hole Support
  [βœ“] 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

================================================

  1. PIHOLE_SKIP_OS_CHECK=true PIHOLE_SKIP_FTL_BINARY_CHECK=true pihole checkout web master
root@trixie-debian-armel:/# PIHOLE_SKIP_OS_CHECK=true PIHOLE_SKIP_FTL_BINARY_CHECK=true pihole checkout web master
  Please note that changing branches severely alters your Pi-hole subsystems
  Features that work on the master branch, may not on a development branch
  This feature is NOT supported unless a Pi-hole developer explicitly asks!
  Have you read and understood this? [y/N] y

  [βœ“] Fetching branches from https://github.com/pi-hole/web.git
  [i] 18 branches available for Web Admin

  [βœ“] Switching to branch: 'master' from 'refs/heads/master'
  [i] Already up to date.

================================================

  1. PIHOLE_SKIP_OS_CHECK=true PIHOLE_SKIP_FTL_BINARY_CHECK=true pihole checkout core master
root@trixie-debian-armel:/# PIHOLE_SKIP_OS_CHECK=true PIHOLE_SKIP_FTL_BINARY_CHECK=true pihole checkout core master
  Please note that changing branches severely alters your Pi-hole subsystems
  Features that work on the master branch, may not on a development branch
  This feature is NOT supported unless a Pi-hole developer explicitly asks!
  Have you read and understood this? [y/N] y

  [βœ“] Fetching branches from https://github.com/pi-hole/pi-hole.git
  [i] 11 branches available for Pi-hole Core

  [βœ“] Switching to branch: 'master' from 'refs/heads/master'
  [i] Already up to date.
  [i] Running installer to upgrade your installation

  [βœ“] 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... 41 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] Performing unattended setup, no dialogs will be displayed
  [βœ“] Check for existing repository in /etc/.pihole
  [i] Update repo in /etc/.pihole...HEAD is now at 567bb72 Pi-hole Core v6.0.4 (#5975)
  [βœ“] Update repo in /etc/.pihole

  [βœ“] Check for existing repository in /var/www/html/admin
  [i] Update repo in /var/www/html/admin...HEAD is now at 42e7279a Pi-hole web v6.0.1 (#3234)
  [βœ“] Update repo in /var/www/html/admin

  [βœ“] Checking for user 'pihole'

  [i] FTL Checks...

  [βœ—] This processor architecture is not supported by Pi-hole (v5TE)  [βœ—] Unknown error. Please contact Pi-hole Support
  [βœ“] 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...   Error: Unable to complete update, please contact support

NOTES:
My interpretation of these results is that it all appears to work as I'd expect it to, normally.

  • The v5TE processor is detected, but the installer continues.
  • FTL binary is checked.
  • The Restarting pihole-FTL service fails due to SysVInit (instead of Systemd) usage.
  • The two distinct flags (OS Check and FLT Check) do not seem to interact in any unpredictable way.

I will check this on a freshly installed OS w/ no alterations/previous installs, and confirm that it functions for initial install (non-update).

No, it's not working, the output must be different. See this line

[i] Update repo in /etc/.pihole...HEAD is now at 567bb72 Pi-hole Core v6.0.4 (#5975)

The installer will always pull master, unless you are on a custom branch.

You would need to run sudo pihole checkout core unsupported/binary to see the expected output.
For a fresh installation you need:

  1. The FTL binary in the right place
  2. Clone the github repo to /etc/.pihole
  3. Checkout the branch in the repo sudo git checkout -B unsupported/binary
  4. Run sudo PIHOLE_SKIP_OS_CHECK=true PIHOLE_SKIP_FTL_BINARY_CHECK=true /etc/.pihole/automated\ install/basic-install.sh
1 Like

Thanks for that - clarified it well for me. Will report back tomorrow. :+1:

Will perform:

  • fresh installation on a Debian 13
  • update of an working install

@yubiuser : Thanks! That looks promising… needed a tweak or two, but it should be useful.

Feedback and observations are here: Allow uses to skip binary check and installing FTL in case the use a … Β· pi-hole/pi-hole@56ef68e Β· GitHub

Will the Env variable be PIHOLE_SKIP_FTL_CHECK or PIHOLE_SKIP_FTL_BINARY_CHECK? I've seen references to both.

hi ralph/rsantag,

PIHOLE_SKIP_FTL_CHECK

@rsantag, I'm still looking over one or two things (string comparisons style and the PIHOLE_SKIP_FTL_CHECK=false at line 148 ). I've got it to work with a few tweaks ... will post back when I'm sure it is proper. I need to look back at the history/blame to check something about PIHOLE_SKIP_OS_CHECK, and keep it consistent w/ how they handled that....

I don't want to send a pull request unless it is tested, working and consistent w/ their style.

@rsantag : This worked for me ... Allow uses to skip binary check and installing FTL in case the use a … Β· pi-hole/pi-hole@56ef68e Β· GitHub

fix_allow_Processor_and_FTL_check_SKIP.diff.txt

The patch must be applied to the unsupported/binary branch that @yubiuser posted.

Also, remember that you will want to keep a copy your patched basic-install.sh script out of the repo, since the script pulls/updates the repo when it runs...

Please let us know if it worked for you.