3.8-rc4 – VMware problem, but ‘old’ NVIDIA still OK..
Just installed kernel 3.8-rc4 on my test system
This time, VMware (9.01) compile fails, even with the ‘softlink’ workaround for version.h..
make: Entering directory `/tmp/modconfig-rBMV5O/vmci-only’
/usr/bin/make -C /lib/modules/3.8.0-rc4/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/.
MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-3.8-rc4′
CC [M] /tmp/modconfig-rBMV5O/vmci-only/linux/driver.o
CC [M] /tmp/modconfig-rBMV5O/vmci-only/linux/vmciKernelIf.o
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:127:4: error: implicit declaration of function ‘__devexit_p’ [-Werror=implicit-function-declaration]
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:127:4: error: initializer element is not constant
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:127:4: error: (near initialization for ‘vmci_driver.remove’)
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:1754:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_probe_device’
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:1982:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_remove_device’
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:119:12: warning: ‘vmci_probe_device’ used but never defined [enabled by default]
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:121:13: warning: ‘vmci_remove_device’ used but never defined [enabled by default]
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:2063:1: warning: ‘vmci_interrupt’ defined but not used [-Wunused-function]
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:2137:1: warning: ‘vmci_interrupt_bm’ defined but not used [-Wunused-function]
/tmp/modconfig-rBMV5O/vmci-only/linux/driver.c:1717:1: warning: ‘vmci_enable_msix’ defined but not used [-Wunused-function]
cc1: some warnings being treated as errors
make[2]: *** [/tmp/modconfig-rBMV5O/vmci-only/linux/driver.o] Error 1
make[2]: *** Waiting for unfinished jobs….
make[1]: *** [_module_/tmp/modconfig-rBMV5O/vmci-only] Error 2
make[1]: Leaving directory `/usr/src/linux-3.8-rc4′
make: *** [vmci.ko] Error 2
make: Leaving directory `/tmp/modconfig-rBMV5O/vmci-only’
Unable to install all modules. See log for details.
The newest NVIDIA driver – 313.18 – fails to start compilation, with *** Unable to determine the target kernel version. ***, but the ‘old’ driver – 310.14 – still compiles successfully!
VMware are actively working to get vmci, (vmw_vmci and vmw_vsock) into the mainstream Linux kernel, but this is still at the ‘code-review’ stage..
http://lwn.net/Articles/531944/
Robert Gadsdon. January 18th 2013.
Very simple patch to get it building again on rc4 :-
— vmci-only/linux/driver.c 2012-08-16 05:53:18.000000000 +1000
+++ vmci-only3.8rc4/linux/driver.c 2013-01-23 11:19:10.325897824 +1100
@@ -124,7 +124,7 @@
.name = “vmci”,
.id_table = vmci_ids,
.probe = vmci_probe_device,
– .remove = __devexit_p(vmci_remove_device),
+ .remove = vmci_remove_device,
};
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
@@ -1750,7 +1750,7 @@
*—————————————————————————–
*/
-static int __devinit
+static int
vmci_probe_device(struct pci_dev *pdev, // IN: vmci PCI device
const struct pci_device_id *id) // IN: matching device ID
{
@@ -1978,7 +1978,7 @@
*—————————————————————————–
*/
-static void __devexit
+static void
vmci_remove_device(struct pci_dev* pdev)
{
struct vmci_device *dev = pci_get_drvdata(pdev);
Tim,
Many thanks for this. Will apply the patch tomorrow, when I get my test system back up on -rc4..
Robert.
Hi Tim,
Finally had time to apply the patch, and it works just fine with 3.8-rc4. As you say – a simple patch… As long as you know what you are doing!
Thanks,
Robert.
Excuse my ignorance, but what am I looking at? I am just getting into linux, and have 3.8 rc5 going, I managed to get the softlink working but it vmware installer eventually fails trying to compile the vmci and vmci sockets. I would love to use this patch, but I honestly don’t know how.
Basically.. Go to the VMware source (in /usr/lib/vmware/modules/source) and untar the vmci.tar file, which gives you a directory vmci-only, with the source files in it. Then apply the patch (from a text/patch file saved from Tim’s info) # cat patchfile |patch -p0. For info on how to apply patches, there is a load of info available online (just Google ‘linux patch howto’).. Then, re-tar the patched vmci-only directory and contents back to vmci.tar, which will then be accessed by the VMware installer when it runs..