FIX: VMware VMW_HAVE_EPOLL error message with current distributions

Tags: ,

If you’ve tried installing VMware on a recent Linux distribution (such as Ubuntu Edgy Eft), you’ve probably seen the following:

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmmon-only'
make -C /lib/modules/2.6.17-5-686/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.17-5-686'
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
In file included from /tmp/vmware-config0/vmmon-only/linux/driver.h:20,
                 from /tmp/vmware-config0/vmmon-only/linux/driver.c:49:
/tmp/vmware-config0/vmmon-only/./include/compat_wait.h:37:5: warning: "VMW_HAVE_EPOLL" is not defined
/tmp/vmware-config0/vmmon-only/./include/compat_wait.h:43:5: warning: "VMW_HAVE_EPOLL" is not defined
In file included from /tmp/vmware-config0/vmmon-only/linux/driver.h:20,
                 from /tmp/vmware-config0/vmmon-only/linux/driver.c:49:
/tmp/vmware-config0/vmmon-only/./include/compat_wait.h:60: error: conflicting types for â
include/linux/poll.h:62: error: previous declaration of â was here
/tmp/vmware-config0/vmmon-only/linux/driver.c:145: warning: initialization from incompatible pointer type
/tmp/vmware-config0/vmmon-only/linux/driver.c:149: warning: initialization from incompatible pointer type
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.17-5-686'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config0/vmmon-only'
Unable to build the vmmon module.

To fix it, follow this procedure (or grab the script I wrote to make it easier, here)..

Uncompress vmnet.tar and edit vmnet-only/Makefile.kernel as follows:

vm_check_build = $(shell if $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) \
        $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default \
        -DKBUILD_BASENAME=\"$(DRIVER)\" \ # add this line
        -Werror -S -o /dev/null -xc $(1) \
        > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)

Do the same for vmmon.tar in vmmon-only. mv the existing tar files out of the way and tar these two directories back up and re-run vmware-install.pl from the top-level directory.

It should complete cleanly and without any errors.

If you’re wondering why I didn’t just supply the 1-line fixes as a diff, its because Ubuntu Edgy Eft broke patch(1), and it doesn’t patch back in cleanly… so I used the Swiss Army Chainsaw; perl!

SuSE 10.1 in VMware “No catalogue found” error SOLVED

Tags:

It seems that quite a few people (including myself) ran into trouble trying to get SuSE 10.1 GM to install from DVD in VMware.

The exact error you’ll get will be:

No catalogue found at dvd:///?devices%3d%2fdev%2fhdc

After a bit of tinkering with the DVD image, I realized that it was a problem with the .iso file itself. The md5sums matched perfectly, and the DVD was “intact”, it was just incorrect because the wrong mkisofs params were used when it was created. You’ll need to mount, copy the contents out, and rebuild the ISO with the proper options to make it work as a bootable ISO for VMware.

The following steps will fix it:

# Mount the original ISO as a loopback image
mount -oloop SUSE-Linux-10.1-GM-DVD-i386.iso /mnt/SuSE

# Copy all of the files out of the image to a directory on disk
rsync -avSP /mnt/SuSE/. /tmp/SuSE

# Rebuild the ISO image with the proper parameters
mkisofs -v -V SuSE10.1GM -r -J -l -L -P "OpenSuSE Linux 10.1 GM" \
-b "boot/i386/loader/isolinux.bin" -c "boot/i386/loader/boot.cat" \
-no-emul-boot -boot-load-size 4 -boot-info-table -graft-points \
-o /tmp/SuSE-Linux-10.1-DVD.iso /tmp/SuSE

Voila! Problem solved!

More toys…

Tags:

My shiny new Thinkpad T42p came with an UltraBay Slim DVD-RW drive, which is nice and fast. Unfortunately, it also came with a 60gb primary IDE drive, which isn’t enough to hold my source, documents, projects and all of my VMware images for development and testing. On my Thinkpad T23, I had always used the UltraBay slot to hold a second IDE drive for these images.

This puts me in a quandry, because I’d like to use the DVD-RW, but also use my VMware images..

I decided to look into getting an external 2.5″ usb2.0/Firewire enclosure to hold a spare 60/80gb drive for the VMware images. I went with one based on the Oxford chipset, because I’d read that they were the fastest external chipset out there for these kind of enclosures.

2.5

I received the enclosure yesterday, and there were a few problems with it right off the top:

  • The Firewire interface was 1394b, not 1394a (Firewire 800 vs. Firewire 400). I only have Firewire 400 peripherals, so this connection is useless to me, and the Firewire 800 pcmcia cards out there don’t have a usb2.0 combo interface, so I’d be swapping out pcmcia cards for each device. Not fun.
  • The enclosure doesn’t run without external power when using the usb2.0 connection. One of the selling points of this enclosure was that I could use it without having to carry around a separate power “brick” with me when I travel. With usb2.0 being the only possible connection interface, this was important. Unfortunately, it requires a wall plug to power up the drive when using usb2.0. Ugh.
  • It doesn’t work with Linux. Double-ugh. I thought it would “Just Work™”, but apparently not. I found this informative post from someone who had done some pretty extensive testing, and found that the Oxford 922 chipset is buggy, and doesn’t work with Linux. I wish I found this before I bought the enclosure!

The errors I’m getting look like this:

Apr 11 17:04:15 angst kernel: usb 5-2.6: khubd timed out on ep0in
Apr 11 17:04:15 angst kernel: usb 5-2.6: device descriptor read/8, error -110
Apr 11 17:04:15 angst kernel: usb 5-2.6: new high speed USB device using ehci_hcd and address 10
Apr 11 17:04:20 angst kernel: usb 5-2.6: khubd timed out on ep0in
Apr 11 17:04:20 angst kernel: usb 5-2.6: device descriptor read/8, error -110
Apr 11 17:04:25 angst kernel: usb 5-2.6: khubd timed out on ep0in

These are fatal, and the drive isn’t recognized. I use a LOT of external usb and firewire peripherals, so this was unusual for me. I tried about 7 different kernels and different suggestions from the community about ACPI and noapic at boot, but those didn’t seem to help.

So now I’ve got an enclosure that seems flaky with Linux, and doesn’t have the interfaces that work with the rest of my peripherals.

But.. I found a possible solution, a bilingual cable! Basically this cable takes Firewire 800 (1394b) and transforms it to Firewire 400 (1394a).

Firewire Bilingual Cable

It was fairly cheap, so I ordered it. Hopefully this will let me use the drive on bus-power only, and in a way that Linux will recognize. Otherwise, I’m going to have to eBay the device. The company I purchased it from had a policy (that only showed up after my order was confirmed) that allows repair or replacement of the same device, but no exchanges. Ugh.

Rusty Solaris

Tags: ,

Recently, I’ve been offered a job working as a Solaris system administrator, answering “tickets” from a queue, writing up documentation, business procedures, and other similar things for a local company about 5 miles away from where we live. The opportunity looks fun, but my Solaris experience is a bit rusty. I’m great with Unix in general, and I’m stellar with Linux, but my Solaris experience is a bit lacking. It isn’t something I can’t pick back up fast, I just haven’t used it in many years.

I haven’t made a decision on the job yet. The initial pass at the salary they offered was a bit lower than I expected, but a few negotiations have brought it around to where I’m comfortable with it. A few more details, and I’ll be able to make a decision.

So I took some time to start re-learning Solaris 10 on x86, so I can refamiliarize myself with it. I installed it in VMware and did the full install. It topped out at about 3.5GiB of disk space, not too bad. The full install took about 3 hours. It really unpacks slow.

Solaris 10 in VMware
(Actual screenshot of my version running within vmware)

The Java Desktop, a new option with Solaris 10, is very slick, very nice, and reasonably fast, even while being emulated without any accellerated video drivers, on my ageing P3/1133MHz laptop (yes, that laptop).

Getting the right pieces working was not as easy as I thought…

First, I had to download the binary X server from this page. Since there is no text-mode browser on Solaris by default (even when installing everything), I had to use a Perl trick… I configured CPAN on the machine, and installed LWP::Simple, so I could use the ‘getstore()’ function to fetch the binary X server over http. While in CPAN, I installed a few other useful modules I will be using later on.

Then I installed the binary X server, and then followed these other instructions to get the right resolution on my laptop’s screen (1400×1050), which required creating a local file that didn’t exist, and reconfiguring XSun with kdmconfig.

After that, I was in business… full 1400×1050 resolution at 65k colors inside VMware, running Solaris 10 x86.

Now off to break it and fix it and break it again. I need a faster laptop..

Useful links:
http://supportforum.sun.com/sunos/index.php?t=msg&goto=1509&rid=0#msg_1509
http://www.tools.de/solaris/xf86/
http://www.samag.com/documents/s=9338/sam0410j/0410j.htm
http://www.bolthole.com/solaris/vesa1400x1050.html

VMware Tweaking

Tags: , , ,

RoUS, VMware is something I know a great deal about, inside and out. I can probably help you.

I’ve gotten many unsupported USB devices working, regularly sync my Palms over USB, Ir, and serial into and out of vmware guest images, and have no problems with NAT or DVD playback.

Hit me up in email and I can help you out. I have some tweaks as well, that you may want to implement, which will speed up the performance of that NT image for you inside the vm.

I have about 12 images I use in vmware on nearly a daily basis (and as I type this, FreeBSD 4.3 is happily compiling gnome inside VMware right now on another window).

I rely on it quite heavily for my cross-platform work, where I need a “soft” box to test in.

Bad Behavior has blocked 4803 access attempts in the last 7 days.