OADC 2026 - Appendix A: openKylin and penguins-eggs
1. How I first came across openKylin
As the author of penguins-eggs—a polymorphic remastering tool written in Go that turns running Linux systems into installable live ISOs—I am constantly looking for distributions that push the boundaries of the Linux ecosystem across x86_64, ARM64, and RISC-V.
I first came across openKylin while exploring the Chinese open-source landscape and its strong focus on independent desktop development and RISC-V hardware. Testing penguins-eggs on openKylin was a natural challenge: I wanted to verify if my family-based detection engine (which parses /etc/os-release to map distributions to core families like Debian, Arch, Alpine, and openSUSE) could seamlessly adapt to a flagship independent distribution.
2. How I used penguins-eggs to create two editions: Naked and XFCE4
Using penguins-eggs alongside its declarative provisioning engine (penguins-chef), I applied a modular approach to openKylin, first creating the naked version, just a remaster of the server edition capable to be installed, then creating colibri my custom workstation where I can develop penguins-eggs in my same familiar context but using different distros:
- The
nakedEdition (Pure CLI Seed): By stripping away the graphical layer down to a minimal, rock-solid core, I generated an ultra-lightweight command-line live ISO installable via Krill (our TUI system installer). This "Darwinian" seed contains only the essential structural genome of openKylin, making it ideal for servers, containers, virtual machines, or as a clean starting point for developers to build their own custom systems. - The
xfce4Edition (Lightweight Desktop): Starting from the minimalnakedbase (or directly remastering the system via YAML recipes), I dressed openKylin with XFCE4 and the Calamares graphical installer. This edition offers a fast, traditional, and low-resource desktop environment that runs smoothly even on older hardware or resource-constrained virtual machines, while preserving full compatibility with openKylin's underlying repositories and kernel.
Furthermore, with the --clone flag (a "Lamarckian" remaster), any user working on these editions can encapsulate their personal /home and custom configurations into a protective ISO membrane, ready to be restored onto a new machine if their hardware fails.
I was also sorry to see that Plasma, GNOME, and other desktop environments are no longer supported; while I find it a real pity from my perspective, I fully understand the reasoning behind this choice.
3. The challenges encountered and how I tackled them
While openKylin belongs to the Debian family at its core, it introduces specific security and architectural mechanisms that required tailored engineering inside penguins-eggs:
- Bypassing the Bootloader ESP Lock: In openKylin,
/usr/sbin/grub-installis replaced by a Python 3 wrapper that checks the EFI System Partition against a hardcoded UUID (2C9D-17A5), aborting third-party installations (KrillorCalamares) with the error:Refusing to update an ESP belonging to another installation. I solved this by havingeggsautomatically restore the original GNU GRUB binary (/usr/sbin/grub-install.openkylin-original) during installation, while removing OEM installer hooks (/etc/grub.d/42_openkylin_multibootand/etc/openkylin-installer) and excluding them from the live ISO. - Live Initramfs & Virtualization Modules: To guarantee reliable live booting across bare metal and hypervisors (KVM/QEMU/Proxmox), I configured
eggsto explicitly injectvirtio_pci,virtio_blk,virtio_scsi,isofs, andoverlaymodules into/etc/initramfs-tools/modulesbefore generating the initramfs, and updated package dependencies to supportbusybox-initramfs | busybox-static. - Fixing Mouse Offset in Virtual Machines (
eggs adapt): When resizing a VM display viaxrandrunder SPICE, the cursor coordinate matrix did not recalculate automatically, causing a pointer offset. I updatedeggs adaptto restartspice-vdagentimmediately after runningxrandr, realigning the mouse cursor on the fly without logging out.
4. What we achieved so far: the results of this work
Today, openKylin is supported as a first-class citizen in penguins-eggs:
- Native Support & Inheritance:
openkylinis natively mapped indistro.goand indexed inindex.yamlto dynamically inherit Debian family templates, scripts, andwardrobecostumes. - Continuous Automated Testing ("The Furnace"): openKylin is integrated into my automated Proxmox VE CI pipeline (
furnace-openkylin.yml), where every commit is validated through an end-to-end remastering process and a clean-snapshot boot test. - Freedom to Remaster: Any openKylin developer or user can now generate custom
nakedservers, lightweightxfce4orukuicustomized workstations, or full personal backups in minutes with a single command (sudo eggs produce).