1. 程式人生 > >解決——CentOS 7 升級後VMware無法允許,提示“vmware kernel module updater”

解決——CentOS 7 升級後VMware無法允許,提示“vmware kernel module updater”

【參考文獻】

【問題】

    升級系統後(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):