Pogo-Plug er en 15 år gammel computer med en 1.2 GHz ARM CPU, Gigabit ethernet og 256 Mb RAM, Dagens standard er f.ex en Raspberry Pi 5, som har en Quad core 2.4 GHz ARM CPU, og op til 16 Gb RAM. I mine øjne er der ikke ske meget på 15 år, i hvertfald ikke i forhold til hvad jeg kørte på i 1985, Da var state of the art en Sun3/50 med 15Mhz 68020 CPU og 4 Mb Ram, den bootede over netværket og det var der NFS-v2 protokollen blev introduceret.
| Year | 1985 | 2010 | 2025 |
| CPU | MC 68020 15 Mhz |
Arm v5 1.2 GHz |
Arm v8 4 x 2.4GHz |
| Netværk | 10 Mbit/sec | 1 Gbit/sec | 1 Gbit/sec |
| MIPS | 1.5 | 996 | 7814 |
| MIPS stigning/år | 30% | 15% |
| Network stigning/år | 20% | 0% |
Sålænge man holder sig fra grafik og floating-point beregninger, er Kirkwood CPU-en i en PogoPlug faktisk ganske fin selv idag. Den er sammenlignelig med en Raspberry Pi zero, med Gigabit ethernet og halvt så meget RAM. I sin tid kunne man være heldig og købe dem for $10 leveret, da CloudEngines troede de skulle tjene penge på Skyen.
For mere end 10 år siden beskrev jeg hvordan jeg brugte Pogo-Plugs som diskløse klienter, ved at skifte alt programmelet på dem inklusiv BIOS.
Der er såmænd ikke sket så meget de sidste 10 år, den største udvikling er at mange Linux distributioner ikke supporterer NFS-v2 file-server-protokollen mere. Dermed skal man enten bruge en ældre Linux distribution, eller man skal opdatere uBoot på selve Pogo-Plugen til en nyere version der kan boot via NFS-v3, proceduren beskrev jeg tilbage i 2015
Bodhi har opdateret uBoot flere gange siden, men proceduren er den samme.
Bodhi sørger stadig for at Debian på Pogo-Plugs er helt up-to-date, i skrivende stund er det Debian-12 med en 6.15.2 Linux kernel
Download:
- Debian-12 fra 1. Nov 2023
Debian-6.5.7-kirkwood-tld-1-rootfs-bodhi.tar.bz2 - Linux Kernen fra 24 Juni 2025
linux-6.15.2-kirkwood-tld-1-bodhi.tar.bz2
På serveren
Jeg bruger Ubuntu filserver, men det kunne være hvad-som-helst,
- Ubuntu-20.04 har NFS-v2 server support som standard
- Ubuntu-22.04 kan bringes til at supportere NFS-v2 ved at tilføje: udp=y og vers=2 til /etc/nfs.conf
- Ubuntu-24.04 ingen NFS-v2 mulighed, så der skal bootes via TFTP som er en endnu ældre protokol – Det er tid for mig til at sige farvel til Ubuntu, det har været 20 gode år.
Her er hvad jeg gør for at installere et NFS bootbart filsystem.
Vi skal lave et Debian-root-filsystem i /home/pogo/debian12-armel, så lad os gå igang:
POGO_ROOT=/home/pogo/debian12-armel mkdir $POGO_ROOT tar -C $POGO_ROOT -xvf Debian-6.5.7-kirkwood-tld-1-rootfs-bodhi.tar.bz2 tar -C root -xvf linux-6.15.2-kirkwood-tld-1-bodhi.tar.bz2
I 2018 beskrev jeg hvordan man kan configurere filsystemet for en Raspberry Pi fra et Intel baseret linux computer.
Dette kan vi selvfølgelig også gøre her, og dermed kan vi configure alt vi ønsker inden vi booter vores Pogo-Plug første gang, og uden at forlade sofaen.
#!/bin/sh
usage() {
[ $# == 0 ] || echo "ERROR: $*"
echo "usage: pogodo <-s> <cmd>"
echo " -s chroot shell on pogo (default)"
echo " cmd chroot rpi cmd"
exit
}
POGO_ROOT=/home/pogo/debian12.armel
VERBOSE=${VERBOSE-0}
echo2() { echo "# $*" 1>&2; }
vecho2() { [ $VERBOSE -lt 1 ] || echo2 $*; }
vvecho2() { [ $VERBOSE -lt 2 ] || echo2 $*; }
is_mounted() { mount | grep $(realpath $1) >/dev/null; }
while getopts ?qsv opt;do
case $opt in
s) CMD="bash -i" ;;
v) VERBOSE=$(($VERBOSE+1)) ;;
*) usage ;;
esac
done
[ $VERBOSE -lt 2 ] || set -x
if [ x"$CMD" = x ]; then
shift $(($OPTIND-1))
CMD="$@"
fi
if [ ! -d "${POGO_ROOT}" -o ! -f "$POGO_ROOT/etc/issue" ]; then
usage Pogo rootfs not as expected
fi
for f in proc dev sys home/peter-iot; do
is_mounted $POGO_ROOT/$f || sudo mount --bind /$f $POGO_ROOT/$f
done
sudo rsync /usr/bin/qemu-arm*-static ${POGO_ROOT}/usr/bin/
sudo chroot ${POGO_ROOT} $CMD
for f in proc dev sys home/peter-iot; do
sudo umount $POGO_ROOT/$f
done
pogodo scriptet der er ovenfor, kører en shell eller kommando i et chroot miljø, qemu sørger for programmerne der jo er armel binære kan køres på en den Intel CPU der sider i min server.
Bodhi’s Linux-kernen og FDT beskrivelserne, som vi pakkede ud under root ovenfor skal installeres
pogodo # resten foregår inde fra en chroot environment
KVER=6.15.2-kirkwood-tld-1_1_armel
cd /root
dpkg -i linux-image-$KVER.deb
tar -C /boot -xvf linux-dtb-$KVER.tar
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 \
-n initramfs -d /boot/initrd.img-$KVER /boot/uInitrd
passwd root # hvad med "Geheim" - det er hemmeligt
ln -s vmlinuz-$KVER /boot/zImage
apt update # upgrade fra Debian-12.2 til nyest som er Debian-12.11
apt dist-upgrade
Vi har nu installeret en minimal Debian-12 og en nyere linux-kerne i et directory på filserveren. Filsystemet er sådan set klar, ihvertfald til boot fra disk/usbstick/sdcard, men vi skal også lave et par NFSROOT relaterede ændringer:
apt install initramfs-tools
echo BOOT=nfs >> /etc/initramfs-tools/initramfs.conf
echo MODULES=netboot >> /etc/initramfs-tools/initramfs.conf
mkinitramfs -d /etc/initramfs-tools
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 \
-n initramfs -d /boot/initrd.img-$KVER /boot/uInitrd
hostname fjernes så det kan sættes fra DHCP, nettet er allerede konfigureret, uden denne konfiguration skal vi sætte resolv.conf op selv, og for at undgå problemer ved nedlukning (der jo ikke adgang til noget hvis nettet er lukket ned) skal reboot og halt ikke lukke nettet ned. http://www.iram.fr/~blanchet/tutorials/read-only_diskless_debian7.pdf
echo ASYNCMOUNTNFS=no >> /etc/default/rcS echo RAMTMP=yes >> /etc/default/rcS echo CONFIGURE_INTERFACES=no >> /etc/default/networking rm /etc/hostname cat << EOF >/etc/resolv.conf domain pogo.lorenzen.us search pogo.lorenzen.us nameserver 192.168.3.1 nameserver 192.168.6.1 EOF
Filsystemet skal exporteres og DHCP serveren konfigureres så Pogo-Plug-erne kan boote herfra, en har root ReadWrite access, resten ReadOnly
cat <<EOF >/etc/exports /home/pogo/debian12-armel *(ro,sync,no_root_squash,no_subtree_check) pogo_e02(rw,sync,no_root_squash,no_subtree_check) /home/pogo/var/192.168.3.81 192.168.3.81(rw,insecure,sync,no_root_squash,no_subtree_check) /home/pogo/var/192.168.3.82 192.168.3.82(rw,insecure,sync,no_root_squash,no_subtree_check) /home/pogo/var/192.168.3.83 192.168.3.83(rw,insecure,sync,no_root_squash,no_subtree_check) EOF exportfs -a
Dette var ordene Pogo-Plugern skulle nu kunne boote, den der har Read/Write NFS-monteret filsystem kan installere software der også kan bruges af de andre Pogo-Plug-er der har ReadOnly root.
Der er nok ikke mange der kommer hele vejen igennem og læser dette, det gør ikke noget, det er mest for mig selv, f.ex. tog hele denne opgradering blot et par dage incl denne blog-post, da jeg jo havde min blog-post fra tidligere at gå ud fra

Pingback: Klipper på PogoPlug | StorePeter