Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Oct 2001 19:16:13 +0200
From:      Paul Schenkeveld <fb-emulation@psconsult.nl>
To:        emulation@FreeBSD.ORG
Subject:   VMware on diskless workstation
Message-ID:  <20011014191613.A16357@psconsult.nl>

next in thread | raw e-mail | index | archive | help
Hi all,

I encountered problems using VMware (release 2) on a diskless
workstation when using netgraph bridging.  It appeared that
while /usr/local/etc/rc.d/vmware.sh was setting up the bridge
the NFS mounted partitions became unreachable and the ssytem
was hanging.

The work-around I found was to build a static version of
ngctl and change /usr/local/etc/rc.d to copy this static
version and a file containing the ngctl subcommands to /tmp
which is a MFS filesystem and run the static ngctl from there.
I don't know if this is the preferred way to solve this problem
but for me it works so I thought I'd better share is with
possible other victims of this particular incompatibility between
VMware with bridged Ethernet interfaces and diskless workstations.

Ngctl was built by running 'cc -static *.c -o ngctl' in the ngctl
source directory.  Here's the diff to /usr/local/etc/rc.d/vmware.sh:

--- /usr/local/etc/rc.d/vmware.sh	Sat Mar 31 20:47:51 2001
+++ /diskless/proto/etc/rc.d/vmware.sh Thu Oct 11 23:05:29 2001
@@ -61,12 +61,16 @@
	    kldstat -v | grep ng_bridge >/dev/null || kldload ng_bridge.ko
            ngctl mkpeer vmnet1: bridge lower link0
	    ngctl name vmnet1:lower vmnet_bridge
-	    ngctl connect vmnet_bridge: ${bridge_interface}: link1 lower
-	    ngctl connect vmnet_bridge: ${bridge_interface}: link2 upper
-	    ngctl msg ${bridge_interface}: setautosrc 0
-	    ngctl msg ${bridge_interface}: setpromisc 1
-	    ngctl msg vmnet1: setautosrc 0
-	    ngctl msg vmnet1: setpromisc 1
+	    #ngctl connect vmnet_bridge: ${bridge_interface}: link1 lower
+	    #ngctl connect vmnet_bridge: ${bridge_interface}: link2 upper
+	    #ngctl msg ${bridge_interface}: setautosrc 0
+	    #ngctl msg ${bridge_interface}: setpromisc 1
+	    #ngctl msg vmnet1: setautosrc 0
+	    #ngctl msg vmnet1: setpromisc 1
+	    cp -p /sbin/ngctl.static /tmp/ngctl &&
+	    cp -p /etc/vmware.ngbridge /tmp &&
+	    /tmp/ngctl -f /tmp/vmware.ngbridge &&
+	    rm /tmp/ngctl /tmp/vmware.ngbridge
	fi
     fi
     echo -n " VMware" >&2

My /etc/vwmare.ngbridge (in the shared /usr tree) contains:

    connect vmnet_bridge: fxp0: link1 lower
    connect vmnet_bridge: fxp0: link2 upper
    msg fxp0: setautosrc 0
    msg fxp0: setpromisc 1
    msg vmnet1: setautosrc 0
    msg vmnet1: setpromisc 1

Hope this helps others in the same situation.

-- 
Paul Schenkeveld

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-emulation" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011014191613.A16357>