Patch VMware 9 with Linux kernel 3.8.x

قد تواجه مشكلة في VMware 9 مع كرينلات 3.8.x ,, في فيدورا 18 قابلتني نفس المشكلة

وعند تنفيذ الأمر بعد تحديث الكيرنال إلى 3.8.x وتنفيذ الأمر

vmware-modconfig --console --install-all

ستواجه المشكلة التالية

Stopping vmware (via systemctl):                           [  OK  ]
Using 2.6.x kernel build system.
make: Entering directory `/tmp/modconfig-yEoL2x/vmmon-only'
/bin/make -C /lib/modules/3.8.1-201.fc18.i686.PAE/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/3.8.1-201.fc18.i686.PAE'
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-yEoL2x/vmmon-only/vmcore/moduleloop.o
  LD [M]  /tmp/modconfig-yEoL2x/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/modconfig-yEoL2x/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-yEoL2x/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/kernels/3.8.1-201.fc18.i686.PAE'
/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-yEoL2x/vmmon-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-yEoL2x/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/modconfig-yEoL2x/vmmon-only'
Using 2.6.x kernel build system.
make: Entering directory `/tmp/modconfig-yEoL2x/vmnet-only'
/bin/make -C /lib/modules/3.8.1-201.fc18.i686.PAE/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/3.8.1-201.fc18.i686.PAE'
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/netif.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/filter.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/procfs.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-yEoL2x/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/modconfig-yEoL2x/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/modconfig-yEoL2x/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/modconfig-yEoL2x/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/kernels/3.8.1-201.fc18.i686.PAE'
/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-yEoL2x/vmnet-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-yEoL2x/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/modconfig-yEoL2x/vmnet-only'
Using 2.6.x kernel build system.
make: Entering directory `/tmp/modconfig-yEoL2x/vmblock-only'
/bin/make -C /lib/modules/3.8.1-201.fc18.i686.PAE/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/3.8.1-201.fc18.i686.PAE'
  CC [M]  /tmp/modconfig-yEoL2x/vmblock-only/linux/filesystem.o
  CC [M]  /tmp/modconfig-yEoL2x/vmblock-only/linux/stubs.o
  CC [M]  /tmp/modconfig-yEoL2x/vmblock-only/linux/file.o
  CC [M]  /tmp/modconfig-yEoL2x/vmblock-only/linux/block.o
  CC [M]  /tmp/modconfig-yEoL2x/vmblock-only/linux/module.o
  CC [M]  /tmp/modconfig-yEoL2x/vmblock-only/linux/super.o
  CC [M]  /tmp/modconfig-yEoL2x/vmblock-only/linux/control.o
  CC [M]  /tmp/modconfig-yEoL2x/vmblock-only/linux/inode.o
  CC [M]  /tmp/modconfig-yEoL2x/vmblock-only/linux/dentry.o
/tmp/modconfig-yEoL2x/vmblock-only/linux/control.c: In function ‘ExecuteBlockOp’:
/tmp/modconfig-yEoL2x/vmblock-only/linux/control.c:285:9: warning: assignment from incompatible pointer type [enabled by default]
/tmp/modconfig-yEoL2x/vmblock-only/linux/control.c:296:4: warning: passing argument 1 of ‘putname’ from incompatible pointer type [enabled by default]
In file included from include/linux/proc_fs.h:5:0,
                 from /tmp/modconfig-yEoL2x/vmblock-only/linux/control.c:28:
include/linux/fs.h:2039:13: note: expected ‘struct filename *’ but argument is of type ‘char *’
/tmp/modconfig-yEoL2x/vmblock-only/linux/inode.c:49:4: warning: initialization from incompatible pointer type [enabled by default]
/tmp/modconfig-yEoL2x/vmblock-only/linux/inode.c:49:4: warning: (near initialization for ‘RootInodeOps.lookup’) [enabled by default]
/tmp/modconfig-yEoL2x/vmblock-only/linux/dentry.c:38:4: warning: initialization from incompatible pointer type [enabled by default]
/tmp/modconfig-yEoL2x/vmblock-only/linux/dentry.c:38:4: warning: (near initialization for ‘LinkDentryOps.d_revalidate’) [enabled by default]
/tmp/modconfig-yEoL2x/vmblock-only/linux/dentry.c: In function ‘DentryOpRevalidate’:
/tmp/modconfig-yEoL2x/vmblock-only/linux/dentry.c:104:7: warning: passing argument 2 of ‘actualDentry->d_op->d_revalidate’ makes integer from pointer without a cast [enabled by default]
/tmp/modconfig-yEoL2x/vmblock-only/linux/dentry.c:104:7: note: expected ‘unsigned int’ but argument is of type ‘struct nameidata *’
  LD [M]  /tmp/modconfig-yEoL2x/vmblock-only/vmblock.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "putname" [/tmp/modconfig-yEoL2x/vmblock-only/vmblock.ko] undefined!
  CC      /tmp/modconfig-yEoL2x/vmblock-only/vmblock.mod.o
  LD [M]  /tmp/modconfig-yEoL2x/vmblock-only/vmblock.ko
make[1]: Leaving directory `/usr/src/kernels/3.8.1-201.fc18.i686.PAE'
/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-yEoL2x/vmblock-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-yEoL2x/vmblock-only'
cp -f vmblock.ko ./../vmblock.o
make: Leaving directory `/tmp/modconfig-yEoL2x/vmblock-only'
Using 2.6.x kernel build system.
make: Entering directory `/tmp/modconfig-yEoL2x/vmci-only'
/bin/make -C /lib/modules/3.8.1-201.fc18.i686.PAE/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/3.8.1-201.fc18.i686.PAE'
  CC [M]  /tmp/modconfig-yEoL2x/vmci-only/linux/driver.o
  CC [M]  /tmp/modconfig-yEoL2x/vmci-only/linux/vmciKernelIf.o
  CC [M]  /tmp/modconfig-yEoL2x/vmci-only/common/vmciDriver.o
  CC [M]  /tmp/modconfig-yEoL2x/vmci-only/common/vmciResource.o
  CC [M]  /tmp/modconfig-yEoL2x/vmci-only/common/vmciRoute.o
  CC [M]  /tmp/modconfig-yEoL2x/vmci-only/common/vmciContext.o
/tmp/modconfig-yEoL2x/vmci-only/linux/driver.c:127:4: error: implicit declaration of function ‘__devexit_p’ [-Werror=implicit-function-declaration]
/tmp/modconfig-yEoL2x/vmci-only/linux/driver.c:127:4: error: initializer element is not constant
/tmp/modconfig-yEoL2x/vmci-only/linux/driver.c:127:4: error: (near initialization for ‘vmci_driver.remove’)
/tmp/modconfig-yEoL2x/vmci-only/linux/driver.c:1754:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_probe_device’
/tmp/modconfig-yEoL2x/vmci-only/linux/driver.c:1982:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_remove_device’
/tmp/modconfig-yEoL2x/vmci-only/linux/driver.c:119:12: warning: ‘vmci_probe_device’ used but never defined [enabled by default]
/tmp/modconfig-yEoL2x/vmci-only/linux/driver.c:121:13: warning: ‘vmci_remove_device’ used but never defined [enabled by default]
/tmp/modconfig-yEoL2x/vmci-only/linux/driver.c:2063:1: warning: ‘vmci_interrupt’ defined but not used [-Wunused-function]
/tmp/modconfig-yEoL2x/vmci-only/linux/driver.c:2137:1: warning: ‘vmci_interrupt_bm’ defined but not used [-Wunused-function]
/tmp/modconfig-yEoL2x/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-yEoL2x/vmci-only/linux/driver.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [_module_/tmp/modconfig-yEoL2x/vmci-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.8.1-201.fc18.i686.PAE'
make: *** [vmci.ko] Error 2
make: Leaving directory `/tmp/modconfig-yEoL2x/vmci-only'
Unable to install all modules.  See log for details.

الحل هو التالي
1- نزل الباتش التالي
Download

2- نفذ الأوامر التالية

tar -xzf vmware9.k3.8rc4.patch.tar.gz
cd /usr/lib/vmware/modules/source
tar -xf vmci.tar
cd vmci-only
patch -p1 < vmware9.k3.8rc4.patch
cd ..
mv  vmci.tar  vmci.tar.old
tar -cf vmci.tar vmci-only/

ثم نفذ الأمر التالي مرة ثانية,,

vmware-modconfig --console --install-all

تم تطبيق الطريقة في Fedora 18 على كرينيل 3.8.1-201.fc18.i686.PAE

مصدر1
مصدر2

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *