diff options
author | Thomas Strobel <ts468@cam.ac.uk> | 2015-01-26 21:13:31 +0100 |
---|---|---|
committer | Thomas Strobel <ts468@cam.ac.uk> | 2015-02-16 20:07:42 +0100 |
commit | 80afabd5b5d034d41792b7cf99d3ca87ae34596a (patch) | |
tree | 2ce67bd96ef816d0ce04e01ccb5f59ff578ea9ce /pkgs/applications/virtualization/OVMF | |
parent | b9cc04329b19119ae0b2a410868d014f3f82cf10 (diff) | |
download | nixlib-80afabd5b5d034d41792b7cf99d3ca87ae34596a.tar nixlib-80afabd5b5d034d41792b7cf99d3ca87ae34596a.tar.gz nixlib-80afabd5b5d034d41792b7cf99d3ca87ae34596a.tar.bz2 nixlib-80afabd5b5d034d41792b7cf99d3ca87ae34596a.tar.lz nixlib-80afabd5b5d034d41792b7cf99d3ca87ae34596a.tar.xz nixlib-80afabd5b5d034d41792b7cf99d3ca87ae34596a.tar.zst nixlib-80afabd5b5d034d41792b7cf99d3ca87ae34596a.zip |
Update QEMU Nixos Virtual Machine
The Nixos Qemu VM that are used for VM tests can now start without boot menu even when using a bootloader. The Nixos Qemu VM with bootloader can emulate a EFI boot now.
Diffstat (limited to 'pkgs/applications/virtualization/OVMF')
-rw-r--r-- | pkgs/applications/virtualization/OVMF/default.nix | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix index 388248c5aa86..e29ab11947fd 100644 --- a/pkgs/applications/virtualization/OVMF/default.nix +++ b/pkgs/applications/virtualization/OVMF/default.nix @@ -1,4 +1,4 @@ -{ stdenv, edk2, nasm, iasl }: +{ stdenv, edk2, nasm, iasl, seabios, openssl, secureBoot ? false }: let @@ -14,14 +14,36 @@ in stdenv.mkDerivation (edk2.setup "OvmfPkg/OvmfPkg${targetArch}.dsc" { name = "OVMF-2014-12-10"; - buildInputs = [nasm iasl]; + # TODO: properly include openssl for secureBoot + buildInputs = [nasm iasl] ++ stdenv.lib.optionals (secureBoot == true) [ openssl ]; + unpackPhase = '' for file in \ - "${edk2.src}"/{OvmfPkg,UefiCpuPkg,MdeModulePkg,IntelFrameworkModulePkg,PcAtChipsetPkg,FatBinPkg,EdkShellBinPkg,MdePkg,ShellPkg,OptionRomPkg,IntelFrameworkPkg}; + "${edk2.src}"/{UefiCpuPkg,MdeModulePkg,IntelFrameworkModulePkg,PcAtChipsetPkg,FatBinPkg,EdkShellBinPkg,MdePkg,ShellPkg,OptionRomPkg,IntelFrameworkPkg}; do ln -sv "$file" . done - ''; + + ${if (seabios == false) then '' + ln -sv ${edk2.src}/OvmfPkg . + '' else '' + cp -r ${edk2.src}/OvmfPkg . + chmod +w OvmfPkg/Csm/Csm16 + cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin + ''} + + ${if (secureBoot == true) then '' + ln -sv ${edk2.src}/SecurityPkg . + ln -sv ${edk2.src}/CryptoPkg . + '' else '' + ''} + ''; + + buildPhase = if (seabios == false) then '' + build ${if secureBoot then "-DSECURE_BOOT_ENABLE=TRUE" else ""} + '' else '' + build -D CSM_ENABLE -D FD_SIZE_2MB ${if secureBoot then "-DSECURE_BOOT_ENABLE=TRUE" else ""} + ''; meta = { description = "Sample UEFI firmware for QEMU and KVM"; |