Last weekend I updated my Linux Kernel to version 2.6.16. Why? because
- new kernel brings securtiy fixes, which are always good,
- new kernel included new drivers for my centrino wireless card which solved some problems I was having,
- suspend to file works now for me
So today I tried to run VMware, which I need to because the AVR Studio (for AVR microcontroller debugging) requires Windows.
1. VMware didn't start, because modules had to be rebuild
Ok.. that's logical. I got a new kernel, naturally old kernel modules won't be compatible, I had to build new vmware kernel modules. so I called
# vmware-config.pl
I knew this tool well, because from time to time VMware decided (randomly, it seemed) that my configuration was broken and I had to run vmware-configure.pl to fix it.
2. We know better what your kernel source not are!
vmware-config.pl, as usual, asked a few configuration questions on the command line and finally came up with:
What is the location of the directory of C that
match your running kernel? [/usr/src/linux/include]
The proposal (/usr/src/linux/include) was correct, I hit Enter.
The kernel defined by this directory of header files does
not have the same address space size as your kernel.
What is the location of the directory of C that
match your running kernel? [/usr/src/linux/include]
Well to hell with you! I just built that kernel, I know the sources are there. I hit Enter again, it didn't matter how often I did, I just received the above reply over and over again. Whatever, I thought, edited the vmware-configure.pl script, so it would skip the above check.
3. err no, it's just us not being compatible to your kernel version
I started the freshly edited script, and yay, it went past the previously sticky point and started to compile the modules. It finished,.. not successfully though :(
[...]
/tmp/vmware-config14/vmmon-only/./include/compat_wait.h:60: error: conflicting types for ‘poll_initwait’
/usr/src/linux-2.6.16-rc5-git2-2/include/linux/poll.h:45: error: previous declaration of ‘poll_initwait’ was here
/tmp/vmware-config14/vmmon-only/linux/driver.c:145: warning: initialization from incompatible pointer type
/tmp/vmware-config14/vmmon-only/linux/driver.c:149: warning: initialization from incompatible pointer type
/make[4]: *** [/tmp/vmware-config14/vmmon-only/linux/driver.o] Fehler 1
make[3]: *** [_module_/tmp/vmware-config14/vmmon-only] Fehler 2
make[2]: *** [modules] Fehler 2
[...]
Unable to build the vmmon module.
Ok, it seemed that VMware was not compatible to the new Kernel. Why didn't you say so in the first place??
4. Install new vmware-player
I decided to try a new version of VMware. Since it is free of charge, VMware-Player seemed a good joice. 35MB download later, I started the install script and I must say I was surprised to find it delete my old VMware workstation without asking. NICE! OK, whatever I thought, as long as it's working afterwards! ...
it wasn't.
Same error again. There I was, old VMware version at least corrupted, new version wouldn't compile,... time to ask the Internet.
5. The internet knows
I found several occurances of my problem on the Internet, and there was
one in the vmware forum pointing me in the right direction. In fact, VMware is not yet supporting the 2.6.16 kernel, but there's an unofficial, not supported
patch, that helps.
Before trying that patch I decided to see what Gentoo had to offer...
# emerge -s vmware
[...]
* app-emulation/vmware-workstation
Latest version available: 5.5.1.19175-r3
Latest version installed: [...]
So apparently there is the latest VMware version available via Gentoo, let's try that and apply the patch afterwards.
6. I love Gentoo
After Gentoo had installed the workstation I thought, What the heck, I'll try to run vmware-configure.pl without the patch first, and so I did.
It went through the configure without any errors! wow. It seemed the Gentoo people had already applied some kind of patch... Gentoo, I love ya! Stupid me, could've saved all the previously wasted time by just asking Gentoo to reinstall VMware. Now run it:
& vmware
I started up, offering my old Windows 98 virtual machine,.. again, NICE. Time to get started with it, time to start doing what I had planned to do hours ago, debug my AVR Board.
Failed to connect to peer process
There it went again, not running, rejoiced to early. :(
Asking the internet again,
it turned out Gentoo wasn't bug free either. I called
# chmod u+s /opt/vmware/workstation/lib/bin/vmware-vmx
and as it still wouldn't run I restarted the system to get the latest changes I did to /etc/group to apply, and everything else that might have changed, and I should wonder...
7. Reboot
System rebooted, I logged into X and .. I got logged out again. Automatically, fantastic.
- I tried again → same result.
- console login worked.
- root X login worked.
- I checked the logs → nothing.
HUH?
I tried to start X from the user console and it exited, but at least I found out what happened: Access to ~/.ICEauthority by the X server had been denied. Turned out, that file in my home directory was owned by root and only the owner was allowed to read or write to it. Now how the fuck could that happen?
I don't know. I guess the vmware-player install skrewed with it.
8. The End
I changed the permissions, and started X, it worked then. And guess what, VMware works too, now!
I once thought about buying that product... I'm fed up with it!