Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
d94ccb7
mtools, libburn, libcddb, libcdio, libisofs, libisoburn, aggregateMod…
jonringer Sep 17, 2026
dd1d1ea
vmTools: switch from virtiofs to 9p transport
jonringer Sep 17, 2026
fdf2549
makeModulesClosure: fix structuredAttrs, empty firmware, insmod-list
jonringer Sep 17, 2026
cfa058c
substituteAll: add missing builder script, disable structuredAttrs
jonringer Sep 17, 2026
b61916a
linux-support: plumb makeInitrd/makeModulesClosure, fix IPV6_FOU_TUNNEL
jonringer Sep 17, 2026
c881f73
ekaos/make-initrd: rewrite for functional initrd boot
jonringer Sep 17, 2026
080a56d
ekaos/make-disk-image: use EKAOS_INSTALL_BOOTLOADER, add dosfstools
jonringer Sep 17, 2026
88c5bb8
ekaos/toplevel: implement EKAOS_INSTALL_BOOTLOADER paradigm
jonringer Sep 17, 2026
c24a89a
ekaos/stage-2: add PATH, fix SYSTEMD_UNIT_PATH append semantics
jonringer Sep 17, 2026
a78b225
ekaos/systemd: fix unit paths, add preset policy, add unit search path
jonringer Sep 17, 2026
18e7aa6
ekaos/getty, network-interfaces: fix systemd unit paths
jonringer Sep 17, 2026
b229786
ekaos/activation: fix etc copy, generate machine-id
jonringer Sep 17, 2026
a6ceb23
ekaos/eval-config: surface diskImage, vm, isoImage outputs
jonringer Sep 17, 2026
bd8537a
ekaos/examples: add VM image configuration
jonringer Sep 17, 2026
b3113ec
ekaos/systemd: reduce preset to services that need system users
jonringer Sep 17, 2026
607f9f8
ekaos/tests: add lightweight boot test framework
jonringer Sep 17, 2026
748b2ec
ekaos/pins: declare system.build.pinsFile option
jonringer Oct 8, 2026
486d2ef
wolfssl: disable tests
jonringer Oct 8, 2026
fc77e88
mkDerivation: enforce __structuredAttrs = true
jonringer Oct 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions ekaos/eval-config.nix
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,9 @@ in
etc
;
}
// lib.optionalAttrs (eval.config.virtualisation.enable or false) {
inherit (eval.config.system.build) diskImage vm;
}
// lib.optionalAttrs (eval.config.isoImage.enable or false) {
inherit (eval.config.system.build) isoImage;
}
60 changes: 60 additions & 0 deletions ekaos/examples/vm-image.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Example: Build and run an ekaos VM image
#
# Build the disk image:
# nix-build -E '(import ./ekaos { system = "x86_64-linux"; modules = [ ./ekaos/examples/vm-image.nix ]; }).diskImage'
#
# Run the VM:
# nix-build -E '(import ./ekaos { system = "x86_64-linux"; modules = [ ./ekaos/examples/vm-image.nix ]; }).vm'
# ./result
#
# The disk image is a qcow2 file suitable for use with QEMU, libvirt, or
# other hypervisors. The VM script launches QEMU with EFI boot.
{
config,
lib,
pkgs,
...
}:

{
system.ekaos.version = "24.11";
system.ekaos.label = "ekaos-vm";

# Boot
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot";
boot.kernelPackages = pkgs.linuxPackages_6_12;

# Initrd for loading virtio modules before root mount
boot.initrd.enable = true;
boot.initrd.availableKernelModules = [
"virtio_pci"
"virtio_blk"
"ext4"
];

# VM settings
virtualisation.enable = true;
virtualisation.memorySize = 2048;
virtualisation.cores = 2;
virtualisation.diskSize = 8192;
virtualisation.serialConsole = true;

# Serial console for VM
boot.kernelParams = [
"console=ttyS0,115200"
"console=tty1"
"root=UUID=F222513B-DED1-49FA-B591-20CE86A2FE7F"
];

# Packages
environment.systemPackages = with pkgs; [
coreutils
util-linux
systemd
bash
less
curl
];
}
3 changes: 2 additions & 1 deletion ekaos/lib/make-disk-image.nix
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,7 @@ let
util-linux
parted
e2fsprogs
dosfstools
lkl
config.system.build.nixos-install
nixos-enter
Expand Down Expand Up @@ -759,7 +760,7 @@ let
# nix builds in the target image if sandboxing is turned off (through
# __noChroot for example).
export HOME=$TMPDIR
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
nixos-enter --root $mountPoint -- /bin/sh -c 'EKAOS_INSTALL_BOOTLOADER=1 /nix/var/nix/profiles/system/bin/switch-to-configuration boot'
''}

# Set the ownerships of the contents. The modes are set in preVM.
Expand Down
Loading
Loading