aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2020-03-24 10:15:32 +0100
committerKatharina Fey <kookie@spacekookie.de>2020-03-24 10:15:32 +0100
commit96f063dd321abc80ecaa156226cfb7cf9540315a (patch)
tree7a53ef61484fc7bfff6419b1fd635c67199f27d2 /nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix
parentaf58f08d3d524e7b008b73a8497ea710915ffaf1 (diff)
parentd96bd3394b734487d1c3bfbac0e8f17465e03afe (diff)
Merge commit 'd96bd3394b734487d1c3bfbac0e8f17465e03afe'
Diffstat (limited to 'nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix')
-rw-r--r--nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix39
1 files changed, 33 insertions, 6 deletions
diff --git a/nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix b/nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix
index ab65523592d..788b4d9d976 100644
--- a/nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix
+++ b/nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix
@@ -45,10 +45,41 @@ in {
The file name of the VirtualBox appliance.
'';
};
+ params = mkOption {
+ type = with types; attrsOf (oneOf [ str int bool (listOf str) ]);
+ example = {
+ audio = "alsa";
+ rtcuseutc = "on";
+ usb = "off";
+ };
+ description = ''
+ Parameters passed to the Virtualbox appliance.
+
+ Run <literal>VBoxManage modifyvm --help</literal> to see more options.
+ '';
+ };
};
};
config = {
+
+ virtualbox.params = mkMerge [
+ (mapAttrs (name: mkDefault) {
+ acpi = "on";
+ vram = 32;
+ nictype1 = "virtio";
+ nic1 = "nat";
+ audiocontroller = "ac97";
+ audio = "alsa";
+ audioout = "on";
+ rtcuseutc = "on";
+ usb = "on";
+ usbehci = "on";
+ mouse = "usbtablet";
+ })
+ (mkIf (pkgs.stdenv.hostPlatform.system == "i686-linux") { pae = "on"; })
+ ];
+
system.build.virtualBoxOVA = import ../../lib/make-disk-image.nix {
name = cfg.vmDerivationName;
@@ -69,12 +100,8 @@ in {
VBoxManage createvm --name "$vmName" --register \
--ostype ${if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then "Linux26_64" else "Linux26"}
VBoxManage modifyvm "$vmName" \
- --memory ${toString cfg.memorySize} --acpi on --vram 32 \
- ${optionalString (pkgs.stdenv.hostPlatform.system == "i686-linux") "--pae on"} \
- --nictype1 virtio --nic1 nat \
- --audiocontroller ac97 --audio alsa --audioout on \
- --rtcuseutc on \
- --usb on --usbehci on --mouse usbtablet
+ --memory ${toString cfg.memorySize} \
+ ${lib.cli.toGNUCommandLineShell { } cfg.params}
VBoxManage storagectl "$vmName" --name SATA --add sata --portcount 4 --bootable on --hostiocache on
VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \
--medium disk.vmdk