After Part 12, people were running real stacks on Linxr, and one complaint came up again and again: battery. Even with no containers running, the VM stayed busy.

The culprit was dockerd. Its background polling is harmless on a server and expensive on a phone, where every CPU cycle inside the VM is emulated.

Linxr v3.2.0 fixes this at the root.

⚡ FastTrack OCI: no daemon at all

FastTrack is a daemonless container engine built on crun and podman. Containers start straight into Linux namespaces with no long-running daemon behind them.

Docker daemon FastTrack OCI
Background daemon dockerd always running none
Container start goes through dockerd straight into namespaces via crun
CLI docker podman (Docker-compatible)

Docker is still there: a 1-tap switch selects FastTrack (recommended on phones) or the Docker daemon when you need full Docker compatibility.

🧠 Using every core

QEMU's CPU model moved from cortex-a57 to cortex-a76, with multi-threaded TCG:

-accel tcg,thread=multi -smp N 

N is 2–4 by default and can go up to your phone's core count in Settings. Each virtual CPU now gets its own host thread, so builds and services spread across the phone's big and little cores instead of queueing on one.

📦 Full container lifecycle

The Containers tab grew up: start stopped containers, restart, force-delete, inspect the live config, and change --restart, --memory and --cpus on the fly. Containers and images can be saved to .tar and loaded back through shared storage at /mnt/sdcard/linxr-exports/.

🔒 Ports that are safe on public Wi-Fi

A new port-forwarding screen lets you map any host port to any VM port. Forwards bind to 127.0.0.1 by default, so SSH as root is not exposed to the café Wi-Fi; an explicit Allow LAN access switch opens them up when you want to reach the VM from a laptop.

☸️ Kubernetes that actually connects (and Kubxr merges in)

k3s from the Marketplace had a nasty problem: TLS handshakes were painfully slow, because Go's elliptic-curve and post-quantum key-exchange code is expensive under CPU emulation. Linxr now restricts the API server's TLS cipher suites and sets GODEBUG=tlsmlkem=0 in the VM's shell environment, which skips the expensive ML-KEM key exchange for kubectl.

With k3s now fast inside Linxr, the separate Kubxr app (a standalone Kubernetes node) is archived: its job is a Marketplace recipe now.

🛠️ Fixes worth knowing

  • The 25-second ghost Enter: a keep-alive sent a carriage return to the terminal every 25 s, which ran half-typed commands and broke nano and vi. Removed; the helper keyboard gained a real Enter key.
  • Shared folders on Android 11+: Linxr now checks for "All files access" and asks for it, so the 9P share mounts read-write.

Next, Part 14: a phone PBX joins the Marketplace, and recipes learn to skip containers entirely.

📥 Get Linxr