Here is clean way to run Alpine Linux inside piCore64 on a Raspberry Pi 400. This gives you Alpine’s full apk package ecosystem while keeping piCore’s minimal, RAM‑based design untouched. The setup works reliably and is useful for development, compiling, and sandboxing.
Below is a summary of the process and the important notes.
Why use Alpine inside piCore
piCore stays tiny, fast, and read‑only
Alpine provides a full userland with thousands of packages
No risk to the base system
Great for building software or running tools not available as .tcz
-----------------------------------------
1. Download and unpack Alpine (aarch64)
wget https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/aarch64/alpine-minirootfs-3.20.0-aarch64.tar.gz
mkdir /mnt/alpine
tar -xzf alpine-minirootfs-*.tar.gz -C /mnt/alpine
2. Mount required filesystems (from piCore host)
mount -t proc /proc /mnt/alpine/proc
mount -t sysfs /sys /mnt/alpine/sys
mount --bind /dev /mnt/alpine/dev
mount --bind /dev/pts /mnt/alpine/dev/pts
Fix DNS inside Alpine
Alpine may not ship with /etc/resolv.conf, so create it:
touch /mnt/alpine/etc/resolv.conf
mount --bind /etc/resolv.conf /mnt/alpine/etc/resolv.conf
3. Enter the Alpine environment
chroot /mnt/alpine /bin/sh
4. Update and install packages
apk update
apk add fastfetch nano build-base python3 rust
5. What works well
Full Alpine package ecosystem
Compilers and build tools (gcc, clang, rust, cmake, etc.)
Networking and DNS
Fastfetch, shells, editors
Running Alpine apps directly on piCore’s kernel
6. What does not work
Podman / Docker
Podman fails during unpacking due to missing kernel features:
overlayfs with advanced options
cgroups v2
fuse-overlayfs
user namespace support
piCore’s kernel is intentionally minimal, so container runtimes are not viable.
proot
Alpine does not provide proot for aarch64 in any repo.
It must be installed manually from upstream binaries or built from source if needed.
7. System snapshot
Inside the chroot, tools like fastfetch correctly report:
OS: Alpine Linux
Kernel: piCore’s 6.x kernel
Packages: apk
Hardware: Raspberry Pi 400
This confirms Alpine is running entirely on the piCore kernel.
Conclusion
Running Alpine inside piCore on the Raspberry Pi 400 is a clean and effective way to get a full Linux userland without sacrificing piCore’s minimalism. It’s ideal for development and experimentation. Just note that container runtimes like Podman/Docker won’t work due to kernel limitations.
root@box:/# date
Fri Jan 23 20:34:53 UTC 2026
root@box:/# fastfetch
.hddddddddddddddddddddddh. root@box
:dddddddddddddddddddddddddd: --------
/dddddddddddddddddddddddddddd/ OS: Alpine Linux 3.20.0 aarch64
+dddddddddddddddddddddddddddddd+ Host: Raspberry Pi 400 Rev 1.0
`sdddddddddddddddddddddddddddddddds` Kernel: Linux 6.12.25-piCore-v8
`ydddddddddddd++hdddddddddddddddddddy` Uptime: 9 hours, 32 mins
.hddddddddddd+` `+ddddh:-sdddddddddddh. Packages: 74 (apk)
hdddddddddd+` `+y: .sddddddddddh Shell: sh
ddddddddh+` `//` `.` -sddddddddd Display ( EZCAP28X): 1920x1080 @z
ddddddh+` `/hddh/` `:s- -sddddddd Terminal: sudo
ddddh+` `/+/dddddh/` `+s- -sddddd CPU: ARM CPU (4) @ 1.80 GHz
ddd+` `/o` :dddddddh/` `oy- .yddd Memory: 1.24 GiB / 3.71 GiB (33%)
hdddyo+ohddyosdddddddddho+oydddy++ohdddh Swap: 0 B / 918.54 MiB (0%)
.hddddddddddddddddddddddddddddddddddddh. Local IP (eth0): 192.168.1.194/24 *
`yddddddddddddddddddddddddddddddddddy` Locale: C
`sdddddddddddddddddddddddddddddddds`
+dddddddddddddddddddddddddddddd+ ████████████████████████
/dddddddddddddddddddddddddddd/ ████████████████████████
:dddddddddddddddddddddddddd:
.hddddddddddddddddddddddh.
root@box:/#