There's lots of info on the net on achieving that, but I found it a bit too scattered, and had to combine instructions from multiple sources.
I'm not certain it's the right way, but it worked™. So I'll share, and get your feedback in case I've done anything stupid:
- Convert VMDKs (VM's disk), even when having multiple files, to qcow2 format (note: QVM/QEMU should be able to deal with vmdk files (multiple as well?), so possibly this step is redundant):
# qemu-img convert <vmdk wildcard> <qcow2 file>
- Convert the vmx (VM's settings) to xml (requires vmware2libvirt tool found in virt-goodies package)
# vmware2libvirt -f <source.vmx> > target.xml
I've been using VMware server mainly for accessing Windows (sometimes I need MS Office or IE). VMware server is a very good product, but is also closed source, and very disconnected from the community.
Some of the source is open (such as vmmon & vmnet kernel modules), but still VMware don't cooperate with the FOSS community. This means that good people make patches to support newer kernel versions, but they act like pirates. VMware won't apply their patches. VMware can't work out-of-the-box on kernels since ~2.6.21 or so.
Same goes with a more minor, X <-> GTK <-> VMware bug I've been writing about. It might be a non-VMware bug but something in Xorg. But I'd expect them to figure it out and post a message or even help to fix the Xorg bug, if it's an Xorg bug. Instead, they either ignore our requests or tell that we use non supported distros. Which is true. But if the problem is Xorg7.3 integration, they'd better fix it, because RHEL 6 would probably use it as well. Same goes for new kernel versions.
Both bugs are being neglected by VMware for more than a year.
So screw them, I chose a community supported virtualization solution: VirtualBox Open Source Edition. Debian has a kernel module package for each kernel versions, and stuff looks much better so far.
I'd suggest VMware to hire a single FOSS guy for Linux integration and "community special tasks". He'll be very busy, but I think that this is all it takes to change their "community involvement" upside-down.
Update: been using it for few days, VirtualBox is cool 😉
Some updates since the last post:
The "GTK dies on a keypress" bug
Good news: it was fixed by Matthias Clasen. It was solved in the SVN version, I guess that we'll have to wait a while till it gets into the next version, Unless package maintainers would manually add it.
Doing a good QA in the FOSS community
I've learned a quick lesson about good QA in the open source community, which I find very rare.
In this case the bug was reported for ~2 months with no activity ("it sometimes crashes" type of report). Until I've added my description, which, probably helped it to get closed.
I'll try to sum up what I've learned:
This annoying vmware-deletes-the-modifier-keys bug I wrote about is still a mystery, but still I gained some more info. There are two problems:
1. VMware deletes modifier keys:
- Can be replicated by holding a modifier key down inside a guest OS (VMware console). Then moving the mouse out of the guest OS window, while modifier is still down.
- Happens on modern Ubuntu/Debian/Arch Linux versions.
- Very likely, but not 100% confirmed: happens since Xorg 7.3.
- Doesn't happen on CentOS / RedHat EL 5. (Apparently because they use Xorg 7.1.1?)
- Links: Ubuntu launchpad, VMware forums.
Still, is it an Xorg bug or VMware one? (or GTK)
2. GTK apps crash on a keypress, when X modifiers-list is empty.
- If 'xmodmap' is emptied (either by the VMware bug described above, or by manually removing all the modifiers), each new-running GTK app would just crash as the first key is pressed.
- This doesn't happen to KDE or plain-X11 apps.
- Segmentation fault is received in the _gdk_keymap_key_is_modifier() function in gdkkeys-x11.c:1662.
- I tried digging the code, but no luck yet (all I could do is skip the function if no modifiers are set, but I don't know GDK enough to know the other effects it can have).
- Links: Gnome bugzilla.
I'll keep updating in case there'll be something interesting.
Update: gtk bug got fixed.