diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2018-09-24 21:18:23 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2018-09-24 21:18:23 +0200 |
commit | 3a09a4b579612828277fa4b2c0e7cf84c16b3edf (patch) | |
tree | 26cc5cc6fda1a3bd83045c590ae04e95847c86a0 /pkgs/build-support | |
parent | cc2f6c866f1013cd0cf620f199bcdba0d8e2fbc2 (diff) | |
parent | f9197b9f63da8b6d9244c5a8e99507fdd294dcc5 (diff) | |
download | nixlib-3a09a4b579612828277fa4b2c0e7cf84c16b3edf.tar nixlib-3a09a4b579612828277fa4b2c0e7cf84c16b3edf.tar.gz nixlib-3a09a4b579612828277fa4b2c0e7cf84c16b3edf.tar.bz2 nixlib-3a09a4b579612828277fa4b2c0e7cf84c16b3edf.tar.lz nixlib-3a09a4b579612828277fa4b2c0e7cf84c16b3edf.tar.xz nixlib-3a09a4b579612828277fa4b2c0e7cf84c16b3edf.tar.zst nixlib-3a09a4b579612828277fa4b2c0e7cf84c16b3edf.zip |
Merge branch 'master' into staging
Hydra: ?compare=1480463
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/vm/default.nix | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index 03b3fb1f9f27..6e98099460f8 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -3,8 +3,9 @@ , img ? pkgs.stdenv.hostPlatform.platform.kernelTarget , storeDir ? builtins.storeDir , rootModules ? - [ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "crc32c_generic" ] + [ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "crc32c_generic" "sym53c8xx" "virtio_scsi" "ahci "] ++ pkgs.lib.optional (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) "rtc_cmos" +, config }: with pkgs; @@ -196,9 +197,17 @@ rec { ${qemuBinary qemu} \ -nographic -no-reboot \ -device virtio-rng-pci \ + ${if "$diskInterface" == "scsi" then '' \ + \ # FIXME: /dev/sda is not created within the VM + -device lsi53c895a \ + -device scsi-hd,drive=hd,id=scsi1,bootindex=1 \ + ''${diskImage:+-drive file=$diskImage,media=disk,if=none,id=hd,cache=unsafe,werror=report} \ + '' else '' \ + -drive file=$diskImage,media=disk,if=none,id=hd \ + -device virtio-blk-pci,scsi=off,drive=hd,id=virtio0,bootindex=1 \ + \''} -virtfs local,path=${storeDir},security_model=none,mount_tag=store \ -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \ - ''${diskImage:+-drive file=$diskImage,if=virtio,cache=unsafe,werror=report} \ -kernel ${kernel}/${img} \ -initrd ${initrd}/initrd \ -append "console=${qemuSerialDevice} panic=1 command=${stage2Init} out=$out mountDisk=$mountDisk loglevel=4" \ @@ -298,12 +307,13 @@ rec { `run-vm' will be left behind in the temporary build directory that allows you to boot into the VM and debug it interactively. */ - runInLinuxVM = drv: lib.overrideDerivation drv ({ memSize ? 512, QEMU_OPTS ? "", args, builder, ... }: { + runInLinuxVM = drv: lib.overrideDerivation drv ({ memSize ? 512, QEMU_OPTS ? "", args, builder, ... } @ moreArgs : { requiredSystemFeatures = [ "kvm" ]; builder = "${bash}/bin/sh"; args = ["-e" (vmRunCommand qemuCommandLinux)]; origArgs = args; origBuilder = builder; + diskInterface = "${moreArgs.diskInterface}"; QEMU_OPTS = "${QEMU_OPTS} -m ${toString memSize}"; passAsFile = []; # HACK fix - see https://github.com/NixOS/nixpkgs/issues/16742 }); |