diff options
Diffstat (limited to 'app-emulation/vmware-workstation/files/vmware-14.1.rc')
-rw-r--r-- | app-emulation/vmware-workstation/files/vmware-14.1.rc | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/app-emulation/vmware-workstation/files/vmware-14.1.rc b/app-emulation/vmware-workstation/files/vmware-14.1.rc new file mode 100644 index 0000000..b627869 --- /dev/null +++ b/app-emulation/vmware-workstation/files/vmware-14.1.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 +} |