From 74a59c2b1a4b23978ac9aad56540aec64cc3f3e0 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Mon, 12 Aug 2019 14:01:46 +0200 Subject: [vmware-version-check] CPU support check helper --- .../opt/openslx/bin/vmware-get-supported-version | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 core/modules/vmware-version-check/data/opt/openslx/bin/vmware-get-supported-version (limited to 'core/modules/vmware-version-check/data/opt/openslx/bin/vmware-get-supported-version') diff --git a/core/modules/vmware-version-check/data/opt/openslx/bin/vmware-get-supported-version b/core/modules/vmware-version-check/data/opt/openslx/bin/vmware-get-supported-version new file mode 100755 index 00000000..82bd7d50 --- /dev/null +++ b/core/modules/vmware-version-check/data/opt/openslx/bin/vmware-get-supported-version @@ -0,0 +1,22 @@ +#!/bin/ash +# This script checks whether given VMware version supports the CPU: +# * Intel: check for "VMX Unrestricted Guest" CPU flag +# * AMD: check if CPU family is Bulldozer or newer + +export PATH=$PATH:/opt/openslx/sbin:/opt/openslx/bin + +get_supported_version() { + local vendor="$( awk '$1 == "vendor_id" {print $NF;exit}' /proc/cpuinfo )" + local version=12 + if [ "$vendor" = "GenuineIntel" ]; then + modprobe msr + flag="$( rdmsr --bitfield 5:5 0x485 )" + [ "$flag" = 1 ] && version=15 + elif [ "$vendor" = "AuthenticAMD" ]; then + family="$( awk '$1$2 == "cpufamily" {print $NF;exit}' /proc/cpuinfo )" + [ "$family" -ge 21 ] && version=15 + fi + echo "$version" +} + +get_supported_version -- cgit v1.2.3-55-g7522