feat(appliance): generic kernel variant — hi-res console for the console-window user#533
Merged
Conversation
The Debian cloud kernel ships no DRM/framebuffer (console locked at 80x25) or AHCI drivers — fine headless, but the homelab/desktop user reads the console in a VirtualBox/VMware window and it never occurs to them to switch to tty1. Add --kernel cloud|generic (default cloud, unchanged). generic swaps cloud→generic kernel, purges the cloud kernel, and sets GRUB_GFXMODE/gfxpayload=keep for a real framebuffer console (validated: 160x50 vs 80x25, fb0 + DRM present). Also brings AHCI/SATA — the ADR-119 CD-drive carrier lever. Generic artifacts get a '-generic' name suffix so both variants coexist.
publish.sh appliance now builds + attaches BOTH variants (cloud unsuffixed, generic -generic) to the release. ADR-119 §E records the two-variant decision (cloud default for the headless/cloud common case; generic for the console-window user) and the README documents --kernel + which variant for whom.
…p-build - C1: cloud-kernel purge uses '&&' (not ';') so a failed purge aborts instead of being masked by autoremove; add a hard post-condition that a bootable non-cloud kernel survives the swap (fail loud rather than ship a kernel-less image). - M1: publish.sh --skip-build now warns+skips a variant whose OVA is absent and publishes whatever IS ready (was: abort the whole run); hard-fail only post-build or when zero OVAs found. Dry-run reports the resolved asset set.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a second appliance kernel variant, selected at build time, and ships both on the release.
build-appliance.sh --kernel cloud|generic(defaultcloud, unchanged).genericswaps cloud→generic kernel, purges the cloud kernel, and setsGRUB_GFXMODE/gfxpayload=keep→ a real framebuffer console. Also brings AHCI/SATA (the ADR-119 CD-drive carrier lever).-genericname suffix so both coexist inout/.publish.sh appliancenow builds + attaches both variants (cloud unsuffixed, generic-generic) to the GitHub release.--kerneland which variant for whom.Why
The Debian cloud kernel ships no DRM/framebuffer (console locked at 80×25) or AHCI drivers. That's fine headless — but the homelab/desktop user runs this in a VirtualBox/VMware/Hyper-V window and reads the console there; it never occurs to them to switch to tty1 or SSH. For them the cramped 80×25 is the product.
cloudstays the default (the expected, lean, headless shape);genericis the opt-in for the console-window user.Validation
Booted a throwaway generic build (network-less, on a copy so the artifact stays clean):
…-cloud-amd646.1.0-49-amd64card0+fb0@ 1280×800Test
bash -non both scripts;publish.sh appliance --dry-runexercises both-variant resolution.