Open tie opened 3 years ago
I would love that so much. I have a weird laptop with a Intel i3 2d-gen, and... a legacy BIOS. I sure could use some Clover here, because I'd love to be able to use my 4TB HDD in my laptop :P
It is possible to install Clover manually and then chainload sytemd-boot (which is natively supported by NixOS).
It also supports adding missing UEFI functionality like booting from NVMe SSDs when motherboard’s firmware does not support that—I’ve actually set that up in a kinda non-reproducible manner on my friend’s PC for dual booting Windows and Fedora using the default config from Clover’s live CD ISO.
In theory, you shouldn't need Clover for this if your motherboard is using UEFI, as dynamic driver loading from EFI system partitions is standard UEFI functionality. efibootmgr
can manipulate the DriverXXXX
and DriverOrder
variables needed to tell your UEFI to do this, using the --driver/-r
flag.
In practice: I don't know if UEFI implementations in the wild adhere to that part of the specification. I hope they do.
Project description
Clover is a boot loader for UEFI and legacy BIOS systems and allows emulating UEFI firmware when booting from legacy BIOS.
It also supports adding missing UEFI functionality like booting from NVMe SSDs when motherboard’s firmware does not support that—I’ve actually set that up in a kinda non-reproducible manner on my friend’s PC for dual booting Windows and Fedora using the default config from Clover’s live CD ISO.
The configuration file uses Apple’s plist format (see config-sample.plist) which nix already supports via lib.generators.toPlist. Drivers may additionally be copied to
/EFI/CLOVER/drivers/{EFI,BIOS}/
on EFI partition.Since the documentation seems to be scattered all over the place, I’ve tried to gather useful bits:
Expand to see output ```sh mkfile 512 old LANG=C tr '\000' '\377'new
dd if=old of=new skip=3 seek=3 bs=1 count=87 conv=notrunc
xxd new
```
``` 00000000: ffff ff00 0000 0000 0000 0000 0000 0000 ................ 00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000050: 0000 0000 0000 0000 0000 ffff ffff ffff ................ 00000060: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000070: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000080: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000090: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000000a0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000000b0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000000c0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000000d0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000000e0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000000f0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000100: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000110: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000120: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000130: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000140: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000150: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000160: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000170: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000180: ffff ffff ffff ffff ffff ffff ffff ffff ................ 00000190: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000001a0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000001b0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000001c0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000001d0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000001e0: ffff ffff ffff ffff ffff ffff ffff ffff ................ 000001f0: ffff ffff ffff ffff ffff ffff ffff ffff ................ ```That said, it’s enough for me to have a “standard” way to install Clover on BIOS system (similar to rEFInd package). Then it’d be possible to use any other supported UEFI boot loader (e.g. systemd-boot) for NixOS installation.
Metadata