An appliance (read: homepod, alexa, etc.) is not a stripped down computer. It’s a fully
functional computer with spyware on it out-of-the-box.
Cory Doctorow, The coming war on general computation.
I wanted to have pi-hole on my local network but didn’t want Fedora/Debian based distros for my
Raspberry Pi (I don’t wanna reinstall the distro whenever a version is expired) so I went with
Slackware using the sarpi project: Slackware ARM on a Raspberry Pi.
Slackware ARM on a Raspberry Pi
The installation process doesn’t differ much from slackware64. Following the install documentation
from sarpi is pretty straight forward. I downloaded a mirror with the software sets and put them
in an USB to spare the network configuration during installation.
I opted for an ext2 FS for the root partition, which I discovered to have issues given the RPi
doesn’t have a hardware clock (RTC): whenever a power failure occurs, the FS is corrupted and
e2fsck needs to be run to fix the illegal inodes. After some digging, supposedly ext4 works
somewhat better because of the journaling, though I imagine the lack of RTC still causes issues
to the timestamps. What I ended up doing is modifying both the single-user init script
AND the rc.local script.
By default, /etc/rc.d/rc.S will dump the root partition if necessary, but when the ext2 partition
gets corrupted, the -a flag for fsck is not enough, as lack of care when fixing the inodes may
lead to data loss. Alas, I’d rather setup a backup job than to connect to a terminal every time the
darn RPi reboots, so I made a small change:
As for setting the time, I added this to /etc/rc.d/rc.local:
The basic-install script required some minor changes to work with slackware,
but since rpm is part of base, I leveraged a lot on that. Though I did
write rc scripts both for lighttpd & pihole-FTL.
These are the changes for /etc/.pihole/automated install/basic-install.sh,
or <repo>/automated install/basic-install.sh if it’s the first time you run the script:
Additionally, I added rc scripts for lighttpd & pihole-FTL, and checks to start them at boot
time in /etc/rc.d/rc.local:
/etc/rc.d/rc.lighttpd (click for details)
/etc/rc.d/rc.pihole-FTL (click for details)
NOTE: Did I add the pihole-FTL binary to /usr/bin...? I don't remember, if you don't have
it there, cp it yourself!
/etc/rc.d/rc.local (click for details)
MiniDLNA / ReadyMedia
Prerequisites
Install ffmpeg: for some reason, even though I had ffmpeg installed, a lot of libraries were
missing, so I slackpkg installed them one by one (hint: test by running ffempeg --version).