« Boxes and Arrows Favorite books | Home | Compact Fluorescent bulbs - hey Mikie, he likes it! »

January 21, 2003

Freebsd 5.0 under VMware: no go (updated)

FreeBSD 5.0 was released over the weekend. I've been playing with FreeBSD lately, so on my MLK day off I decided to try to install at at home under VMware 3.2 Workstation under Windows 2000.

Many hours later, I was only able to get a minimal install up, and I wasn't able to download anything else beyond that - no ports, no source. This is one of those cases where it's not clear if it's VMware's fault or Freebsd's fault. The symptom is that when I get part way through anything more than the basic install, the whole install starts slowing down. What started out reading anywhere from 300-600kBytes/sec from the CD ends up down in the < 10kB/second range: it just ... keeps .. slowing .. down.

I don't know the cause, but I have an interesting theory. Just after the first level FreeBSD loader boots up under VMware, it spits out a message: "acpi: bad RSDP checksum". Then, when the system boots, a large number of system processes have "31Dec69" as their start time. (Processes started later have the current date/time.) My hunch: the boot loader can't get the time from the VMware BIOS. FreeBSD sets the system time to 0, which under Unix is defined as midnight, December 31, 1969. (This is also known as the epoch.) Later, the time gets correctly set to some 33 years later. Some of the system processes go a little nuts trying to cope with a time difference of 33 years.

I don't know if it's true, but it sounds cute. In the meantime, I guess I'll have to wait until someone sorts it out.

If you want more details, I responded to a thread on the USENET group vmware.guest.linux with a few more details.

Update 1/25/02

Not surprisingly, I'm apparently off-track on why 5.0 slows down under VMware.  A thread on a bsd mailing list suggests that the problem is with with I86 instruction CMPXCHG, which VMware apparently emulates very slowly.  There's apparently a kernel complication option for 5.0 that will avoid the use of this instruction.  The problem is that you'd either have start with a 4.7 system and do a full build world with a custom kernel, or build a boot floppy with a custom kernel and use that for the 5.0 install.  The latter sounds more reasonable, but also a pain.  The good news: if someone does it and makes a floppy image, every VMware user should be able to use it: all VMware virtual machines look the same.

Updated 2/20/04:

I finally got around to trying this again. This time, I tried the beta release of VMware workstation 4.5 and tried to install FreeBSD 5.2.1. This time, it worked: no problems at all.

However, I tried installing 5.2.1 again using VMware 3.2, which I the version I own - and I still get the same problem as before: the install gets slower and slower, and finally stops. This could have been fixed in some release between 3.2 and 4.5, but 4.5 is what I tried.