View on GitHub

Linux 7.3 on a broken-screen Kindle 8

Turning a Kindle 8 (i.MX6SoloLite) with a cracked e-ink panel into an Alpine Linux SBC on a mainline kernel, e-ink status screen included.

Web server (port 80) — 2026-11-01

host/kindle-rootfs/usr/local/bin/kindle-web.py + OpenRC service kindle-web (runlevel default). Python 3 standard library only (apk add python3), no framework.

URL Content
/ status page: kernel, uptime, load, memory, disk, SoC temperature, battery, WiFi signal (refreshes every 10 s)
/status.json the same data as JSON
anything else static files from /srv/www (a /srv/www/index.html replaces the status page)

Runs as the unprivileged user www; OpenRC grants only CAP_NET_BIND_SERVICE (capabilities="^cap_net_bind_service") so it can bind port 80. Request log goes to syslog (logger -t kindle-web).

Install on a fresh system:

apk add python3
tar -C host/kindle-rootfs -cf - usr/local/bin/kindle-web.py etc/init.d/kindle-web | ssh root@kindle8.local 'tar -xf - -C /'
ssh root@kindle8.local 'addgroup -S www; adduser -S -D -H -h /srv/www -s /sbin/nologin -G www www; rc-update add kindle-web default; rc-service kindle-web start'

Notes