Subject: Re: 32-bit HIGHMEM and game console downstreams

From: Willy Tarreau <[email-masked]>
Date: Tue, 16 Sep 2025 09:00:52 +0200

On Tue, Sep 16, 2025 at 08:20:35AM +0200, Arnd Bergmann wrote:
> > The maintainer of that downstream claims to be able to boot modern 
> > text-mode distros on the GameCube' 24MB, which I find really impressive!
> 
> 24MB is impressive indeed. In my latest tests I did not get below 32MB
> (+swap) on an ARMv7 kernel with Debian Bookworm, and major features
> turned off in both kernel and userland.
> 
> On a simpler musl+busybox userland and even more feature reduced
> kernel (no network, initramfs-only) I could get to ~10MB, but then it
> doesn't really do anything besides showing a shell.

When you build your systems from source and install only the necessary
*files* (not packages) you can get much lower. Here's my reverse-proxy
for example (aarch64):

  $ df /
  Filesystem     1K-blocks  Used Available Use% Mounted on
  /dev/ram0          11520 11520         0 100% /

and my firewall:

  $ df /
  Filesystem     1K-blocks  Used Available Use% Mounted on
  /dev/ram0          16640 16640         0 100% /

these are full-featured images with tcpdump, exim, haproxy, nftables,
pppd, ntpd, wireguard, openvpn, hostapd etc and even glibc. I've been
used to installing them on 25128 SPI NOR flashes (16 MB). But yeah
that requires gcc -Os, getting rid of NLS, deciding on a case by case
basis between shared or static linking, and installing the strict
minimum for each service. I even have an old boot loader recovery
image where kernel+initramfs fit into just 1 MB with a small recovery
shell, mke2fs, dropbear and tftp client (i386).

Cheers,
Willy