aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/open-vm-tools_2/open-vm-tools.inc76
1 files changed, 53 insertions, 23 deletions
diff --git a/config/open-vm-tools_2/open-vm-tools.inc b/config/open-vm-tools_2/open-vm-tools.inc
index 912c4032..f005074e 100644
--- a/config/open-vm-tools_2/open-vm-tools.inc
+++ b/config/open-vm-tools_2/open-vm-tools.inc
@@ -1,22 +1,56 @@
<?php
-
+/*
+ open-vm-tools.inc
+ part of pfSense (https://www.pfSense.org/)
+ Copyright (C) 2008-2015 Electric Sheep Fencing LP
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
function open_vm_tools_deinstall() {
- exec("rm /usr/local/etc/rc.d/vmware*");
+ conf_mount_rw();
+ stop_service("vmware-guestd");
+ unlink_if_exists("/usr/local/etc/rc.d/vmware-guestd.sh");
+ unlink_if_exists("/usr/local/etc/rc.d/vmware-kmod.sh");
unlink_if_exists("/boot/kernel/vmblock.ko");
unlink_if_exists("/boot/kernel/vmhgfs.ko");
unlink_if_exists("/boot/kernel/vmmemctl.ko");
unlink_if_exists("/boot/kernel/vmxnet.ko");
+ conf_mount_ro();
}
function open_vm_tools_install() {
+ conf_mount_rw();
- // clean up old .ko files if they exist
+ // Clean up old .ko files if they exist
unlink_if_exists("/boot/kernel/vmblock.ko");
unlink_if_exists("/boot/kernel/vmhgfs.ko");
unlink_if_exists("/boot/kernel/vmmemctl.ko");
unlink_if_exists("/boot/kernel/vmxnet.ko");
+ // Remove other unused files if they exist
+ unlink_if_exists("/usr/local/etc/rc.d/vmware-kmod");
+ unlink_if_exists("/usr/local/etc/rc.d/vmware-guestd");
- $pfs_version=substr(trim(file_get_contents("/etc/version")),0,3);
+ $pfs_version = substr(trim(file_get_contents("/etc/version")), 0, 3);
if ($pfs_version == "2.1") {
$openvmtools_path = "/usr/pbi/open-vm-tools-nox11-" . php_uname("m");
} else if ($pfs_version == "2.2") {
@@ -24,10 +58,7 @@ function open_vm_tools_install() {
} else {
$openvmtools_path = "/usr/local";
}
-
- // won't copy this either for now, some sequences of loading/unloading of the module will kernel panic.
- //exec("cp $openvmtools_path/local/lib/vmware-tools/modules/drivers/vmmemctl.ko /boot/kernel/");
-
+
$vmware_tools_conf = <<<EOF
[powerops]
poweron-script=
@@ -40,10 +71,10 @@ EOF;
$vmware_guestd = <<<EOF
#!/bin/sh
#
-# This file was automatically generated
+# This file was automatically generated
# by the pfSense package manager.
-#
-# Do not edit this file. Edit
+#
+# Do not edit this file. Edit
# /usr/local/pkg/open-vm-tools.inc instead.
#
# PROVIDE: vmware-guestd
@@ -76,10 +107,10 @@ EOF;
$vmware_kmod = <<<EOF
#!/bin/sh
#
-# This file was automatically generated
+# This file was automatically generated
# by the pfSense package manager.
-#
-# Do not edit this file. Edit
+#
+# Do not edit this file. Edit
# /usr/local/pkg/open-vm-tools.inc instead.
#
# PROVIDE: vmware-kmod
@@ -120,8 +151,9 @@ EOF;
}
fwrite($fd, $vmware_guestd);
fclose($fd);
+ chmod("/usr/local/etc/rc.d/vmware-guestd.sh", 0755);
- /* the kernel modules aren't stable at this time, omit them.
+ /* The kernel modules aren't stable at this time, omit them.
$fd = fopen("/usr/local/etc/rc.d/vmware-kmod.sh", "w");
if (!$fd) {
log_error("Could not open /usr/local/etc/rc.d/vmware-kmod.sh for writing");
@@ -129,8 +161,12 @@ EOF;
}
fwrite($fd, $vmware_kmod);
fclose($fd);
+ chmod("/usr/local/etc/rc.d/vmware-kmod.sh", 0755);
*/
-
+ /* Won't copy this either for now, some sequences of loading/unloading of the module will cause kernel panic.
+ mwexec("/bin/cp $openvmtools_path/local/lib/vmware-tools/modules/drivers/vmmemctl.ko /boot/kernel/");
+ */
+
$fd = fopen("$openvmtools_path/share/vmware-tools/tools.conf", "w");
if (!$fd) {
log_error("Could not open $openvmtools_path/share/vmware-tools/tools.conf for writing");
@@ -139,13 +175,7 @@ EOF;
fwrite($fd, $vmware_tools_conf);
fclose($fd);
- // Remove non used files
- unlink_if_exists("/usr/local/etc/rc.d/vmware-kmod");
- unlink_if_exists("/usr/local/etc/rc.d/vmware-guestd");
-
- // Make sure files are executable.
- exec("chmod a+rx /usr/local/etc/rc.d/*.sh");
-
+ start_service("vmware-guestd");
}
?>