diff --git a/modules/installer/tools/nixos-hardware-scan.pl b/modules/installer/tools/nixos-hardware-scan.pl index b81eeaa90e4..5b90607f4b0 100644 --- a/modules/installer/tools/nixos-hardware-scan.pl +++ b/modules/installer/tools/nixos-hardware-scan.pl @@ -8,6 +8,7 @@ my @attrs = (); my @kernelModules = (); my @initrdKernelModules = (); my @modulePackages = (); +my @requires = (""); sub debug { @@ -182,6 +183,14 @@ if ($videoDriver) { } +# Check if we're a VirtualBox guest. If so, enable the guest +# additions. +my $dmi = `@dmidecode@/sbin/dmidecode`; +if ($dmi =~ /Manufacturer: innotek/) { + push @attrs, "services.virtualbox.enable = true;" +} + + # Generate the configuration file. sub removeDups { @@ -218,6 +227,8 @@ my $initrdKernelModules = toNixExpr(removeDups @initrdKernelModules); my $kernelModules = toNixExpr(removeDups @kernelModules); my $modulePackages = toNixExpr(removeDups @modulePackages); my $attrs = multiLineList(" ", removeDups @attrs); +my $requires = multiLineList(" ", removeDups @requires); + print < - ]; + require = [$requires ]; boot.initrd.kernelModules = [$initrdKernelModules ]; boot.kernelModules = [$kernelModules ]; diff --git a/modules/installer/tools/tools.nix b/modules/installer/tools/tools.nix index 4520b7bb1eb..740bfcbbb0c 100644 --- a/modules/installer/tools/tools.nix +++ b/modules/installer/tools/tools.nix @@ -48,7 +48,7 @@ let nixosHardwareScan = makeProg { name = "nixos-hardware-scan"; src = ./nixos-hardware-scan.pl; - inherit (pkgs) perl; + inherit (pkgs) perl dmidecode; }; nixosOption = makeProg {