summaryrefslogtreecommitdiffstats
path: root/src/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm
diff options
context:
space:
mode:
authorSebastian2012-04-25 18:49:45 +0200
committerSebastian2012-04-25 18:49:45 +0200
commit3767d10ce0df2d48d66971cc0603db543894783c (patch)
treeaf01694b465fb0cec7e29b1108a8784a28f5abd4 /src/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm
parent(quick)fix problems with alternative firmware locations.. (diff)
downloadcore-3767d10ce0df2d48d66971cc0603db543894783c.tar.gz
core-3767d10ce0df2d48d66971cc0603db543894783c.tar.xz
core-3767d10ce0df2d48d66971cc0603db543894783c.zip
fixes for vmware player 4.x / vmware workstation 8.x
Diffstat (limited to 'src/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm')
-rw-r--r--src/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm b/src/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm
index abe83f5b..35e03f94 100644
--- a/src/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm
+++ b/src/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm
@@ -420,7 +420,7 @@ sub _writeRunlevelScript
insmod ${modpath}/vmmon.ko || return 1
insmod ${modpath}/vmnet.ko || return 1
End-of-Here
- if ($kind eq 'local3X' || $kind eq 'vmpl3.X') {
+ if ($kind eq 'local3X' || $kind eq 'vmpl3.X' || $kind eq 'local4X') {
$script .= unshiftHereDoc(<<" End-of-Here");
# VMplayer 3.X specific stuff
insmod ${modpath}/vmci.ko
@@ -508,7 +508,7 @@ sub _writeRunlevelScript
vmnetif
End-of-Here
# start the USB arbitrator on higher VMware/player versions (3.0+)
- if ($kind eq 'vmpl3.X' || $kind eq 'local3X') {
+ if ($kind eq 'vmpl3.X' || $kind eq 'local3X' || $kind eq 'local4X') {
$script .= unshiftHereDoc(<<" End-of-Here");
vmblock
End-of-Here
@@ -645,14 +645,14 @@ sub _getVersion {
$vmversion = $1;
$vmbuildversion = $2;
}
- if ($data =~ m{\0(2\.[05])\.[0-9]}) {
- $vmversion = $1;
- }
+ #if ($data =~ m{(\d\.\d\.\d)}) {
+ # $vmversion = $1;
+ #}
# else { TODO: errorhandling if file or string doesn't exist }
# with vmplayer greater than 4.x the previous method doesn't work anymore
# so we use strings tool to get at least the build number..
- if ($vmbuildversion == '') {
+ if ( ! defined $vmbuildversion || $vmbuildversion eq '') {
$data = qx{strings $vmpath/bin/vmplayer};
if ($data =~ m{build-(\d+)}) {
$vmbuildversion = $1;
@@ -666,6 +666,20 @@ sub _getVersion {
$versioninfo{vmversion} = $vmversion;
$versioninfo{vmbuildversion} = $vmbuildversion;
}
+ if ( ! defined $vmversion || $vmversion eq '' ) {
+ if (open(FH, "strings /usr/lib/vmware/lib/libvmplayer.so/libvmplayer.so | grep -E \"^[1-9]\" |")) {
+ $/ = undef;
+ my $data = <FH>;
+ close FH;
+
+ if ($data =~ m{(\d\.\d)}) {
+ $vmversion = $1;
+ }
+ chomp($vmversion);
+ $versioninfo{vmversion} = $vmversion;
+ }
+ }
+
return %versioninfo;
}
@@ -707,6 +721,8 @@ sub _localInstallation
# VMplayer 3.0, 3.1, Workstation 7.0, 7.1
} elsif ($vmversion eq "3.0" || $vmversion eq "7.0" ||
$vmversion eq "3.1" || $vmversion eq "7.1") { $kind="local3X";
+ } elsif ($vmversion eq "4.0" || $vmversion eq "8.0") {
+ $kind="local4X";
}
# Create runlevel script depending on detected version
$self->_writeRunlevelScript("$vmpath", "$kind");