【参考文献】
vmware12 的kernel module updater的解决办法(https://yq.aliyun.com/ziliao/221344)
【问题】
升级系统后(yum update) VMware12打不开,出现了kernel module updater的提示。弹出窗体内容大意是: 找不到机器上已安装的 Kernel header。
【解决】
1. 运行如下命令,重新建立模块,如果建立成功应该就没问题了。
vmware-modconfig --console --install-all
2. 如果出错,error提示如下:
/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)
3. 继续解决
(1). cd进入到 /usr/lib/vmware/modules/source目录,
cd /usr/lib/vmware/modules/source
(2). 解压并备份 vmnet.tar。解压后出现文件夹vmnet-only
#解压vmnet.tar文件
tar -xf vmnet.tar
#备份vmnet.tar文件
mv vmnet.tar vmnet.tar.bak
(3). 进入vmnet-only文件夹,修改compat_netdevice.h文件
#找到compat_netdevice.h文件中的如下内容:
#define compat_netif_trans_update(d) do { (d)->trans_start = jiffies; } while (0)
#endif
#修改为如下内容
#define compat_netif_trans_update(d) do { } while (0)
#endif
(4). 打包vmnet-only文件夹,然后再次运行vmware-modconfig --console --install-all
#返回上一级目录,ls看看vmnet-only文件夹在不在
ls
tar -uf vmnet.tar vmnet-only
vmware-modconfig --console --install-all
(5). 运行vmware-modconfig --console --install-all后,出现如下提示后表示成功(只截取了最后几行)。重新打开VMware后可以正常运行。
CC /tmp/modconfig-sOvyPU/vmnet-only/vmnet.mod.o
LD [M] /tmp/modconfig-sOvyPU/vmnet-only/vmnet.ko
make[1]: 离开目录“/usr/src/kernels/3.10.0-862.14.4.el7.x86_64”
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= postbuild
make[1]: 进入目录“/tmp/modconfig-sOvyPU/vmnet-only”
make[1]: “postbuild”是最新的。
make[1]: 离开目录“/tmp/modconfig-sOvyPU/vmnet-only”
cp -f vmnet.ko ./../vmnet.o
make: 离开目录“/tmp/modconfig-sOvyPU/vmnet-only”
Starting vmware (via systemctl):