# vmware workstation 7.1.4 woes after upgrade - SOLVED

## Moriah

I recently upgraded my laptop to gentoo-sources 2.6.37-r4 and openrc and the new baselayout, and now vmware workstation is not working.

When I try to start a vm that runs win-xp/sp3 it complains with a popup that states:

```

Failed to open device "/dev/vmci": No such file or directory

Please make sure that the kernel module 'vmci' is loaded.

Module DevicePowerOn power on failed.

```

I then tried modprobe vmci, and lsmod showed it was loaded, but the complaint persists.

I suspect this might have to do with configuration file changes associated with openrc and the new base layout, but I do not know what to do about it, and I very much need my vmware to run windoze for those situations where I need compatibility with their proprietary applications and file formats to do income producing work.    :Evil or Very Mad: 

Anybody run into this and have a solution yet?    :Question: 

----------

## Anon-E-moose

have you re-emerged vmware? 

Or if it allows it, recompiled whatever modules it creates against the newer kernel?

----------

## Moriah

I am running the licensed and paid-for version of vmware downloaded as the "bundle" from www.vmware.com, not the gentoo ebuild of vmware.  And yes, I did re-install it using the vmware uninstaller followed by a fresh install, and same problem still persists.   :Sad: 

----------

## Anon-E-moose

if you (from a term) remove the vmci module and add it with "modprobe -v vmci" does it give you any messages?

----------

## Moriah

I detest modules for most thing; I build everything I can staticly into the kernel, so I am ignorant of some of the ways to manipulate modules.  How do I remove a module?  I know lsmod will show me what modules are loaded, and modprobe will load a module, but I have never had to remove one before.    :Embarassed: 

OK, took a wild guess and there is a rmmod, whose man page I then read, which pointed me to modprobe -r as the preferred way to remove a module, so I tried it, with this result:

```

gehazi ~ # modprobe -r vmci

FATAL: Module vmci is in use.

gehazi ~ # 

```

Since I have exited vmware, I can't imagine who is using it, so I will do an lsmod:

```

vsock                  41345  0 

vmci                   56581  1 vsock

```

So vsock is using it, but nobody is using vsock.  So I guess I have to remove vsock first.  OK, that did the trick.  Now I will attempt to manually load vmci again.  That worked.  Next I will attempt to load vsock.  That worked too.  Now for the biggie: I will try to load vmware workstation.  That produced the following output in the invoking xterm window:

```

rj@gehazi ~ $ vmware

Logging to /tmp/vmware-rj/setup-9495.log

filename:       /lib/modules/2.6.37-gentoo-r4/misc/vmmon.ko

supported:      external

license:        GPL v2

description:    VMware Virtual Machine Monitor.

author:         VMware, Inc.

depends:        

vermagic:       2.6.37-gentoo-r4 SMP preempt mod_unload 

filename:       /lib/modules/2.6.37-gentoo-r4/misc/vmnet.ko

supported:      external

license:        GPL v2

description:    VMware Virtual Networking Driver.

author:         VMware, Inc.

depends:        

vermagic:       2.6.37-gentoo-r4 SMP preempt mod_unload 

filename:       /lib/modules/2.6.37-gentoo-r4/misc/vmblock.ko

supported:      external

version:        1.1.2.0

license:        GPL v2

description:    VMware Blocking File System

author:         VMware, Inc.

srcversion:     400149ED038D22A87322D56

depends:        

vermagic:       2.6.37-gentoo-r4 SMP preempt mod_unload 

parm:           root:The directory the file system redirects to. (charp)

filename:       /lib/modules/2.6.37-gentoo-r4/misc/vmci.ko

supported:      external

license:        GPL v2

description:    VMware Virtual Machine Communication Interface (VMCI).

author:         VMware, Inc.

depends:        

vermagic:       2.6.37-gentoo-r4 SMP preempt mod_unload 

filename:       /lib/modules/2.6.37-gentoo-r4/misc/vsock.ko

supported:      external

license:        GPL v2

version:        1.0.0.0

description:    VMware Virtual Socket Family

author:         VMware, Inc.

srcversion:     C676DD590C289C975A34E88

depends:        vmci

vermagic:       2.6.37-gentoo-r4 SMP preempt mod_unload 

filename:       /lib/modules/2.6.37-gentoo-r4/misc/vmmon.ko

supported:      external

license:        GPL v2

description:    VMware Virtual Machine Monitor.

author:         VMware, Inc.

depends:        

vermagic:       2.6.37-gentoo-r4 SMP preempt mod_unload 

(vmware-unity-helper:9564): GLib-WARNING **: goption.c:2132: ignoring no-arg, optional-arg or filename flags (8) on option of type 0

(vmware-unity-helper:9564): GLib-WARNING **: goption.c:2132: ignoring no-arg, optional-arg or filename flags (8) on option of type 0

```

I'm not sure about those warnings, but I will try to go ahead and power-up a vm anyway.  The following additional messages were output to the invoking xterm when I did the power-up:

```

2011-05-27 15:28:13 11057 no printer configured or none available

2011-05-27 15:28:13 11060 no locale info available

2011-05-27 15:28:13 11059 adaptor daemon booted

2011-05-27 15:28:13 11061 connector "vmlocal" booted

thnuclnt: ../sysdeps/unix/sysv/linux/getpagesize.c:32: __getpagesize: Assertion `_rtld_global_ro._dl_pagesize != 0' failed.

2011-05-27 15:28:13 11059 adaptor daemon killed by signal 6

```

Also, there was a pop-up inside the vmare display that I could not copy with the mouse that said something about the ethernet device not being available.    :Confused: 

All this stuff "just worked" before the upgrade.    :Evil or Very Mad: 

----------

## Anon-E-moose

 *Moriah wrote:*   

> I detest modules for most thing; I build everything I can staticly into the kernel, so I am ignorant of some of the ways to manipulate modules.  How do I remove a module?  I know lsmod will show me what modules are loaded, and modprobe will load a module, but I have never had to remove one before.   

 

modprobe -r <module name> (probably "modprobe -r vmci" followed by "modprobe -v vmci") (I assume "vmci" is the module name)

Note: I don't run vmware, and know nothing about any problems (google didn't show anything specific)

but this is general debugging if I had the problem.

----------

## Moriah

I ws doing a rather extensive edit to my previous post when you posted; go take another look at it.

----------

## Anon-E-moose

 *Moriah wrote:*   

> I ws doing a rather extensive edit to my previous post when you posted; go take another look at it.

 

I looked.  :Smile: 

Not sure if your problem was caused by baselayout upgrade or the kernel upgrade.

I don't know that the baselayout would have much to do with this, since the modules seem to be being loaded.

Did you also upgrade glibc during all this?

Edit to add: I believe you said on another thread that you made a backup before all this.

I would be tempted to put it back, upgrade one element only (either kernel or openrc) and see if one or the other is causing the problem

----------

## Moriah

Well, no, the modules are *NOT* being loaded automatically; after a cold boot of the laptop, the first time I try to start vmware it complains about vmci not being there, so I did a modprobe vmci, then tried to continue.  I think it is more likely a baselayout thing, especially considering that I ununstalled and re-installed vmware as my first attempt to fix this, and it still did not work.  I am thinking that vmware's install procedure wants to modify a config file that is no longer being used, because vmware doesn't know about the new base layout.  Just my guess.    :Confused: 

----------

## Anon-E-moose

ah...

the old way you probably had them in /etc/modules.autoload.d/*

which under bl2 they go to /etc/conf.d/modules 

Did you do that?

Note: you may be right about it not knowing the difference between bl1 configs and bl2 configs

Edit to add: Does vmware put files in /etc/init.d to be executed?

----------

## Moriah

No, because I had no modules to autoload, I di not even have anything in etc/modules.autoload.d; therefore, I did not create any /etc/conf.d/modules, which of course, raises the question, "How did it work before?"

Well, I have a backup server, so it is possible to go backwards in time to the point before the upgrade.  We can look and see what changed.  Now if I only knew where to look...  

I just verified that etc/modules.autoload.d had nothing but comments in it before the upgrade, and no, after the upgrade, /etc/conf.d/modules likewise has nothing but comments in it.

Any other places I should look to compare the before and the after?

----------

## Moriah

Oh yes, /etc/init.d/vmware does exist, and looks like this:

```

#!/usr/bin/env bash

#

# Copyright 1998-2008 VMware, Inc.  All rights reserved.

#

# This script manages the services needed to run VMware software.

#

# Basic support for IRIX style chkconfig

###

# chkconfig: 235 19 08

# description: Manages the services needed to run VMware software

###

# Basic support for the Linux Standard Base Specification 1.3

# Used by insserv and other LSB compliant tools.

### BEGIN INIT INFO

# Provides: VMware

# Required-Start: $network $syslog

# Required-Stop:

# Default-Start: 2 3 5

# Default-Stop: 0 6

# Short-Description: Manages the services needed to run VMware software

# Description: Manages the services needed to run VMware software

### END INIT INFO

ETCDIR=/etc/vmware

VMIS_MAJOR_VERSION=1

. $ETCDIR/bootstrap

libdir="$LIBDIR"/vmware

. "$libdir"/scripts/util.sh

load_settings "$libdir" || exit 1

VNETLIB_LOG=/var/log/vnetlib

PRODUCT_NAME="VMware Player"

COMPONENT_NAME="vmware-player-app"

# This comment is a hack to prevent RedHat distributions from outputing

# "Starting <basename of this script>" when running this startup script.

# We just need to write the word daemon followed by a space

# This defines echo_success() and echo_failure() on RedHat

if [ -r "$INITSCRIPTDIR"'/functions' ]; then

   . "$INITSCRIPTDIR"'/functions'

fi

# This defines $rc_done and $rc_failed on S.u.S.E.

if [ -f /etc/rc.config ]; then

   # Don't include the entire file: there could be conflicts

   rc_done=`(. /etc/rc.config; echo "$rc_done")`

   rc_failed=`(. /etc/rc.config; echo "$rc_failed")`

else

   # Make sure the ESC byte is literal: Ash does not support echo -e

   rc_done='                                                           done'

   rc_failed='                                                        failed'

fi

subsys=vmware

driver=vmmon

vnet=vmnet

vmblock=vmblock

vmci=vmci

vsock=vsock

vmciNode=vmci

vsockNode=vsock

# SHM settings

shmmaxPath=/proc/sys/kernel/shmmax

shmmaxMinValue=268435456 # 256MB

#

# Are we running in a VM?

#

vmwareInVM() {

   "$BINDIR"/checkvm >/dev/null 2>&1

}

#

# Report a positive number if there are any VMs running.

# May not be the actual vmmon reference count.

#

vmmonUseCount() {

   local count

   # Beware of module dependencies here. An exact match is important

   count=`/sbin/lsmod | awk 'BEGIN {n = 0} {if ($1 == "'"$driver"'") n = $3} END {print n}'`

   # If CONFIG_MODULE_UNLOAD is not set in the kernel, lsmod prints '-' instead of the

   # reference count, so ask vmrun, or if we don't have vmrun, look for running vmx processes

   if [ x${count} = "x-" ]

   then

      type vmrun > /dev/null 2>&1

      if [ $? -eq 0 ]

      then

         count=`vmrun list | awk 'BEGIN {n=0} /^Total running VMs:/ {n = $4} END {print n}'`

      else

         count=`ps -afe | grep "/bin/vmware-vmx" | grep -v grep | wc -l`

      fi

   fi

   echo $count

}

# Is a given module loaded?

isLoaded() {

   local module="$1"

   /sbin/lsmod | awk 'BEGIN {n = "no";} {if ($1 == "'"$module"'") n = "yes";} END {print n;}'

}

# Build a Linux kernel integer version

kernelVersionInteger() {

   echo $(((($1 * 256) + $2) * 256 + $3))

}

# Get the running kernel integer version

getVersionInteger() {

   local version_uts

   local v1

   local v2

   local v3

   version_uts=`uname -r`

   # There is no double quote around the back-quoted expression on purpose

   # There is no double quote around $version_uts on purpose

   set -- `IFS='.'; echo $version_uts`

   v1="$1"

   v2="$2"

   v3="$3"

   # There is no double quote around the back-quoted expression on purpose

   # There is no double quote around $v3 on purpose

   set -- `IFS='-ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'; echo $v3`

   v3="$1"

   kernelVersionInteger "$v1" "$v2" "$v3"

}

vmwareLoadModule() {

   /sbin/insmod -s -f "/lib/modules/`uname -r`/misc/$1.ko" || exit 1

   return 0

}

vmwareUnloadModule() {

   if [ "`isLoaded "$1"`" = 'yes' ]; then

      /sbin/rmmod "$1" || exit 1

   fi

   return 0

}

# Start the virtual machine monitor kernel service

vmwareStartVmmon() {

   vmwareLoadModule $driver

}

# Stop the virtual machine monitor kernel service

vmwareStopVmmon() {

   vmwareUnloadModule $driver

}

# Start the virtual ethernet kernel service

vmwareStartVmnet() {

   vmwareLoadModule $vnet

   "$BINDIR"/vmware-networks --start >> $VNETLIB_LOG 2>&1

}

# Stop the virtual ethernet kernel service

vmwareStopVmnet() {

   "$BINDIR"/vmware-networks --stop >> $VNETLIB_LOG 2>&1

   vmwareUnloadModule $vnet

}

# Start the virtual machine USB Arbitrator service

vmwareStartUSBArbitrator() {

    # The executable checks for already running instances, so it

    #  is safe to just run it.

    "$BINDIR"/vmware-usbarbitrator

}

# Stop the virtual machine USB Arbitrator service

vmwareStopUSBArbitrator() {

    # Find the running process

    # grep instead of pgrep...  Turns out to be more reliable.  pgrep

    #  would return extranneous results.

    pid=`pgrep -f "$BINDIR"/vmware-usbarbitrator`

    # If it is not running

    if [ $? -eq 0 ]; then

        # PID was found, stop it.

        kill $pid

        return 0

    else

        # No process found.

        return 0

    fi

}

# Returns 0 if networking is enabled, otherwise 1

vmwareIsNetworkingEnabled() {

  [ "$vmdb_NETWORKING" = 'yes' ]

  return

}

# Start the virtual machine communication interface kernel service

vmwareStartVmci() {

   # only load vmci if it's not already loaded

   if [ "`isLoaded "$vmci"`" = 'no' ]; then

      vmwareLoadModule "$vmci"

   fi

   vmware_rm_stale_node "$vmciNode"

   if [ ! -e "/dev/$vmciNode" ]; then

      local minor=`cat /proc/misc | grep $vmciNode | awk '{print $1}'`

      mknod --mode=666 "/dev/$vmciNode" c 10 "$minor"

   else

      chmod 666 "/dev/$vmciNode"

   fi

   return 0

}

# Make sure the system has enough shared memory available to cover shmmaxMinValue.

# To handle overflow/wrapping, check that shmmax is greater than 1 since any overflow

# will make shmmax look negative.  At least until shmmax or shmmaxMinValue wrap around

# again.

vmwareCheckSharedMemory() {

   if [ -f "$shmmaxPath" ]; then

      shmmax=`cat $shmmaxPath`

      # Account for numbers that are too large that they wrap around and alias

      # to a smaller number or they are outright set to -1.  If "1 < XXXX" fails

      # then the XXX value is # out of bounds.  The only acceptable combo is that

      # both values satisfy that condition, else report that the max value the

      # system supports may not satisfy this programs requirements.

      if  ((  $shmmax < 1 )) || (( $shmmaxMinValue < 1 )) \

       || (( $shmmax < $shmmaxMinValue )) ; then

         echo "$shmmaxMinValue" > "$shmmaxPath"

         echo ""

         echo "Setting the max shared memory the system will allow to $shmmaxMinValue."

         echo ""

      fi

   fi

   return 0

}

# Stop the virtual machine communication interface kernel service

vmwareStopVmci() {

   # only unload vmci if it's already loaded

   if [ "`isLoaded "$vmci"`" = 'yes' ]; then

     vmwareUnloadModule "$vmci"

   fi

   rm -f "/dev/$vmciNode"

}

isVmciNeeded() {

   if [ "$vmdb_VMCI_CONFED" = 'yes' ]; then

      echo yes

   else

      echo no

   fi

}

# starts after vmci is loaded

vmwareStartVsock() {

   # only load vsock if it's not already loaded

   if [ "`isLoaded "$vsock"`" = 'no' ]; then

      vmwareLoadModule "$vsock"

   fi

   vmware_rm_stale_node "$vsockNode"

   # Give udev 5 seconds to create our node

   vmware_delay_for_node "/dev/$vsockNode" 5

   if [ ! -e "/dev/$vsockNode" ]; then

      local minor=`cat /proc/misc | grep $vsockNode | awk '{print $1}'`

      mknod --mode=666 "/dev/$vsockNode" c 10 "$minor"

   else

      chmod 666 "/dev/$vsockNode"

   fi

   return 0

}

# unloads before vmci

vmwareStopVsock() {

   # only unload vsock if it's already loaded

   if [ "`isLoaded "$vsock"`" = 'yes' ]; then

     vmwareUnloadModule "$vsock"

   fi

   rm -f /dev/vsock

}

isVsockNeeded() {

   if [ "$vmdb_VSOCK_CONFED" = 'yes' ]; then

      echo yes

   else

      echo no

   fi

}

vmwareService() {

   case "$1" in

      start)

         if vmwareInVM; then

            # Refuse to start services in a VM: they are useless

            exit 1

         fi

         echo 'Starting VMware services:'

         exitcode='0'

         vmware_exec 'VMware USB Arbitrator' vmwareStartUSBArbitrator

         exitcode=$(($exitcode + $?))

         vmware_exec 'Virtual machine monitor' vmwareStartVmmon

         exitcode=$(($exitcode + $?))

         if [ "`isVmciNeeded`" = 'yes' ]; then

            vmware_exec 'Virtual machine communication interface' vmwareStartVmci

            exitcode=$(($exitcode + $?))

         fi

         # vsock needs vmci started first

         if [ "`isVsockNeeded`" = 'yes' ]; then

            vmware_exec 'VM communication interface socket family' vmwareStartVsock

            # a vsock failure to load shouldn't cause the init to fail completely.

         fi

         if [ "`is_vmblock_needed`" = 'yes' ] ; then

            vmware_exec 'Blocking file system' vmware_start_vmblock

            exitcode=$(($exitcode + $?))

         fi

         # Try to load parport_pc.

         /sbin/modprobe parport_pc >/dev/null 2>&1

         if vmwareIsNetworkingEnabled; then

            vmware_exec 'Virtual ethernet' vmwareStartVmnet

            exitcode=$(($exitcode + $?))

         fi

         if [ "$exitcode" -gt 0 ]; then

            exit 1

         fi

         [ -d /var/lock/subsys ] || mkdir -p /var/lock/subsys

         touch /var/lock/subsys/"$subsys"

         vmware_exec "Shared Memory Available"  vmwareCheckSharedMemory

      ;;

      stop)

         echo 'Stopping VMware services:'

         exitcode='0'

         # If the 'K' version of this script is running, the system is

         # stoping services not because the user is running vmware-config.pl

         # or running the initscript directly but because the user wants to

         # shutdown.  Suspend all VMs.

         if [ "`echo $BASENAME | sed -ne '/^K[0-9].vmware/p'`" ] ; then

            if [ -x "$BINDIR"/vmrun ] ; then

               for i in `pidof vmware-vmx` ; do

                  "$BINDIR"/vmrun suspend `ps -p $i -f | \

                       sed -ne '/vmware/s/.* \(\/.*\.vmx\)/\1/p'` 2> /dev/null

               done

            fi

         fi

         vmware_exec 'VMware USB Arbitrator' vmwareStopUSBArbitrator

         exitcode=$(($exitcode + $?))

         if [ "`vmmonUseCount`" -gt 0 ]; then

            echo 'At least one instance of '"$PRODUCT_NAME"' is still running.' 1>&2

            echo 'Please stop all running instances of '"$PRODUCT_NAME"' first.' 1>&2

            echo " " >&2

            # Since we stopped authdlauncer to prevent new connections before disabling

            # any vmxs, need to restart it here to restore the environment back to

            # what it was before this init script ran.

            vmware_exec 'VMware Authentication Daemon' vmware_start_authdlauncher

            # The unconfigurator handle this exit code differently

            exit 2

         fi

         # vmci is used by vsock so the module can't unload until vsock does.

         if [ "`isVsockNeeded`" = 'yes' ]; then

            vmware_exec 'VM communication interface socket family' vmwareStopVsock

            exitcode=$(($exitcode + $?))

         fi

         if [ "`isVmciNeeded`" = 'yes' ]; then

            vmware_exec 'Virtual machine communication interface' vmwareStopVmci

            exitcode=$(($exitcode + $?))

         fi

         vmware_exec 'Virtual machine monitor' vmwareStopVmmon

         exitcode=$(($exitcode + $?))

         if [ "`is_vmblock_needed`" = 'yes' ] ; then

            vmware_exec 'Blocking file system' vmware_stop_vmblock

            exitcode=$(($exitcode + $?))

         fi

         # Try to unload parport_pc. Failure is allowed as it does not

         # exist on kernels 2.0, and some other process could be using

         # it.

         /sbin/modprobe -r parport_pc >/dev/null 2>&1

         if vmwareIsNetworkingEnabled; then

            vmwareStopVmnet

         fi

         # The vmware and vmware-tray processes don't terminate automatically

         # when the other services are shutdown.  They persist after calling

         # 'init.d/vmware stop' and will happily keep going through an init

         # start command, continuing to minimally function, blissfully ignorant.

         # Time for a buzzkill.

         for i in `pidof vmware vmware-tray` ; do

            vmware_synchrone_kill $i "INT"

         done

         if [ "$exitcode" -gt 0 ]; then

            exit 1

         fi

         rm -f /var/lock/subsys/"$subsys"

      ;;

      status)

         if [ "`vmmonUseCount`" -gt 0 ]; then

            echo 'At least one instance of '"$PRODUCT_NAME"' is still running.'

            echo

            if [ "$2" = "vmcount" ]; then

               exit 2

            fi

         fi

         if [ "$2" = "vmcount" ]; then

               exit 0

         fi

         exitcode='0'

         echo -n "Module $driver "

         [ "`isLoaded "$driver"`" = 'yes' ] && echo loaded || echo "not loaded"

         if vmwareIsNetworkingEnabled; then

            echo -n "Module $vnet "

            [ "`isLoaded "$vnet"`" = 'yes' ] && echo loaded || echo "not loaded"

         fi

         if [ "$exitcode" -gt 0 ]; then

            exit 1

         fi

      ;;

      restart)

         "$SCRIPTNAME" stop && "$SCRIPTNAME" start

      ;;

      # Called to make sure script is in a runnable state.

      validate)

         exit 100

      ;;

      stoppable)

         [ "`vmmonUseCount`" -lt 1 ]

         exit

      ;;

      *)

         echo "Usage: "$BASENAME" {start|stop|status|restart|stoppable}"

         exit 1

   esac

}

SCRIPTNAME="$0"

BASENAME=`basename "$SCRIPTNAME"`

# Check permissions

if [ "`id -ur`" != '0' ]; then

   echo 'Error: you must be root.'

   echo

   exit 1

fi

vmwareService "$1"

exit 0

```

Wow!  I didn't realize that ws so long until I pasted it.    :Surprised: 

----------

## Anon-E-moose

is there any difference in  /etc/modprobe.d/* files from before and after 

and does vmware put any files in /etc/init.d

Did you upgrade glibc during all the other upgrades?

As far as how it works it vmware probably loaded those modules itself when it saw that they weren't loaded,

similar to what X does if the video module isn't loaded.

Edit to add: looked at your last post, that script looks like a bl1 type script,

If you run "/etc/init.d/vmware start" what does it do?

----------

## Moriah

I just posted /etc/init.d/vmware in my previous post.

/etc/modprobe.d/vmware-fuse.conf looks like this in both the before and the after:

```

# Added by VMware.

alias char-major-10-229 fuse

```

Yes, glibc was part of the upgrade, as was a kernel upgrade from 2.6.31-gentoo-r6 to 2.6.37-gentoo-r4.

----------

## Anon-E-moose

 *Moriah wrote:*   

> I just posted /etc/init.d/vmware in my previous post.

 

I saw that, but does it work if you run it manually

ie "/etc/init.d/vmware start" then start the vmware session

----------

## Moriah

I take it you wanted me to exit the currently running instance of vmware before running /etc/init.d/vmware start.    :Wink: 

So I decided to be cautious rather than brave, and did a status first.  Here is what I got:

```

gehazi ~ # /etc/init.d/vmware status

/etc/init.d/vmware: line 88: /sbin/lsmod: No such file or directory

Module vmmon /etc/init.d/vmware: line 108: /sbin/lsmod: No such file or directory

not loaded

Module vmnet /etc/init.d/vmware: line 108: /sbin/lsmod: No such file or directory

not loaded

gehazi ~ # 

```

So it seems reasonable to look at those unhappy lines and see them in context:

Looking at the first offending line reveals that there is no /sbin/lsmod; lsmod is in /bin instead!  Since all the complaints are about /sbin/lsmod, I am making a symlink in /sbin to point to /bin/lsmod as a hacky/crocky fix.    :Twisted Evil: 

Now look what happens!

```

gehazi ~ # cd /sbin

gehazi sbin # ln -s /bin/lsmod lsmod

gehazi sbin # /etc/init.d/vmware status

Module vmmon loaded

Module vmnet loaded

gehazi sbin # 

```

 :Very Happy: 

However:

```

gehazi sbin # /etc/init.d/vmware start 

Starting VMware services:

   VMware USB Arbitrator                                               done

   Virtual machine monitor                                            failed

   Virtual machine communication interface                             done

   VM communication interface socket family                            done

   Blocking file system                                                done

   Virtual ethernet                                                   failed

gehazi sbin # 

```

All is still not well, but it is getting better.    :Confused: 

So I shut it down and tried again:

```

gehazi sbin # /etc/init.d/vmware stop 

Stopping VMware services:

   VMware USB Arbitrator                                               done

   VM communication interface socket family                            done

   Virtual machine communication interface                             done

   Virtual machine monitor                                             done

   Blocking file system                                               failed

gehazi sbin # /etc/init.d/vmware status

Module vmmon not loaded

Module vmnet not loaded

gehazi sbin # /etc/init.d/vmware start

Starting VMware services:

   VMware USB Arbitrator                                               done

   Virtual machine monitor                                             done

   Virtual machine communication interface                             done

   VM communication interface socket family                            done

   Blocking file system                                                done

   Virtual ethernet                                                    done

   Shared Memory Available                                             done

gehazi sbin # /etc/init.d/vmware status

Module vmmon loaded

Module vmnet loaded

gehazi sbin # 

```

Now that looks better.  Lets try to actually start the vmware workstation GUI interface.

YEE HA !!!  

Came up and both the network and the filesystem are working.  Success at last!    :Very Happy: 

Now I need to see if rc-update needs to be run to make all this happen at system start-up.  No:

```

gehazi sbin # rc-update show | grep vm

                  lvm |                          boot        

               vmware |           default                    

gehazi sbin # 

```

So it should auto-start fine now that it can find lsmod.    :Very Happy: 

----------

## Anon-E-moose

woohoo

I looked at a backup pre-bl2 and /sbin/lsmod is linked to /bin/lsmod

----------

## Moriah

Case closed!  Thanks for your help.    :Very Happy: 

----------

