Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

FYI, multiple vmwares is possible but is a hack

2 views
Skip to first unread message

Doug Ambrisko

unread,
Jun 12, 2001, 11:28:30 AM6/12/01
to
I have 2 vmwares running. I got the second one running by creating another
vmmon with a different name but same number of characters:
a21p% ls -l /compat/linux/dev/vmmo*
crw-r--r-- 1 root wheel 200, 1 Jun 11 11:00 /compat/linux/dev/vmmo2
crw-r--r-- 1 root wheel 200, 0 May 9 14:32 /compat/linux/dev/vmmon
a21p%
Then I ran this Perl script to patch the "vmmo2" in places of "vmmon":
#!/usr/local/bin/perl


open(VMWARE,"/usr/local/lib/vmware/bin/vmware") || die;
open(DUP,">/usr/local/lib/vmware/bin/vmware.dup") || die;

while(<VMWARE>){
s,/dev/vmmon,/dev/vmmo2,;
print DUP;
}
close VMWARE;
close DUP;
system("chmod 4555 /usr/local/lib/vmware/bin/vmware.dup");
Then I modified the vmware script to fire up:
/usr/local/lib/vmware/bin/vmware.dup

Now I have 2 vmwares running with networking etc. I define non-conflicting
devices and use netgraph to tie the various networks together.

Doug A.

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

Garance A Drosihn

unread,
Nov 18, 2001, 8:50:37 PM11/18/01
to
Way back on June 12/2001, Doug Ambrisko wrote:
>I have 2 vmwares running. I got the second one running by creating another
>vmmon with a different name but same number of characters:
> a21p% ls -l /compat/linux/dev/vmmo*
> crw-r--r-- 1 root wheel 200, 1 Jun 11 11:00
>/compat/linux/dev/vmmo2
> crw-r--r-- 1 root wheel 200, 0 May 9 14:32
>/compat/linux/dev/vmmon
> a21p%
>
>Then I ran this Perl script to patch the "vmmo2" in places of "vmmon":
> #!/usr/local/bin/perl
>
> open(VMWARE,"/usr/local/lib/vmware/bin/vmware") || die;
> open(DUP,">/usr/local/lib/vmware/bin/vmware.dup") || die;
>
> while(<VMWARE>){
> s,/dev/vmmon,/dev/vmmo2,;
> print DUP;
> }
> close VMWARE;
> close DUP;
> system("chmod 4555 /usr/local/lib/vmware/bin/vmware.dup");
>
>Then I modified the vmware script to fire up:
> /usr/local/lib/vmware/bin/vmware.dup
>
>Now I have 2 vmwares running with networking etc. I define non-conflicting
>devices and use netgraph to tie the various networks together.

is this with the "vmware" port, or the "vmware2" port?

I tried this with the latest vmware2 port, on the latest version of 4.4-stable,
and it didn't quite work. I created the /compat/linux/dev/vmmo2 device by:
cd /compat/linux/dev
mknod vmmo2 c 200 1 root:wheel

which seemed to do the right thing (I get the same output from 'ls' as
Doug listed). The second machine gets an error at startup though, with
vmware complaining:
"Could not open /dev/vmnet1. Device or resource busy.
Failed to configure ethernet0".

I expect that's because I don't know what do about the part where Doug
says "I define non-conflicting devices, and use netgraph...". Do I
need to duplicate /usr/local/etc/rc.d/vmware.sh , and have it create
a vmnet2 device? If so, how do I get the second-vmnet device? I tried
duplicating the startup-script, and changing vmnet1 to vmnet2, but that
didn't work because 'ifconfig' doesn't know about a vmnet2 interface.

--
Garance Alistair Drosehn = g...@eclipse.acs.rpi.edu
Senior Systems Programmer or g...@freebsd.org
Rensselaer Polytechnic Institute or dro...@rpi.edu

Doug Ambrisko

unread,
Nov 19, 2001, 12:23:23 AM11/19/01
to
Garance A Drosihn writes:
| Way back on June 12/2001, Doug Ambrisko wrote:
| >I have 2 vmwares running. I got the second one running by creating another
| >vmmon with a different name but same number of characters:

FYI a simplier method is to use the latest code at:
http://www.mindspring.com/~vsilyaev/vmware/files/FreeBSD-README.html
which just does the right thing and doesn't need my hack.

| which seemed to do the right thing (I get the same output from 'ls' as
| Doug listed). The second machine gets an error at startup though, with
| vmware complaining:
| "Could not open /dev/vmnet1. Device or resource busy.
| Failed to configure ethernet0".
|
| I expect that's because I don't know what do about the part where Doug
| says "I define non-conflicting devices, and use netgraph...". Do I
| need to duplicate /usr/local/etc/rc.d/vmware.sh , and have it create
| a vmnet2 device? If so, how do I get the second-vmnet device? I tried
| duplicating the startup-script, and changing vmnet1 to vmnet2, but that
| didn't work because 'ifconfig' doesn't know about a vmnet2 interface.

You need more vmnet devices look at such as:

a21p% ls -l /compat/linux/dev/vmnet*
crw-r--r-- 1 root wheel 149, 0x00010001 Nov 16 15:44 /compat/linux/dev/vmnet1
crw-r--r-- 1 root wheel 149, 0x0001000a Oct 23 13:15 /compat/linux/dev/vmnet10
crw-r--r-- 1 root wheel 149, 0x0001000b Oct 12 16:24 /compat/linux/dev/vmnet11
crw-r--r-- 1 root wheel 149, 0x00010002 Oct 13 21:28 /compat/linux/dev/vmnet2
crw-r--r-- 1 root wheel 149, 0x00010003 Oct 15 08:58 /compat/linux/dev/vmnet3
crw-r--r-- 1 root wheel 149, 0x00010004 Oct 23 13:15 /compat/linux/dev/vmnet4
crw-r--r-- 1 root wheel 149, 0x00010005 Oct 23 13:17 /compat/linux/dev/vmnet5
crw-r--r-- 1 root wheel 149, 0x00010006 Oct 15 08:58 /compat/linux/dev/vmnet6
crw-r--r-- 1 root wheel 149, 0x00010007 Oct 15 08:58 /compat/linux/dev/vmnet7
crw-r--r-- 1 root wheel 149, 0x00010008 Oct 12 17:08 /compat/linux/dev/vmnet8
crw-r--r-- 1 root wheel 149, 0x00010009 Oct 12 12:40 /compat/linux/dev/vmnet9
a21p%

If you want to bridge a bunch then you need modify the vmnware script to
do that. Define in vmware the Ethernet types as custom and then enter
/dev/vmnet<n> name.

Doug A.

Paul Schenkeveld

unread,
Nov 19, 2001, 7:22:07 AM11/19/01
to
Hi all,

As I had a great time with vmware2-2.0.3-799 and multiple
simultaneous sessions, I decided to see if I could retrofit those
patches into vmware2-2.0.4-1142.

Vladimirs vmmon-freebsd-0.99-0 and vmnet-freebsd-0.22 changes
do not apply cleanly to vmware2-2.0.4-1142 so I found out
which parts were needed to enable multiple simultanous sessions.

Attached are vmmon.diff, the part of vmmon-freebsd-0.99-0 that
enables multiple sessions (to be applied to vmware 2.0.4-1142
AFTER the vmmon-freebsd-0.98 patches) and tap.diff, a patch that
I picked up early this year which was needed for bridging with
multiple sessions.

BTW, I run 4.4-STABLE as of Sun Nov 18, 2001.

To use all this I did the following:

# cd /usr; cvs co ports/emulators/vmware2
# cd ports/emulators/vmware2
# make patch # to get the official patches
# for the latest vmware release
# patch -p1 < vmmon.diff # to get multi-session in vmmon
# make install
# cd /usr/src
# patch -p0 < tap.diff # to get multi-session bridged vmnet
# patch -p0 < linux_ioctl.diff # from Ian Dowse, earlier in this list
# make -j8 buildworld
# make installworld

Then reboot and see vmware 2.0.4-1142 work with multiple sessions.

Does anyone see something I overlooked?
If not and if everyone is happy with these patches, how can we get
this back into the port?

Regards,

Paul Schenkeveld, Consultant
PSconsult ICT Services BV
Houten, The Netherlands

vmmon.diff
tap.diff

Garance A Drosihn

unread,
Nov 20, 2001, 10:37:55 PM11/20/01
to
At 1:17 PM +0100 11/19/01, Paul Schenkeveld wrote:
>BTW, I run 4.4-STABLE as of Sun Nov 18, 2001.
>
>To use all this I did the following:
>
> # cd /usr; cvs co ports/emulators/vmware2
> # cd ports/emulators/vmware2
> # make patch # to get the official patches
> # for the latest vmware release
> # patch -p1 < vmmon.diff # to get multi-session in vmmon
> # make install
> # cd /usr/src
> # patch -p0 < tap.diff # to get multi-session bridged vmnet
> # patch -p0 < linux_ioctl.diff # from Ian Dowse, earlier in this list
> # make -j8 buildworld
> # make installworld
>
>Then reboot and see vmware 2.0.4-1142 work with multiple sessions.
>
>Does anyone see something I overlooked?

I tried following these directions. All the patches applied, everything
compiled OK, and I was able to reboot fine. But once I was up, vmware2
wasn't working quite right (not even a single copy of it, never mind two).
It seemed to be some kind of trouble with the guest OS trying to get to
the network.

I backed out the change to the vmware port, rebooted, and tried again.
Same problem.

I backed out the change to if_tap.c and if_tapvar.h, recompiled the
kernel (only needed to do a 'cd /usr/src ; make kernel', not a full
buildworld), rebooted, and at least a single vmware2 session was
working OK.

I realize this isn't much of a bug report, but either something is
missing or what's there isn't quite right. (note that I was working
on a 4.4-STABLE as of Nov 20th, but none of the relevant files seemed
to have changed between the 18th and the 20th). Was there anything
else I was supposed to do? Changes to the vmware2 startup script, or
making some alternate devices, or something?

My vmware2 port is also version 2.0.4-1142, so that should also match
what your patches were expecting. I am running on a dual-processor
Pentium-III machine, if that's significant.

>If not and if everyone is happy with these patches, how can we get
>this back into the port?

I would really love to see these patches debugged and installed. I am
trying to debug something between a Win2K system and samba running on a
Linux system, and it would be mighty convenient if I could have both
linux and Win2K virtual machines running!

--
Garance Alistair Drosehn = g...@eclipse.acs.rpi.edu
Senior Systems Programmer or g...@freebsd.org
Rensselaer Polytechnic Institute or dro...@rpi.edu

To Unsubscribe: send mail to majo...@FreeBSD.org

Vladimir N. Silyaev

unread,
Nov 21, 2001, 12:22:32 AM11/21/01
to
Hi Paul,

You defenetivly did a great job. However I've just some comments - the way
how mutiply instances has been achievev under 4.4 is a dirty hack
(it's using pid to locate proper instance), but it's the only one way
how it could be done [IMHO].

Under -current we have a better way to achieve same results and
all those tricks are redundant. BTW if_tap under -current already
supports several instances.

--
Regards,
Vladimir

Gerhard Schmidt

unread,
Nov 21, 2001, 2:08:20 AM11/21/01
to
On Tue, Nov 20, 2001 at 09:22:19PM -0800, Vladimir N. Silyaev wrote:
> Under -current we have a better way to achieve same results and
> all those tricks are redundant. BTW if_tap under -current already
> supports several instances.

Thats fine but the problem is, that -current will stay current until
fall 2002. I run vmware on my workstation. I use it to run software I need
for Work.

I cannot install -current on this Machine because it has to run every day
and I don´t have the time to fix the problems coming with -current.

As far as I can see there ist still no fix in RELENG_4 for the networking
problem of vmware. The Fix is there and working for me, but I have to
fix it every time I update my system.

Another problem is that vmware3 is out. Sooner or later vmware will stop
to sell Version 2 licences and the free update option will go away to.

Having -current delayed until Fall 2002 the is a need for vmware3 to
run on -stable until FreeBSD 5.0 is released.

So long

Estartu

----------------------------------------------------------------------------
Gerhard Schmidt | Nick : estartu IRC : Estartu |
Fischbachweg 3 | | PGP Public Key
86856 Hiltenfingen | EMail: est...@augusta.de | on request
Germany | |

0 new messages