home-manager: move OVMF into linux.nic
This commit is contained in:
parent
8c86a40a02
commit
8d42dbb467
|
@ -1,14 +1,5 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
OVMFPkg = (pkgs.OVMF.override{
|
||||
secureBoot = true;
|
||||
tpmSupport = true;
|
||||
}).fd;
|
||||
OVMFBinName = if pkgs.stdenv.isAarch64 then "AAVMF"
|
||||
else "OVMF";
|
||||
in
|
||||
|
||||
{
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
|
@ -101,39 +92,6 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
# for raw QEMU VMs
|
||||
home.activation = {
|
||||
OVMFActivation = lib.hm.dag.entryAfter [ "installPackages" ] (if pkgs.stdenv.isx86_64 then ''
|
||||
EDKII_CODE_NIX="${OVMFPkg}/FV/${OVMFBinName}_CODE.fd"
|
||||
EDKII_VARS_NIX="${OVMFPkg}/FV/${OVMFBinName}_VARS.fd"
|
||||
|
||||
EDKII_DIR_HOME="$HOME/.local/share/edk2"
|
||||
EDKII_CODE_HOME="$EDKII_DIR_HOME/EDKII_CODE"
|
||||
EDKII_VARS_HOME="$EDKII_DIR_HOME/EDKII_VARS"
|
||||
|
||||
if [ -d "$EDKII_DIR_HOME" ]; then
|
||||
rm -rf "$EDKII_DIR_HOME"
|
||||
fi
|
||||
mkdir -vp "$EDKII_DIR_HOME"
|
||||
|
||||
cp "$EDKII_CODE_NIX" "$EDKII_CODE_HOME"
|
||||
cp "$EDKII_VARS_NIX" "$EDKII_VARS_HOME"
|
||||
|
||||
chown pratham:pratham "$EDKII_CODE_HOME" "$EDKII_VARS_HOME"
|
||||
chmod 644 "$EDKII_CODE_HOME" "$EDKII_VARS_HOME"
|
||||
'' else "");
|
||||
};
|
||||
|
||||
# for libvirt, virt-manager, virsh
|
||||
xdg.configFile = {
|
||||
"libvirt/qemu.conf" = {
|
||||
enable = true;
|
||||
text = ''
|
||||
nvram = [ "${OVMFPkg}/FV/${OVMFBinName}_CODE.fd:${OVMFPkg}/FV/${OVMFBinName}_VARS.fd" ]
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
nix = {
|
||||
package = pkgs.nix;
|
||||
checkConfig = true;
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
OVMFPkg = (pkgs.OVMF.override{
|
||||
secureBoot = true;
|
||||
tpmSupport = true;
|
||||
}).fd;
|
||||
OVMFBinName = if pkgs.stdenv.isAarch64 then "AAVMF"
|
||||
else "OVMF";
|
||||
in
|
||||
|
||||
{
|
||||
targets.genericLinux.enable = true;
|
||||
|
||||
|
@ -53,4 +62,37 @@
|
|||
frequency = "daily";
|
||||
};
|
||||
};
|
||||
|
||||
# for raw QEMU VMs
|
||||
home.activation = {
|
||||
OVMFActivation = lib.hm.dag.entryAfter [ "installPackages" ] (if pkgs.stdenv.isx86_64 then ''
|
||||
EDKII_CODE_NIX="${OVMFPkg}/FV/${OVMFBinName}_CODE.fd"
|
||||
EDKII_VARS_NIX="${OVMFPkg}/FV/${OVMFBinName}_VARS.fd"
|
||||
|
||||
EDKII_DIR_HOME="$HOME/.local/share/edk2"
|
||||
EDKII_CODE_HOME="$EDKII_DIR_HOME/EDKII_CODE"
|
||||
EDKII_VARS_HOME="$EDKII_DIR_HOME/EDKII_VARS"
|
||||
|
||||
if [ -d "$EDKII_DIR_HOME" ]; then
|
||||
rm -rf "$EDKII_DIR_HOME"
|
||||
fi
|
||||
mkdir -vp "$EDKII_DIR_HOME"
|
||||
|
||||
cp "$EDKII_CODE_NIX" "$EDKII_CODE_HOME"
|
||||
cp "$EDKII_VARS_NIX" "$EDKII_VARS_HOME"
|
||||
|
||||
chown pratham:pratham "$EDKII_CODE_HOME" "$EDKII_VARS_HOME"
|
||||
chmod 644 "$EDKII_CODE_HOME" "$EDKII_VARS_HOME"
|
||||
'' else "");
|
||||
};
|
||||
|
||||
# for libvirt, virt-manager, virsh
|
||||
xdg.configFile = {
|
||||
"libvirt/qemu.conf" = {
|
||||
enable = true;
|
||||
text = ''
|
||||
nvram = [ "${OVMFPkg}/FV/${OVMFBinName}_CODE.fd:${OVMFPkg}/FV/${OVMFBinName}_VARS.fd" ]
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue