|
|
@ -91,6 +91,11 @@ sub hasCPUFeature { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sub cpuManufacturer { |
|
|
|
|
|
|
|
my $id = shift; |
|
|
|
|
|
|
|
return $cpuinfo =~ /^vendor_id\s*:.* $id$/m; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Determine CPU governor to use |
|
|
|
# Determine CPU governor to use |
|
|
|
if (-e "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors") { |
|
|
|
if (-e "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors") { |
|
|
@ -111,6 +116,9 @@ if (-e "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors") { |
|
|
|
push @kernelModules, "kvm-intel" if hasCPUFeature "vmx"; |
|
|
|
push @kernelModules, "kvm-intel" if hasCPUFeature "vmx"; |
|
|
|
push @kernelModules, "kvm-amd" if hasCPUFeature "svm"; |
|
|
|
push @kernelModules, "kvm-amd" if hasCPUFeature "svm"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
push @attrs, "hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;" if cpuManufacturer "AuthenticAMD"; |
|
|
|
|
|
|
|
push @attrs, "hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;" if cpuManufacturer "GenuineIntel"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Look at the PCI devices and add necessary modules. Note that most |
|
|
|
# Look at the PCI devices and add necessary modules. Note that most |
|
|
|
# modules are auto-detected so we don't need to list them here. |
|
|
|
# modules are auto-detected so we don't need to list them here. |
|
|
|