fix(live-iso): stop initrd GPU panic + clear install pointer on login
- boot.initrd.kernelModules force-loaded amdgpu+radeon+nouveau+i915 in the live ISO, panicking on hosts where more than one driver matched the GPU. Move them to availableKernelModules so udev only loads what fits. - Override services.getty.helpLine with a Nomarchy welcome that points at `sudo /etc/install.sh` (+ --dry-run / --resume variants). Replaces the upstream "NixOS" message. - Ship installer/hardware-db.sh as /etc/hardware-db.sh so the installer's auto-detection works when invoked from the live ISO. - Add live-ISO-only Hyprland exec-once: notify-send + an alacritty "Nomarchy Installer" terminal that prints the install commands. The graphical autologin user now sees a pointer instead of guessing how to start the install. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -144,6 +144,15 @@
|
|||||||
home-manager.users.nixos = {
|
home-manager.users.nixos = {
|
||||||
imports = [ ./features ];
|
imports = [ ./features ];
|
||||||
home.stateVersion = "25.11";
|
home.stateVersion = "25.11";
|
||||||
|
|
||||||
|
# Live-ISO-only welcome. Pops a notification a few seconds
|
||||||
|
# after the graphical session is up and opens a terminal
|
||||||
|
# parked at the installer command, so the user never has to
|
||||||
|
# hunt for it.
|
||||||
|
wayland.windowManager.hyprland.extraConfig = nixpkgs.lib.mkAfter ''
|
||||||
|
exec-once = sh -c 'sleep 3; notify-send -u critical -t 0 "Welcome to Nomarchy" "Run \`sudo /etc/install.sh\` in the open terminal — or \`--dry-run\` to preview."'
|
||||||
|
exec-once = sh -c 'sleep 4; alacritty --title "Nomarchy Installer" -e bash -lc "echo; echo \"Welcome to the Nomarchy live ISO.\"; echo; echo \" sudo /etc/install.sh # install\"; echo \" sudo /etc/install.sh --dry-run # preview only\"; echo \" sudo /etc/install.sh --resume # resume after an interrupt\"; echo; exec bash"'
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -25,9 +25,16 @@
|
|||||||
users.users.nixos.extraGroups = [ "wheel" "video" "render" "audio" "networkmanager" ];
|
users.users.nixos.extraGroups = [ "wheel" "video" "render" "audio" "networkmanager" ];
|
||||||
|
|
||||||
# Graphics support for live environment.
|
# Graphics support for live environment.
|
||||||
# `virtio` is a no-op on real hardware (no virtio-gpu PCI device) but lets
|
#
|
||||||
# the ISO render correctly when booted in QEMU via nomarchy-test-live-iso.
|
# Force-loading every GPU driver in the initrd (amdgpu+radeon+nouveau+i915)
|
||||||
boot.initrd.kernelModules = [ "amdgpu" "radeon" "nouveau" "i915" "virtio_gpu" ];
|
# panics most machines — only one of them can claim the GPU and the others
|
||||||
|
# explode. List them under `availableKernelModules` instead so udev only
|
||||||
|
# loads the one that matches the present hardware. We still force the AMD
|
||||||
|
# pair when Plymouth needs KMS early; `virtio_gpu` is auto-loaded when
|
||||||
|
# we're booted in QEMU via nomarchy-test-live-iso.
|
||||||
|
boot.initrd.availableKernelModules = [
|
||||||
|
"amdgpu" "radeon" "nouveau" "i915" "virtio_gpu"
|
||||||
|
];
|
||||||
services.xserver.videoDrivers = [ "amdgpu" "radeon" "nouveau" "modesetting" "fbdev" "virtio" ];
|
services.xserver.videoDrivers = [ "amdgpu" "radeon" "nouveau" "modesetting" "fbdev" "virtio" ];
|
||||||
|
|
||||||
environment.etc."install.sh" = {
|
environment.etc."install.sh" = {
|
||||||
@@ -35,9 +42,28 @@
|
|||||||
mode = "0755";
|
mode = "0755";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.etc."hardware-db.sh" = {
|
||||||
|
source = ../installer/hardware-db.sh;
|
||||||
|
mode = "0644";
|
||||||
|
};
|
||||||
|
|
||||||
environment.etc."disko-golden.nix" = {
|
environment.etc."disko-golden.nix" = {
|
||||||
source = ../installer/disko-golden.nix;
|
source = ../installer/disko-golden.nix;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc."nomarchy".source = inputs.self;
|
environment.etc."nomarchy".source = inputs.self;
|
||||||
|
|
||||||
|
# Override the upstream installer helpLine (says "NixOS", points nowhere
|
||||||
|
# useful for us). Shown on every TTY before login and again as the MOTD.
|
||||||
|
services.getty.helpLine = lib.mkForce ''
|
||||||
|
|
||||||
|
Welcome to the Nomarchy live environment.
|
||||||
|
|
||||||
|
To install Nomarchy: sudo /etc/install.sh
|
||||||
|
To preview the install: sudo /etc/install.sh --dry-run
|
||||||
|
To resume an interrupted run: sudo /etc/install.sh --resume
|
||||||
|
|
||||||
|
The graphical session autologins as 'nixos' (no password).
|
||||||
|
The 'nixos' and 'root' accounts have empty passwords.
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user