Skip to content

Commit 81143af

Browse files
committed
fix(devshell): enable EFI boot on macOS by patching OVMF paths
Nix's qemu_full bundles EDK2 firmware with different filenames than quickemu expects. Add darwin-specific sed patterns to: - Set SHARE_PATH to qemu_full's share directory - Prepend correct firmware paths (edk2-x86_64-code.fd, edk2-i386-vars.fd) to the ovmfs search array
1 parent 9cc54ff commit 81143af

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

devshell.nix

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,11 @@ mkShell {
5555
-e '/OVMF_CODE_4M.secboot.fd/s|ovmfs=(|ovmfs=("${OVMFFull.firmware}","${OVMFFull.variables}" |' \
5656
-e '/OVMF_CODE_4M.fd/s|ovmfs=(|ovmfs=("${OVMF.firmware}","${OVMF.variables}" |' \
5757
''
58-
} \
58+
}${lib.optionalString stdenv.isDarwin ''
59+
-e 's|local SHARE_PATH="/usr/share"|local SHARE_PATH="${pkgs.qemu_full}/share"|' \
60+
-e 's|ovmfs=("[$][{]SHARE_PATH}/OVMF/OVMF_CODE_4M.secboot.fd"|ovmfs=("${pkgs.qemu_full}/share/qemu/edk2-x86_64-secure-code.fd","${pkgs.qemu_full}/share/qemu/edk2-i386-vars.fd" "''${SHARE_PATH}/OVMF/OVMF_CODE_4M.secboot.fd"|' \
61+
-e 's|ovmfs=("[$][{]SHARE_PATH}/OVMF/OVMF_CODE_4M.fd"|ovmfs=("${pkgs.qemu_full}/share/qemu/edk2-x86_64-code.fd","${pkgs.qemu_full}/share/qemu/edk2-i386-vars.fd" "''${SHARE_PATH}/OVMF/OVMF_CODE_4M.fd"|' \
62+
''} \
5963
-e '/cp "''${VARS_IN}" "''${VARS_OUT}"/a chmod +w "''${VARS_OUT}"' \
6064
-e 's,\$(command -v smbd),${pkgs.samba}/bin/smbd,' \
6165
quickemu > $PWD/.direnv/bin/quickemu

0 commit comments

Comments
 (0)