vmware12 的kernel module updater解决方法

    系统由CentOS7.3升级到CentOS7.4后,Vmware12大不开,出现了kernel module updater的提示,运行vmware-modconfig --console --install-all   重新建立模块,如果建立成功,那么恭喜。如果没有的话,就查看编译过后红色标记为error错误的提示。我的出现的问题如下:
# vmware-modconfig --console --install-all   
Stopping vmware (via systemctl):                           [  OK  ]
Using kernel build system.
make: Entering directory `/tmp/modconfig-5AxYzD/vmmon-only'
/usr/bin/make -C /lib/modules/3.10.0-693.2.2.el7.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/3.10.0-693.2.2.el7.x86_64'
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-5AxYzD/vmmon-only/vmcore/moduleloop.o
/tmp/modconfig-5AxYzD/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Free() falls through to next function PhysTrack_Add()
/tmp/modconfig-5AxYzD/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Add() falls through to next function PhysTrack_Remove()
/tmp/modconfig-5AxYzD/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Remove() falls through to next function PhysTrack_Test()
/tmp/modconfig-5AxYzD/vmmon-only/linux/driver.c:1291:1: warning: always_inline function might not be inlinable [-Wattributes]
 LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
 ^
/tmp/modconfig-5AxYzD/vmmon-only/common/task.o: warning: objtool: .text: unexpected end of section
  LD [M]  /tmp/modconfig-5AxYzD/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/modconfig-5AxYzD/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-5AxYzD/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.2.2.el7.x86_64'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-5AxYzD/vmmon-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-5AxYzD/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/modconfig-5AxYzD/vmmon-only'
Using kernel build system.
make: Entering directory `/tmp/modconfig-5AxYzD/vmnet-only'
/usr/bin/make -C /lib/modules/3.10.0-693.2.2.el7.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/3.10.0-693.2.2.el7.x86_64'
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/netif.o
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/procfs.o
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-5AxYzD/vmnet-only/vnetUserListener.o
In file included from include/linux/pci.h:35:0,
                 from /tmp/modconfig-5AxYzD/vmnet-only/compat_netdevice.h:27,
                 from /tmp/modconfig-5AxYzD/vmnet-only/netif.c:43:
include/linux/pci_ids.h:2251:0: warning: "PCI_VENDOR_ID_VMWARE" redefined [enabled by default]
 #define PCI_VENDOR_ID_VMWARE  0x15ad
 ^
In file included from /tmp/modconfig-5AxYzD/vmnet-only/net.h:38:0,
                 from /tmp/modconfig-5AxYzD/vmnet-only/vnetInt.h:26,
                 from /tmp/modconfig-5AxYzD/vmnet-only/netif.c:42:
/tmp/modconfig-5AxYzD/vmnet-only/vm_device_version.h:56:0: note: this is the location of the previous definition
 #define PCI_VENDOR_ID_VMWARE                    0x15AD
 ^
In file included from /tmp/modconfig-5AxYzD/vmnet-only/netif.c:43:0:
/tmp/modconfig-5AxYzD/vmnet-only/netif.c: In function ‘VNetNetifStartXmit’:
/tmp/modconfig-5AxYzD/vmnet-only/compat_netdevice.h:343:46: error: ‘struct net_device’ has no member named ‘trans_start’
 #define compat_netif_trans_update(d) do { (d)->trans_start = jiffies; } while (0)
                                              ^
/tmp/modconfig-5AxYzD/vmnet-only/netif.c:468:4: note: in expansion of macro ‘compat_netif_trans_update’
    compat_netif_trans_update(dev);
    ^
make[2]: *** [/tmp/modconfig-5AxYzD/vmnet-only/netif.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /tmp/modconfig-5AxYzD/vmnet-only/net.h:38:0,
                 from /tmp/modconfig-5AxYzD/vmnet-only/vnetInt.h:26,
                 from /tmp/modconfig-5AxYzD/vmnet-only/bridge.c:52:
/tmp/modconfig-5AxYzD/vmnet-only/vm_device_version.h:56:0: warning: "PCI_VENDOR_ID_VMWARE" redefined [enabled by default]
 #define PCI_VENDOR_ID_VMWARE                    0x15AD
 ^
In file included from include/linux/pci.h:35:0,
                 from /tmp/modconfig-5AxYzD/vmnet-only/compat_netdevice.h:27,
                 from /tmp/modconfig-5AxYzD/vmnet-only/bridge.c:51:
include/linux/pci_ids.h:2251:0: note: this is the location of the previous definition
 #define PCI_VENDOR_ID_VMWARE  0x15ad
 ^
make[1]: *** [_module_/tmp/modconfig-5AxYzD/vmnet-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.2.2.el7.x86_64'
make: *** [vmnet.ko] Error 2
make: Leaving directory `/tmp/modconfig-5AxYzD/vmnet-only'
Unable to install all modules.  See log for details.
    问题出现在这个地方:
/tmp/modconfig-5AxYzD/vmnet-only/compat_netdevice.h:343:46: error: ‘struct net_device’ has no member named ‘trans_start’
 #define compat_netif_trans_update(d) do { (d)->trans_start = jiffies; } while (0)
    进入到首先/usr/lib/vmware/modules/source目录下,备份vmnet.tar和vmmon.tar,由于出现问题的在vmnet.tar里面,只需解压( tar -xf vmnet.tar)vmnet.tar即可。找到compat_netdevice.h文件的#define compat_netif_trans_update(d) do { (d)->trans_start = jiffies; } while (0) 这句,把他修改成#define compat_netif_trans_update(d) do { } while (0)即可,打包修(tar -uf vmnet.tar vmnet-only)改后的文件。再次运行vmware-modconfig --console --install-all,没有发现错误提示,运行结果如下:
[root@localhost tmp]# vmware-modconfig --console --install-all   
Stopping vmware (via systemctl):                           [  OK  ]
Using kernel build system.
make: Entering directory `/tmp/modconfig-w3lVM0/vmmon-only'
/usr/bin/make -C /lib/modules/3.10.0-693.2.2.el7.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/3.10.0-693.2.2.el7.x86_64'
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-w3lVM0/vmmon-only/vmcore/moduleloop.o
/tmp/modconfig-w3lVM0/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Free() falls through to next function PhysTrack_Add()
/tmp/modconfig-w3lVM0/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Add() falls through to next function PhysTrack_Remove()
/tmp/modconfig-w3lVM0/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Remove() falls through to next function PhysTrack_Test()
/tmp/modconfig-w3lVM0/vmmon-only/linux/driver.c:1291:1: warning: always_inline function might not be inlinable [-Wattributes]
 LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
 ^
/tmp/modconfig-w3lVM0/vmmon-only/common/task.o: warning: objtool: .text: unexpected end of section
  LD [M]  /tmp/modconfig-w3lVM0/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/modconfig-w3lVM0/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-w3lVM0/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.2.2.el7.x86_64'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-w3lVM0/vmmon-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-w3lVM0/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/modconfig-w3lVM0/vmmon-only'
Using kernel build system.
make: Entering directory `/tmp/modconfig-w3lVM0/vmnet-only'
/usr/bin/make -C /lib/modules/3.10.0-693.2.2.el7.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/3.10.0-693.2.2.el7.x86_64'
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/netif.o
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/procfs.o
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-w3lVM0/vmnet-only/vnetUserListener.o
In file included from include/linux/pci.h:35:0,
                 from /tmp/modconfig-w3lVM0/vmnet-only/compat_netdevice.h:27,
                 from /tmp/modconfig-w3lVM0/vmnet-only/netif.c:43:
include/linux/pci_ids.h:2251:0: warning: "PCI_VENDOR_ID_VMWARE" redefined [enabled by default]
 #define PCI_VENDOR_ID_VMWARE  0x15ad
 ^
In file included from /tmp/modconfig-w3lVM0/vmnet-only/net.h:38:0,
                 from /tmp/modconfig-w3lVM0/vmnet-only/vnetInt.h:26,
                 from /tmp/modconfig-w3lVM0/vmnet-only/netif.c:42:
/tmp/modconfig-w3lVM0/vmnet-only/vm_device_version.h:56:0: note: this is the location of the previous definition
 #define PCI_VENDOR_ID_VMWARE                    0x15AD
 ^
In file included from /tmp/modconfig-w3lVM0/vmnet-only/net.h:38:0,
                 from /tmp/modconfig-w3lVM0/vmnet-only/vnetInt.h:26,
                 from /tmp/modconfig-w3lVM0/vmnet-only/bridge.c:52:
/tmp/modconfig-w3lVM0/vmnet-only/vm_device_version.h:56:0: warning: "PCI_VENDOR_ID_VMWARE" redefined [enabled by default]
 #define PCI_VENDOR_ID_VMWARE                    0x15AD
 ^
In file included from include/linux/pci.h:35:0,
                 from /tmp/modconfig-w3lVM0/vmnet-only/compat_netdevice.h:27,
                 from /tmp/modconfig-w3lVM0/vmnet-only/bridge.c:51:
include/linux/pci_ids.h:2251:0: note: this is the location of the previous definition
 #define PCI_VENDOR_ID_VMWARE  0x15ad
 ^
  LD [M]  /tmp/modconfig-w3lVM0/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/modconfig-w3lVM0/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/modconfig-w3lVM0/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.2.2.el7.x86_64'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-w3lVM0/vmnet-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-w3lVM0/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/modconfig-w3lVM0/vmnet-only'
Starting vmware (via systemctl):                           [  OK  ]
    再次打开vmware,熟悉的界面出现了。

参考:
http://www.kali.org.cn/thread-22052-1-1.html
http://blog.csdn.net/byb123/article/details/52094840

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值