summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Rossi <rossi.f@inwind.it>2017-05-20 23:18:13 +0200
committerFabio Rossi <rossi.f@inwind.it>2017-05-20 23:18:13 +0200
commitc825cf260f3730b510e135657a6d355800801f0e (patch)
tree40dea078a3f5c60b508296d66ed96b1351bf507f /app-emulation
parentadding support for 4.9 kernels to vmware-modules 304 (workstation 11) (diff)
downloadvmware-c825cf260f3730b510e135657a6d355800801f0e.tar.gz
vmware-c825cf260f3730b510e135657a6d355800801f0e.tar.bz2
vmware-c825cf260f3730b510e135657a6d355800801f0e.zip
app-emulation/vmware-{player,workstation}: fix init.d when vsock/vmci are built into kernel
The old init scripts fail when the vsock/vmci are built into kernel not as modules. This should close the bug #510156. The systemd services fail but don't block the initialization so I haven't touched them.
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/vmware-player/files/vmware-11.2.rc66
-rw-r--r--app-emulation/vmware-player/files/vmware-12.1.rc68
-rw-r--r--app-emulation/vmware-player/files/vmware-12.5.rc68
-rw-r--r--app-emulation/vmware-workstation/files/vmware-11.0.rc66
-rw-r--r--app-emulation/vmware-workstation/files/vmware-11.1.rc66
-rw-r--r--app-emulation/vmware-workstation/files/vmware-11.2.rc66
-rw-r--r--app-emulation/vmware-workstation/files/vmware-12.1.rc66
-rw-r--r--app-emulation/vmware-workstation/files/vmware-12.5.rc66
-rw-r--r--app-emulation/vmware-workstation/files/vmware-9.0.rc67
9 files changed, 519 insertions, 80 deletions
diff --git a/app-emulation/vmware-player/files/vmware-11.2.rc b/app-emulation/vmware-player/files/vmware-11.2.rc
index 3437207..38524b2 100644
--- a/app-emulation/vmware-player/files/vmware-11.2.rc
+++ b/app-emulation/vmware-player/files/vmware-11.2.rc
@@ -15,13 +15,37 @@ start() {
eend $?
ebegin Starting VMware services
- # quiet for vmci because it may not be there
- modprobe -vq vmci || modprobe -v vmw_vmci
- eend $?
+ # 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
- # vmci or vmw_vmci was loaded by the previous modprobe
+ # 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
+
+ # vmci or vsock were already loaded by the previous modprobe,
# no need to do it here
- modprobe -av vmmon vsock vmblock vmnet
+ modprobe -av vmmon vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
@@ -35,10 +59,34 @@ stop() {
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
- modprobe -rv vsock vmmon vmblock vmnet
+ modprobe -rv vmmon vmblock vmnet
eend $?
- # quiet for vmci because it may not be there
- modprobe -rvq vmci || modprobe -rv vmw_vmci
- 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
}
diff --git a/app-emulation/vmware-player/files/vmware-12.1.rc b/app-emulation/vmware-player/files/vmware-12.1.rc
index 14ff124..38524b2 100644
--- a/app-emulation/vmware-player/files/vmware-12.1.rc
+++ b/app-emulation/vmware-player/files/vmware-12.1.rc
@@ -1,7 +1,7 @@
#!/sbin/openrc-run
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: $
+# $Id$
depend() {
need localmount
@@ -15,13 +15,37 @@ start() {
eend $?
ebegin Starting VMware services
- # quiet for vmci because it may not be there
- modprobe -vq vmci || modprobe -v vmw_vmci
- eend $?
+ # 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
- # vmci or vmw_vmci was loaded by the previous modprobe
+ # 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
+
+ # vmci or vsock were already loaded by the previous modprobe,
# no need to do it here
- modprobe -av vmmon vsock vmblock vmnet
+ modprobe -av vmmon vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
@@ -35,10 +59,34 @@ stop() {
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
- modprobe -rv vsock vmmon vmblock vmnet
+ modprobe -rv vmmon vmblock vmnet
eend $?
- # quiet for vmci because it may not be there
- modprobe -rvq vmci || modprobe -rv vmw_vmci
- 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
}
diff --git a/app-emulation/vmware-player/files/vmware-12.5.rc b/app-emulation/vmware-player/files/vmware-12.5.rc
index 14ff124..38524b2 100644
--- a/app-emulation/vmware-player/files/vmware-12.5.rc
+++ b/app-emulation/vmware-player/files/vmware-12.5.rc
@@ -1,7 +1,7 @@
#!/sbin/openrc-run
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: $
+# $Id$
depend() {
need localmount
@@ -15,13 +15,37 @@ start() {
eend $?
ebegin Starting VMware services
- # quiet for vmci because it may not be there
- modprobe -vq vmci || modprobe -v vmw_vmci
- eend $?
+ # 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
- # vmci or vmw_vmci was loaded by the previous modprobe
+ # 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
+
+ # vmci or vsock were already loaded by the previous modprobe,
# no need to do it here
- modprobe -av vmmon vsock vmblock vmnet
+ modprobe -av vmmon vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
@@ -35,10 +59,34 @@ stop() {
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
- modprobe -rv vsock vmmon vmblock vmnet
+ modprobe -rv vmmon vmblock vmnet
eend $?
- # quiet for vmci because it may not be there
- modprobe -rvq vmci || modprobe -rv vmw_vmci
- 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
}
diff --git a/app-emulation/vmware-workstation/files/vmware-11.0.rc b/app-emulation/vmware-workstation/files/vmware-11.0.rc
index 3437207..38524b2 100644
--- a/app-emulation/vmware-workstation/files/vmware-11.0.rc
+++ b/app-emulation/vmware-workstation/files/vmware-11.0.rc
@@ -15,13 +15,37 @@ start() {
eend $?
ebegin Starting VMware services
- # quiet for vmci because it may not be there
- modprobe -vq vmci || modprobe -v vmw_vmci
- eend $?
+ # 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
- # vmci or vmw_vmci was loaded by the previous modprobe
+ # 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
+
+ # vmci or vsock were already loaded by the previous modprobe,
# no need to do it here
- modprobe -av vmmon vsock vmblock vmnet
+ modprobe -av vmmon vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
@@ -35,10 +59,34 @@ stop() {
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
- modprobe -rv vsock vmmon vmblock vmnet
+ modprobe -rv vmmon vmblock vmnet
eend $?
- # quiet for vmci because it may not be there
- modprobe -rvq vmci || modprobe -rv vmw_vmci
- 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
}
diff --git a/app-emulation/vmware-workstation/files/vmware-11.1.rc b/app-emulation/vmware-workstation/files/vmware-11.1.rc
index 3437207..38524b2 100644
--- a/app-emulation/vmware-workstation/files/vmware-11.1.rc
+++ b/app-emulation/vmware-workstation/files/vmware-11.1.rc
@@ -15,13 +15,37 @@ start() {
eend $?
ebegin Starting VMware services
- # quiet for vmci because it may not be there
- modprobe -vq vmci || modprobe -v vmw_vmci
- eend $?
+ # 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
- # vmci or vmw_vmci was loaded by the previous modprobe
+ # 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
+
+ # vmci or vsock were already loaded by the previous modprobe,
# no need to do it here
- modprobe -av vmmon vsock vmblock vmnet
+ modprobe -av vmmon vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
@@ -35,10 +59,34 @@ stop() {
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
- modprobe -rv vsock vmmon vmblock vmnet
+ modprobe -rv vmmon vmblock vmnet
eend $?
- # quiet for vmci because it may not be there
- modprobe -rvq vmci || modprobe -rv vmw_vmci
- 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
}
diff --git a/app-emulation/vmware-workstation/files/vmware-11.2.rc b/app-emulation/vmware-workstation/files/vmware-11.2.rc
index 3437207..38524b2 100644
--- a/app-emulation/vmware-workstation/files/vmware-11.2.rc
+++ b/app-emulation/vmware-workstation/files/vmware-11.2.rc
@@ -15,13 +15,37 @@ start() {
eend $?
ebegin Starting VMware services
- # quiet for vmci because it may not be there
- modprobe -vq vmci || modprobe -v vmw_vmci
- eend $?
+ # 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
- # vmci or vmw_vmci was loaded by the previous modprobe
+ # 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
+
+ # vmci or vsock were already loaded by the previous modprobe,
# no need to do it here
- modprobe -av vmmon vsock vmblock vmnet
+ modprobe -av vmmon vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
@@ -35,10 +59,34 @@ stop() {
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
- modprobe -rv vsock vmmon vmblock vmnet
+ modprobe -rv vmmon vmblock vmnet
eend $?
- # quiet for vmci because it may not be there
- modprobe -rvq vmci || modprobe -rv vmw_vmci
- 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
}
diff --git a/app-emulation/vmware-workstation/files/vmware-12.1.rc b/app-emulation/vmware-workstation/files/vmware-12.1.rc
index 3437207..38524b2 100644
--- a/app-emulation/vmware-workstation/files/vmware-12.1.rc
+++ b/app-emulation/vmware-workstation/files/vmware-12.1.rc
@@ -15,13 +15,37 @@ start() {
eend $?
ebegin Starting VMware services
- # quiet for vmci because it may not be there
- modprobe -vq vmci || modprobe -v vmw_vmci
- eend $?
+ # 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
- # vmci or vmw_vmci was loaded by the previous modprobe
+ # 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
+
+ # vmci or vsock were already loaded by the previous modprobe,
# no need to do it here
- modprobe -av vmmon vsock vmblock vmnet
+ modprobe -av vmmon vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
@@ -35,10 +59,34 @@ stop() {
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
- modprobe -rv vsock vmmon vmblock vmnet
+ modprobe -rv vmmon vmblock vmnet
eend $?
- # quiet for vmci because it may not be there
- modprobe -rvq vmci || modprobe -rv vmw_vmci
- 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
}
diff --git a/app-emulation/vmware-workstation/files/vmware-12.5.rc b/app-emulation/vmware-workstation/files/vmware-12.5.rc
index 3437207..38524b2 100644
--- a/app-emulation/vmware-workstation/files/vmware-12.5.rc
+++ b/app-emulation/vmware-workstation/files/vmware-12.5.rc
@@ -15,13 +15,37 @@ start() {
eend $?
ebegin Starting VMware services
- # quiet for vmci because it may not be there
- modprobe -vq vmci || modprobe -v vmw_vmci
- eend $?
+ # 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
- # vmci or vmw_vmci was loaded by the previous modprobe
+ # 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
+
+ # vmci or vsock were already loaded by the previous modprobe,
# no need to do it here
- modprobe -av vmmon vsock vmblock vmnet
+ modprobe -av vmmon vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
@@ -35,10 +59,34 @@ stop() {
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
- modprobe -rv vsock vmmon vmblock vmnet
+ modprobe -rv vmmon vmblock vmnet
eend $?
- # quiet for vmci because it may not be there
- modprobe -rvq vmci || modprobe -rv vmw_vmci
- 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
}
diff --git a/app-emulation/vmware-workstation/files/vmware-9.0.rc b/app-emulation/vmware-workstation/files/vmware-9.0.rc
index b568831..38524b2 100644
--- a/app-emulation/vmware-workstation/files/vmware-9.0.rc
+++ b/app-emulation/vmware-workstation/files/vmware-9.0.rc
@@ -14,9 +14,38 @@ start() {
@@BINDIR@@/vmware-usbarbitrator
eend $?
ebegin Starting VMware services
- modprobe -v vmci || modprobe -v vmw_vmci
- eend $?
- modprobe -av vmmon vmci vsock vmblock vmnet
+
+ # 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
+
+ # vmci or vsock were already loaded by the previous modprobe,
+ # no need to do it here
+ modprobe -av vmmon vmblock vmnet
eend $?
@@BINDIR@@/vmware-networks --start
eend $?
@@ -30,8 +59,34 @@ stop() {
@@BINDIR@@/vmware-networks --stop
eend $?
ebegin Stopping VMware services
- modprobe -rv vsock vmmon vmblock vmnet
- eend $?
- modprobe -rv vmci || modprobe -rv vmw_vmci
+ modprobe -rv vmmon vmblock 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
}