Calamares Pinebook
This week, there was the launch of Netrunner for Pinebook (1) (2). A lot of effort has gone into building the software, improving performance, getting automation and CI in place. That's effort that benefits the wider KDE community, the wider Free Software-on-ARM community, and more. This is the laptop I'd take with me on a bicycle camping trip -- clean, cheap and affordable, although heavier than a phone.
But there is an under-appreciated bit regarding images for an ARM laptop -- or pre-installed Linux distro's in general. And that's the first-run experience. The Netrunner Pinebook image is delivered so that it boots to the Plasma 5 desktop, no passwords asked, etc. The user is called "live", the password is "live", and nothing is personalized. It's possible, though not particularly secure, to use the laptop this way in a truly disposable fashion. A first-run application helps finalize the configuration of the device by creating a named user, among other things.
One of the under-documented features of Calamares is that it can operate as a first-run application as well as a system installer. This is called "OEM Mode", because it's of greatest interest to OEMs .. but also to distro's that ship an image for users to flash onto (micro)SD card for use in a device.
This screenshot is from Netrunner on the Pinebook, and you can see the purple-ish Calamares logo labeled "First Time Run This Installer" on the desktop -- it's partly hidden by the system information KCM. That runs Calamares in OEM mode, hardly distinguishable from the live-ISO-installer-mode that it usually has.
A Calamares OEM configuration generally:
- Resizes the image file to fill the entire card,
- Creates a user (the real one, personalised) with a password,
- Performs some initial configuration of the real user,
- Adds packages and system configuration based on that configuration, and
- Does some cleanup (e.g. removing Calamares, since you only need it once).
Configuring Calamares as an OEM installer is no different from any other Calamares installation: make sure the config files end up in /etc/calamares, and then set dontChroot to true (that's the real difference between OEM mode and regular).
The way Calamares development works, downstreams -- that is the distro's, and in this case Netrunner -- just file feature requests for the stuff they need in Calamares, and after some back-and-forthing to make sure it's sufficiently general, I write it. So the run up to Netrunner on the Pinebook saw some Calamares development aimed specifically at the OEM mode, and some extra bug reports. Nothing, though, that isn't equally applicable to any other distro that needs a first-run installer.
There is a lot more that could be done in a first-run installer. KaOS has a really nice one, basically hand-holding through initial KDE Plasma Desktop setup. Pardus and Pisi Linux have something similar. A downside is that the more you do, the more specialized it becomes -- it would be nice to have a good GNOME counterpart to the Plasma Look-and-Feel selection module in Calamares, but that quickly leads to a multitude of modules and dependencies (not to mention that I can't write it all myself).
Anyway, that's my little square inch claim to being useful to the Netrunner Pinebook project (which deletes itself).