VMware Cloud Community
kenner
Contributor
Contributor

VMware tools for FreeBSD

According to what I've read, they exist. But when I try to do an install for them via VIC, I get a message saying "A general system error occurred: internal error". But when I look at hostd.log, what I see is

Question info: Sorry, the VMware Tools package is not available for the guest operating system "Other". Please check Virtual Machine Settings again to make sure that the guest operating system you are running is on the list.

So two questions:

(1) How do I get it to connect my VM to the ISO with the FreeBSD vmware tools?

(2) Why isn't it giving the proper error message?

Tags (3)
Reply
0 Kudos
12 Replies
jlanders
VMware Employee
VMware Employee

Kenner,

This happens because, unfortunately, FreeBSD isn't officially supported on ESX. If you examine your FreeBSD guest config (i.e. *.vmx) file, you'll see that the "guestOS" config parameter is set to "other" rather than "freebsd". To use VC to connect the FreeBSD tools ISO image to your guest, you'll need to modify this config parameter by manually editing the guest config file. First remove the FreeBSD guest from the VC inventory, then log into the ESX server's Service Console and make the change to the guestOS parameter, then add the guest back to VC's inventory.

Alternatively, the FreeBSD guest tools are located in the Service Console's /usr/lib/vmware/isoimages/freebsd.iso directory on your ESX server. Copy this image directly to your FreeBSD guest. Next, use 'mdconfig -a -t vnode -f freebsd.iso -u 0' inside your FreeBSD guest to configure the image as memory disk (assuming you're using a recent version of FreeBSD). Finally, mount the memory disk inside your FreeBSD guest using 'mount -t cd9660 /dev/md0 /cdrom'.

Some customers using FreeBSD on ESX prefer the e1000 virtual NIC rather than vlance or vmxnet. To use e1000, either add or modify the 'ethernet0.virtualDev' guest config parameter to "e1000". If you do this, you'll probably also need to modify the /etc/rc.conf networking configuration inside your FreeBSD guest to use "ifconfig_em0" instead of either "ifconfig_lnc0" or "ifconfig_vxn0" that you probably have now.

Sorry this is so difficult. If you want to tell us more about which version of FreeBSD you are running, and/or want to post your guest configuration file, we can give you more specific answers.

Joe

Reply
0 Kudos
virtualdud3
Expert
Expert

Removed by poster

<<VMware Employee posted solution while I was typing mine; too slow on the draw!!! His solution is more detailed than mine>>

############### Under no circumstances are you to award me any points. Thanks!!!
Reply
0 Kudos
kenner
Contributor
Contributor

I find it somewhat odd that there's an ISO image on the service console for FreeBSD, but that there's no way to automatically have that attached to a CDROM drive. But now that I know where the file is, isn't it easier just for me to copy that ISO file to someplace on a vmfs on the service console and connect it to a CD that way? And this still doesn't address the issue of why the error message is not propagated properly to the client. And, yes, I too found that e1000 works better than either vmxnet or vlance.

Reply
0 Kudos
kenner
Contributor
Contributor

I saw your original response. That's exactly what I tried, but there's no "vmimages"! Is that a 3.5 change?

Reply
0 Kudos
oreeh
Immortal
Immortal

That's probably because FreeBSD is not officially supported.

I usually copy the tools ISO to the VMFS and attach the ISO manually. If you use an older version (3.0.x) of ESX you could use the tools from VMware Server 1.0.4 as well since these are newer.

Or you can use the Open Tools - though I'm not sure what the current status is regarding official support from VMware.

Reply
0 Kudos
virtualdud3
Expert
Expert

I have a /vmimages directory on my ESX 3.5 servers; I also see that jlanders instructed you to use /usr/lib/vmware/vmimages.

On my ESX servers, the /usr/lib/vmware/vmimages is a link to /vmimages.

When you right-click the VM->Edit Settings->CD/DVD...and select "Datastore ISO", and "Browse...", do you have a "vmimages" folder? On my servers, this folder is visible and I am to connect the VM's CD/DVD drive to "freebsd.iso". Connecting "freebsd.iso" to a CentOS5 VM's CD/DVD, I am able (through the VM) to mount the CD and browse to "vmware-freebsd-tools.tar.gz", and copy the file to the Desktop of the CentOS VM. I don't have any FreeBSD VMs currently running, so I wasn't able to verify the installation process (which is why I removed my previous post until I can confirm that installing VMware Tools in this manner is a viable option; the fact that jlanders posted while I was typing my original response was actually just a coincidence).

Of course, my CentOS VM is a "supported" VM, therefore I am able to connect to the freebsd.iso through the VC. As others said, probably the easiest thing to do is just to copy the freebsd.iso to a VMFS datastore and then try manually connecting the FreeBSD VM.

I'll be installing a FreeBSD VM shortly...



###############

If you found this information useful, please consider awarding points for "Correct" or "Helpful". Thanks!!!

############### Under no circumstances are you to award me any points. Thanks!!!
Reply
0 Kudos
dreamgear
Contributor
Contributor

Why do the tools that came with ESX Server 3.0.2-update 1 fail with "Guest memory manager:failed", and the tools that came with server 1.0.4 work ?

Reply
0 Kudos
jlanders
VMware Employee
VMware Employee

dreamgear,

The short answer is that like FreeBSD, VMware has multiple active code branches for its software. Server 1.0.4 had the latest FreeBSD 6.x tools code, so it works the best.

Thanks,

Joe

Reply
0 Kudos
dreamgear
Contributor
Contributor

Thanks! That explains it.

Reply
0 Kudos
mcretan
Contributor
Contributor

Thanks for the tip about setting the guest type manually in the vmx to freebsd. On ESX 3.5 with Freebsd 6.2, I was able to install the tools using the VC installer, and the tools status now shows as OK.

I have several lingering issues that I was hoping you could help me with - and yes I know that freebsd is not supported Smiley Wink

1) When using freebsd as guest type, it comes up with verification errors during vmotion, saying it is not supported. Changing the guest type to "Other Linux (32)" stops this happening, but is this going to cause other problems?

2) the vlance (flexible) network connector is coming up with "lnc0: Missed packet -- no receive buffer" errors on the console. This issue seems to have been around for a while - is the vlance adapter still flakey? Is there a workaround?

3) changing the network adapter to e1000 stops these errors, but comes up as an unsupported network device during the verification for vmotion.

Thanks again,

Mike Cretan

Reply
0 Kudos
jlanders
VMware Employee
VMware Employee

Mike,

Changing the guest type shouldn't have any measurable difference. Generally, the guest OS type is helpful for working around virtualization issues with a specific OS. But, I can't see much in the code that cares about the FreeBSD guest OS type. Maybe others can chime in with their experiences.

The issue with vlance (lnc) on FreeBSD is well known. Fortunately, the newer AMD PCnet (le) driver works okay. e1000 (em) is better. If you are annoyed with the VMotion issue, the PCnet (le) driver is a possible alternative. This driver was ported from NetBSD to FreeBSD 6.2 and beyond. You will need to make a custom FreeBSD kernel to use the le driver and the FreeBSD handbook has details on how to do this.

Thanks,

Joe

Reply
0 Kudos
mcretan
Contributor
Contributor

Hi Joe,

Thanks for that - I have now rebuilt the kernel with the le driver (just a matter of adding "driver le" to the the kernel config file, and disabling the lnc driver as you suggested, and rebuilding - very easily followed in the freebsd manual). Everything seems to be sweet this morning, with vmotion and DRS working hapily with this machine. The previous e1000 driver certainly appeared to be interfering with the correct operation of DRS.

Thanks for you help.

Mike

Reply
0 Kudos