96 lines
3.3 KiB
Nix
96 lines
3.3 KiB
Nix
# Build ISO image
|
|
# nix build --extra-experimental-features nix-command --extra-experimental-features flakes .#iso.odo
|
|
# output: result/iso/nixos.iso
|
|
|
|
# Run the ISO image
|
|
# "$(nix-build '<nixpkgs>' --no-out-link -A 'qemu')/bin/qemu-system-x86_64" \
|
|
# -accel kvm \
|
|
# -cpu host \
|
|
# -smp cores=8 \
|
|
# -m 32768 \
|
|
# -drive "file=$(nix-build '<nixpkgs>' --no-out-link -A 'OVMF.fd')/FV/OVMF.fd,if=pflash,format=raw,readonly=on" \
|
|
# -drive if=pflash,format=raw,file="/tmp/OVMF_VARS.fd" \
|
|
# -nic user,hostfwd=tcp::60022-:22 \
|
|
# -boot order=d \
|
|
# -cdrom "$(readlink -f ./result/iso/nixos.iso)" \
|
|
# -display vnc=127.0.0.1:0
|
|
#
|
|
# doas cp "$(nix-build '<nixpkgs>' --no-out-link -A 'OVMF.fd')/FV/OVMF_VARS.fd" /tmp/OVMF_VARS.fd
|
|
# doas "$(nix-build '<nixpkgs>' --no-out-link -A 'qemu')/bin/qemu-system-x86_64" -accel kvm -cpu host -smp cores=8 -m 32768 -drive "file=$(nix-build '<nixpkgs>' --no-out-link -A 'OVMF.fd')/FV/OVMF.fd,if=pflash,format=raw,readonly=on" -drive if=pflash,format=raw,file="/tmp/OVMF_VARS.fd" -nic user,hostfwd=tcp::60022-:22 -boot order=d -cdrom /persist/machine_setup/nix/configuration/result/iso/nixos.iso -display vnc=127.0.0.1:0
|
|
|
|
# Get a repl for this flake
|
|
# nix repl --expr "builtins.getFlake \"$PWD\""
|
|
|
|
# TODO maybe use `nix eval --raw .#iso.odo.outPath`
|
|
# iso.odo.isoName == "nixos.iso"
|
|
# full path = <outPath> / iso / <isoName>
|
|
|
|
{
|
|
description = "My system configuration";
|
|
|
|
inputs = {
|
|
impermanence.url = "github:nix-community/impermanence";
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
nixpkgs-b93b4e9b5.url = "github:NixOS/nixpkgs/b93b4e9b527904aadf52dba6ca35efde2067cbd4";
|
|
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
nixpkgs-unstable,
|
|
nixpkgs-b93b4e9b5,
|
|
impermanence,
|
|
home-manager,
|
|
...
|
|
}@inputs:
|
|
let
|
|
base_x86_64_linux = rec {
|
|
system = "x86_64-linux";
|
|
specialArgs = {
|
|
pkgs-b93b4e9b5 = import nixpkgs-b93b4e9b5 {
|
|
inherit system;
|
|
};
|
|
pkgs-unstable = import nixpkgs-unstable {
|
|
inherit system;
|
|
};
|
|
};
|
|
modules = [
|
|
impermanence.nixosModules.impermanence
|
|
home-manager.nixosModules.home-manager
|
|
{
|
|
home-manager.useGlobalPkgs = true;
|
|
home-manager.useUserPackages = true;
|
|
}
|
|
./configuration.nix
|
|
];
|
|
};
|
|
systems = {
|
|
odo = {
|
|
main = nixpkgs.lib.nixosSystem (base_x86_64_linux // { });
|
|
iso = nixpkgs.lib.nixosSystem (
|
|
base_x86_64_linux
|
|
// {
|
|
modules = base_x86_64_linux.modules ++ [
|
|
(nixpkgs + "/nixos/modules/installer/cd-dvd/iso-image.nix")
|
|
# TODO: maybe? imports = [ "${modulesPath}/profiles/image-based-appliance.nix" ];
|
|
{
|
|
isoImage.makeEfiBootable = true;
|
|
isoImage.makeUsbBootable = true;
|
|
me.buildingIso = true;
|
|
}
|
|
];
|
|
}
|
|
);
|
|
};
|
|
};
|
|
in
|
|
{
|
|
nixosConfigurations.odo = systems.odo.main;
|
|
iso.odo = systems.odo.iso.config.system.build.isoImage;
|
|
};
|
|
}
|