b3fa34f431
Split the T400 bootloader into self-contained, importable modules so the host
can match whatever firmware is flashed (switch by changing one import):
- boot-bios.nix stock BIOS / coreboot+SeaBIOS -> GRUB on the MBR (default)
- boot-coreboot-grub.nix coreboot GRUB payload -> config-only GRUB (device=nodev)
- boot-coreboot-uefi.nix coreboot Tianocore/UEFI payload -> systemd-boot; carries
its own ESP (/boot vfat) so it travels with the mode
Cover the optional discrete ATI Mobility Radeon HD 3470 (RV620): load the open
`radeon` KMS driver in the initrd for early modesetting (firmware via
enableRedistributableFirmware), with a note on the T400's switchable graphics.
All three boot variants evaluate; nixfmt clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
18 lines
655 B
Nix
18 lines
655 B
Nix
# Boot via coreboot's Tianocore/edk2 (UEFI) payload. This turns the T400 into a
|
|
# real UEFI machine, so use systemd-boot. Unlike Apple's firmware, coreboot's
|
|
# UEFI honours EFI variable writes, so canTouchEfiVariables is on.
|
|
#
|
|
# Requires an EFI System Partition. It is declared here so it travels with this
|
|
# boot mode; the generated hardware-configuration.nix should NOT also define
|
|
# /boot. Label the ESP `ESP` at install, or replace with the generated UUID.
|
|
{ ... }:
|
|
{
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
|
|
fileSystems."/boot" = {
|
|
device = "/dev/disk/by-label/ESP";
|
|
fsType = "vfat";
|
|
};
|
|
}
|