diff --git a/nixos/vms/config.nix b/nixos/vms/config.nix index d851fa2..42b0868 100644 --- a/nixos/vms/config.nix +++ b/nixos/vms/config.nix @@ -208,14 +208,14 @@ let '') vmCfg.shares)} \ ${optionalString cfg.networks.user.enable " -netdev user,id=user \ - -device virtio-net-pci,netdev=user \ + -device ${vmCfg.nicModel},netdev=user \ "} \ ${concatMapStrings (tapCfg: '' - -device virtio-net-pci,netdev=lan-${tapCfg.name},mac=${tapCfg.mac} \ + -device ${vmCfg.nicModel},netdev=lan-${tapCfg.name},mac=${tapCfg.mac} \ -netdev tap,id=lan-${tapCfg.name},ifname=${tapCfg.iface},script=no,downscript=no \ '') allTaps} \ ${concatStrings (imap1 (i: macvtap: '' - -device virtio-net-pci,netdev=macvtap-${macvtap.name},mac=$(ip l show ${macvtap.iface} | awk '/link\/ether/{print $2}') \ + -device ${vmCfg.nicModel},netdev=macvtap-${macvtap.name},mac=$(ip l show ${macvtap.iface} | awk '/link\/ether/{print $2}') \ -netdev tap,id=macvtap-${macvtap.name},fd=${toString (i+2)} ${toString (i+2)}<>/dev/tap$(ip l show ${macvtap.iface} | awk -F':' '/${macvtap.iface}/{print $1}') \ '') allMacvtaps)} \ ${concatStrings (imap1 (i: pciAddr: '' diff --git a/nixos/vms/submoduleOptions.nix b/nixos/vms/submoduleOptions.nix index e871ca1..0158c2b 100644 --- a/nixos/vms/submoduleOptions.nix +++ b/nixos/vms/submoduleOptions.nix @@ -235,6 +235,12 @@ with lib; description = "Enable boot menu."; }; + nicModel = mkOption { + type = types.str; + default = "virtio-net-pci"; + description = "QEMU NIC device model (e.g. virtio-net-pci, e1000)."; + }; + windows = { enable = mkOption { type = types.bool;