51 Commits
Author SHA1 Message Date
alex c9586ff68d fix(hack): use the host CPU model for accelerated aarch64 VMs
The aarch64 dev VM always used -cpu cortex-a57, even with -accel hvf or
-accel kvm. QEMU rejects named CPU models with hvf, and with KVM unless
the host has that CPU, so booting natively on Apple Silicon or an
aarch64 Linux host with KVM failed. Use -cpu host when accelerated.
2026-09-26 20:52:15 -07:00
alex 592d7b41f6 fix(hack): don't override QEMU_ACCEL on macOS
On macOS, common.sh always set QEMU_ACCEL to hvf when it was available,
replacing any value the user set, like tcg. Only pick an accelerator
when QEMU_ACCEL isn't set, as the KVM check already does.
2026-09-26 20:52:15 -07:00
alex 406ad8dede fix(hack): format every shell script in hack
format.sh ran shfmt on hack/**/*.sh without enabling globstar, so ** only
matched a single directory. Scripts directly in hack and in deeper
directories like hack/dev/kernel were never formatted.
2026-09-26 20:52:15 -07:00
alex 2b8113f103 fix(hack): build the requested profile in the dev Docker build
The dev build passed RUST_TARGET_SUBDIR to the Docker build, but not
RUST_PROFILE, so the Dockerfile always built the release profile and
then copied from the directory of the requested profile. Any profile
other than release, like ./hack/dev/boot.sh x86_64 debug, failed. Pass
the profile as well.
2026-09-26 20:52:15 -07:00
alex 358cf92f65 fix(hack): point the dev Edera config at the kernel in the dev image
The dev Edera config loaded the kernel from \EFI\BOOT\kernel.efi, but
the dev image copies the kernel to \VMLINUZ, so booting with
SPROUT_CONFIG_NAME=edera always failed to read the kernel.
2026-09-26 20:52:15 -07:00
alex 29cdc75776 chore(deps): bump rust to 1.98.1, bump all images, and dependencies (#97) 2026-09-25 11:28:32 -07:00
alex 0e4452b625 chore(upgrade): upgrade to rust v1.97.1, bump deps and migrate, bump images (#95) 2026-08-02 19:02:09 -07:00
alex c86215f196 chore(upgrade): bump all dependencies, rust, and images 2026-02-09 09:38:57 -08:00
alex a8a3774c35 chore(upgrade): upgrade dependencies, rust => 1.92.0, dev kernel => 6.18.2, alpine => v3.23 (#53) 2025-12-20 23:00:51 -08:00
alex 5605056c82 chore(dev): make alpine boot fully clean with kernel module infra 2025-11-26 23:05:01 -08:00
alex e0bd703511 chore(dev): autologin to alpine and writable rootfs 2025-11-15 13:37:50 -08:00
alex ecba8a5e02 chore(deps): upgrade rust to 1.91.1 and bump cargo and docker deps 2025-11-14 00:24:09 -05:00
alex 7a7d92ef70 chore(hack): add keyboard and mouse to dev qemu 2025-11-03 03:41:03 -05:00
alex b34c171ccb fix(hack): remove xen images during clean 2025-11-03 03:18:23 -05:00
alex 8179fdb565 fix(hack): remove splash copy options 2025-11-02 23:37:46 -05:00
alex 9c12e5f12f chore(code): move sprout code to crates/sprout and remove splash support for minimalism 2025-11-02 22:23:00 -05:00
alex fd2e9df3f1 fix(autoconfigure): detect kernel and initramfs case-insensitive, even at the root 2025-11-01 01:58:55 -04:00
alex 3b5e110d1e feat(config): rename [defaults] to [options] 2025-10-27 17:56:38 -04:00
alex 1799419bfa fix(autoconfigure): apply the actions properly in the root 2025-10-27 03:37:09 -04:00
alex 4bbac3e4d5 feat(boot): implement basic boot menu 2025-10-26 23:59:50 -04:00
alex 734ff117db feat(config): support for setting the default entry to boot 2025-10-24 21:19:38 -07:00
alex fbebedd66a fix(hack): format should use bash to use glob 2025-10-24 20:09:32 -07:00
alex b3bf564b65 fix(hack): formatting fixes 2025-10-24 20:08:46 -07:00
alex 340c280c00 fix(hack): check kvm with /dev/kvm instead of cpu flags 2025-10-24 20:07:41 -07:00
alex 2aeb0474e6 dev: add support for automatic hypervisor.framework usage on macOS 2025-10-21 05:40:22 -07:00
alex c749c8d38e implement a new sprout command line options mechanism 2025-10-20 18:17:29 -07:00
alex b593507cb2 fix dependabot and release assets upload 2025-10-19 01:51:30 -07:00
alex a750b0f6d1 repair github actions warnings and errors 2025-10-19 01:26:35 -07:00
alex 232efc2859 add release assets workflow 2025-10-19 01:08:03 -07:00
alex 849c13a5a5 dev: remove xen from kernel config (it lives in xen config) 2025-10-16 09:42:33 -07:00
alex 7cffd3d0bb initial edera boot action using the edera specific xen media loader protocol 2025-10-14 22:36:22 -07:00
alex ab4745058e add support for booting xen on x86_64 in dev and make initramfs alpine 2025-10-14 16:21:56 -07:00
alex d63c300bc2 extractor is now called filesystem-device-match 2025-10-13 01:02:51 -07:00
alex 7a63e0325b implement support for filesystem extractor mechanism 2025-10-13 00:55:11 -07:00
alex ea5737c6d0 for dev, use simplified configuration 2025-10-12 20:32:51 -07:00
alex 87944067d1 implement loading of initramfs via the linux media initrd protocol 2025-10-12 20:22:24 -07:00
alex 9a52fa1d1c add support for xen boot via standard chainload 2025-10-12 18:54:24 -07:00
alex 46fb31ef99 move dev stuff to hack/dev 2025-10-12 18:12:22 -07:00
alex b2b916c2b7 fix chainloading to linux properly 2025-10-12 18:06:57 -07:00
alex e203271e1d boot improvements and acceleration 2025-10-12 15:00:28 -07:00
alex 5f5ef1ddd3 add initial initramfs support, not quite working yet 2025-10-12 00:46:05 -07:00
alex 77126e40ae lol oops 2025-10-05 03:14:43 -07:00
alex 3101829103 Implement splash screen feature. 2025-10-05 03:12:00 -07:00
alex 779a645dec carry a sample kernel.sprout.yaml file 2025-10-05 00:18:33 -07:00
alex b941ee51b0 add print action 2025-10-05 00:09:53 -07:00
alex 24a9e2c727 initial actions, entries, generators mechanism! 2025-10-04 23:12:01 -07:00
alex b995ea0625 make default sprout config boot directly into linux 2025-10-04 20:12:10 -07:00
alex 6bf745946e add efi shell so that chainloading multiple items can be tested 2025-10-02 00:24:19 -07:00
alex b8e1d11bed introduce image data copy polyfill to allow builds on systems without image mounts 2025-10-01 22:01:56 -07:00
alex 3fdaad42ad support for configuration files 2025-10-01 18:25:49 -07:00