diff options
-rw-r--r-- | config/open-vm-tools/open-vm-tools.inc | 134 | ||||
-rw-r--r-- | config/open-vm-tools/open-vm-tools.xml | 48 |
2 files changed, 158 insertions, 24 deletions
diff --git a/config/open-vm-tools/open-vm-tools.inc b/config/open-vm-tools/open-vm-tools.inc new file mode 100644 index 00000000..3a42896d --- /dev/null +++ b/config/open-vm-tools/open-vm-tools.inc @@ -0,0 +1,134 @@ +<?php + +function open_vm_tools_install() { + + $vmware_guestd = <<<EOF +#!/bin/sh +# +# PROVIDE: vmware-guestd +# REQUIRE: DAEMON +# BEFORE: LOGIN + +. /etc/rc.subr + +# Global +checkvm_cmd="/usr/local/bin/vmware-checkvm > /dev/null" + +# VMware guest daemon +name="vmware_guestd" +rcvar=`set_rcvar` +start_precmd="\${checkvm_cmd}" +unset start_cmd +stop_precmd="\${checkvm_cmd}" +unset stop_cmd +command="/usr/local/sbin/vmware-guestd" +command_args="--halt-command '/sbin/shutdown -p now' >/dev/null 2>&1" +pidfile="/var/run/\${name}.pid" + +load_rc_config \$name +vmware_guestd_enable="YES" +vmware_guestd_flags="--background \${pidfile}" +run_rc_command "\$1" + +EOF + + $vmware_kmod = <<<EOF +#!/bin/sh +# +# PROVIDE: vmware-kmod +# REQUIRE: FILESYSTEMS +# BEFORE: netif + +. /etc/rc.subr + +# Global +checkvm_cmd="/usr/local/bin/vmware-checkvm > /dev/null" + +# Functions +vmware_guest_vmmemctl_start() +{ + echo 'Loading vmmemctl kernel module.' + kldload /usr/local/lib/vmware-tools/modules/drivers/vmmemctl.ko >/dev/null 2>&1 +} +vmware_guest_vmxnet_start() +{ + echo 'Loading vmxnet kernel module.' + kldload /usr/local/lib/vmware-tools/modules/drivers/vmxnet.ko >/dev/null 2>&1 +} +vmware_guest_vmblock_start() +{ + echo 'Loading vmblock kernel module.' + kldload /usr/local/lib/vmware-tools/modules/drivers/vmblock.ko >/dev/null 2>&1 +} +vmware_guest_vmhgfs_start() +{ + echo 'Loading vmhgfs kernel module.' + kldload /usr/local/lib/vmware-tools/modules/drivers/vmhgfs.ko >/dev/null 2>&1 +} + +# VMware kernel module: vmmemctl +name="vmware_guest_vmmemctl" +rcvar=`set_rcvar` +start_precmd="\${checkvm_cmd}" +start_cmd="vmware_guest_vmmemctl_start" +stop_precmd="\${checkvm_cmd}" +stop_cmd=":" + +load_rc_config \$name +vmware_guest_vmmemctl_enable="NO" +vmware_guest_vmmemctl_enable="\$vmware_guest_kmod_enable" +run_rc_command "\$1" + +# VMware kernel module: vmxnet +name="vmware_guest_vmxnet" +rcvar=`set_rcvar` +start_precmd="\${checkvm_cmd}" +start_cmd="vmware_guest_vmxnet_start" +stop_precmd="\${checkvm_cmd}" +stop_cmd=":" + +load_rc_config \$name +vmware_guest_vmxnet_enable="NO" +run_rc_command "\$1" + +# VMware kernel module: vmblock +name="vmware_guest_vmblock" +rcvar=`set_rcvar` +start_precmd="\${checkvm_cmd}" +start_cmd="vmware_guest_vmblock_start" +stop_precmd="\${checkvm_cmd}" +stop_cmd=":" + +load_rc_config \$name +vmware_guest_vmblock_enable="NO" +run_rc_command "\$1" + +# VMware kernel module: vmhgfs +name="vmware_guest_vmhgfs" +rcvar=`set_rcvar` +start_precmd="\${checkvm_cmd}" +start_cmd="vmware_guest_vmhgfs_start" +stop_precmd="\${checkvm_cmd}" +stop_cmd=":" + +load_rc_config \$name +vmware_guest_vmhgfs_enable="NO" +run_rc_command "\$1" + +EOF + + $fd = fopen("/usr/local/etc/rc.d/vmware-guestd.sh", "w"); + if(!$fd) + die("Could not open /usr/local/etc/rc.d/vmware-guestd.sh or writing"); + fwrite($fd, $vmware_guestd); + fclose($fd); + + $fd = fopen("/usr/local/etc/rc.d/vmware-kmod.sh", "w"); + if(!$fd) + die("Could not open /usr/local/etc/rc.d/vmware-kmod.sh or writing"); + fwrite($fd, $vmware_kmod); + fclose($fd); + +} + +?>
\ No newline at end of file diff --git a/config/open-vm-tools/open-vm-tools.xml b/config/open-vm-tools/open-vm-tools.xml index 5d157f09..e393edad 100644 --- a/config/open-vm-tools/open-vm-tools.xml +++ b/config/open-vm-tools/open-vm-tools.xml @@ -4,20 +4,19 @@ <packagegui> <copyright> <![CDATA[ -/* $Id$ */ -/* ========================================================================== */ -/* - open-vm-tools.xml - part of pfSense (http://www.pfSense.org) - Copyright (C) 2008 BSD Perimeter LLC - All rights reserved. + /* ========================================================================== */ + /* + open-vm-tools.xml + part of pfSense (http://www.pfSense.org) + Copyright (C) 2008 BSD Perimeter LLC + All rights reserved. - Based on m0n0wall (http://m0n0.ch/wall) - Copyright (C) 2003-2008 Manuel Kasper <mk@neon1.net>. - All rights reserved. - */ -/* ========================================================================== */ -/* + Based on m0n0wall (http://m0n0.ch/wall) + Copyright (C) 2003-2008 Manuel Kasper <mk@neon1.net>. + All rights reserved. + */ + /* ========================================================================== */ + /* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -42,23 +41,24 @@ /* ========================================================================== */ ]]> </copyright> - <description>Describe your package here</description> - <requirements>Describe your package requirements here</requirements> - <faq>Currently there are no FAQ items provided.</faq> <name>open-vm-tools</name> <version>102166_7</version> <title>Open VM Tools</title> + <additional_files_needed> + <prefix>/usr/local/pkg/</prefix> + <chmod>0644</chmod> + <item>http://www.pfsense.com/packages/config/open-vm-tools/open-vm-tools.inc</item> + </additional_files_needed> <custom_add_php_command> </custom_add_php_command> <custom_php_install_command> - conf_mount_rw(); - config_lock(); - exec("pkg_add -r "); - conf_mount_ro(); - config_unlock(); - /usr/local/etc/rc.d/vmware-guestd.sh start - /usr/local/etc/rc.d/vmware-kmod.sh start + conf_mount_rw(); + open_vm_tools_install(); + exec("/usr/local/etc/rc.d/vmware-guestd.sh start"); + exec("/usr/local/etc/rc.d/vmware-kmod.sh start"); + conf_mount_ro(); </custom_php_install_command> <custom_php_deinstall_command> </custom_php_deinstall_command> -</packagegui> + <include_file>/usr/local/pkg/open-vm-tools.inc</include_file> +</packagegui>
\ No newline at end of file |