summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/vmware-workstation/files/vmware.rc')
-rw-r--r--app-emulation/vmware-workstation/files/vmware.rc102
1 files changed, 102 insertions, 0 deletions
diff --git a/app-emulation/vmware-workstation/files/vmware.rc b/app-emulation/vmware-workstation/files/vmware.rc
new file mode 100644
index 0000000..b627869
--- /dev/null
+++ b/app-emulation/vmware-workstation/files/vmware.rc
@@ -0,0 +1,102 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need localmount
+ use net
+}
+
+start() {
+ ebegin Starting VMware USB Arbitrator
+ @@BINDIR@@/vmware-usbarbitrator
+ eend $?
+ ebegin Starting VMware services
+
+ # vmci might be:
+ # 1) built as external kernel module
+ # 2) built as internal kernel module (with name vmw_vmci)
+ # 3) embedded in the kernel
+ for mod in /lib/modules/$(uname -r)/misc/vmci.ko \
+ /lib/modules/$(uname -r)/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko ;
+ do
+ if [[ -f "${mod}" ]] ; then
+ modprobe -v $(basename "${mod}" .ko)
+ eend $?
+ break
+ fi
+ done
+
+ # vsock might be:
+ # 1) built as external kernel module
+ # 2) built as internal kernel module (with name vmw_vsock_vmci_transport)
+ # 3) embedded in the kernel
+ for mod in /lib/modules/$(uname -r)/misc/vsock.ko \
+ /lib/modules/$(uname -r)/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko ;
+ do
+ if [[ -f "${mod}" ]] ; then
+ modprobe -v $(basename "${mod}" .ko)
+ eend $?
+ break
+ fi
+ done
+
+ # vmblock
+ if [[ -f /lib/modules/$(uname -r)/misc/vmblock.ko ]]; then
+ modprobe -v vmblock
+ eend $?
+ fi
+
+ # vmci or vsock were already loaded by the previous modprobe,
+ # no need to do it here
+ # quiet for vmci because it may not be there
+ modprobe -av vmmon vmnet
+ eend $?
+ @@BINDIR@@/vmware-networks --start
+ eend $?
+}
+
+stop() {
+ ebegin Stopping VMware USB Arbitrator
+ killall --wait vmware-usbarbitrator
+ eend $?
+ @@BINDIR@@/vmware-networks --stop
+ eend $?
+ ebegin Stopping VMware services
+ modprobe -rv vmmon vmnet
+ eend $?
+
+ # vsock might be:
+ # 1) built as external kernel module
+ # 2) built as internal kernel module (with name vmw_vsock_vmci_transport)
+ # 3) embedded in the kernel
+ for mod in /lib/modules/$(uname -r)/misc/vsock.ko \
+ /lib/modules/$(uname -r)/kernel/net/vmw_vsock/vmw_vsock_vmci_transport.ko ;
+ do
+ if [[ -f "${mod}" ]] ; then
+ modprobe -rv $(basename "${mod}" .ko)
+ eend $?
+ break
+ fi
+ done
+
+ # vmci might be:
+ # 1) built as external kernel module
+ # 2) built as internal kernel module (with name vmw_vmci)
+ # 3) embedded in the kernel
+ for mod in /lib/modules/$(uname -r)/misc/vmci.ko \
+ /lib/modules/$(uname -r)/kernel/drivers/misc/vmw_vmci/vmw_vmci.ko ;
+ do
+ if [[ -f "${mod}" ]] ; then
+ modprobe -rv $(basename "${mod}" .ko)
+ eend $?
+ break
+ fi
+ done
+
+ # vmblock
+ if [[ -f /lib/modules/$(uname -r)/misc/vmblock.ko ]]; then
+ modprobe -rv vmblock
+ eend $?
+ fi
+}