解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败
Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示
最终上报fail
解决方法
内核升级导致,需要在新内核下重新下载编译安装
查看版本
$ vmware -v
VMware Workstation 17.5.1 build-23298084$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy$ uname -a
Linux 6.8.0-60-generic #63~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC UTC 2 x86_64 x86_64 x86_64 GNU/Linux
下载和切换配套版本
$ cd gitcode/
$ git clone https://gitcode.com/gh_mirrors/vm/vmware-host-modules.git
Cloning into 'vmware-host-modules'...
remote: Enumerating objects: 4790, done.
remote: Counting objects: 100% (519/519), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 4790 (delta 514), reused 514 (delta 514), pack-reused 4271 (from 1)
Receiving objects: 100% (4790/4790), 1.74 MiB | 135.00 KiB/s, done.
Resolving deltas: 100% (3696/3696), done.$ cd vmware-host-modules/$ git branch -a
* masterremotes/origin/HEAD -> origin/masterremotes/origin/masterremotes/origin/playerremotes/origin/player-12.5.2... ...remotes/origin/workstation-17.0.2remotes/origin/workstation-17.5.0remotes/origin/workstation-17.5.1
~/mnt/git/gitcode/vmware-host-modules$ git checkout -b workstation-17.5.1 remotes/origin/workstation-17.5.1
Branch 'workstation-17.5.1' set up to track remote branch 'workstation-17.5.1' from 'origin'.
Switched to a new branch 'workstation-17.5.1'$ git branchmaster
* workstation-17.5.1
编译和安装
make
make -C vmmon-only
make[1]: Entering directory '/mnt/git/gitcode/vmware-host-modules/vmmon-only'
Using kernel build system.
make -C /lib/modules/6.8.0-60-generic/build/include/.. M=$PWD SRCROOT=$PWD/. \MODULEBUILDDIR= modules
make[2]: Entering directory '/usr/src/linux-headers-6.8.0-60-generic'
warning: the compiler differs from the one used to build the kernelThe kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0CC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/linux/driver.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/linux/driverLog.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/linux/hostif.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/apic.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/comport.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/cpuid.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/crosspage.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/memtrack.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/moduleloop.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/phystrack.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/sharedAreaVmmon.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/statVarsVmmon.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/task.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/common/vmx86.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/bootstrap/bootstrap.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/bootstrap/monLoader.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/bootstrap/monLoaderVmmon.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/bootstrap/vmmblob.oLD [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/vmmon.oMODPOST /mnt/git/gitcode/vmware-host-modules/vmmon-only/Module.symversCC [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/vmmon.mod.oLD [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/vmmon.koBTF [M] /mnt/git/gitcode/vmware-host-modules/vmmon-only/vmmon.ko
Skipping BTF generation for /mnt/git/gitcode/vmware-host-modules/vmmon-only/vmmon.ko due to unavailability of vmlinux
make[2]: Leaving directory '/usr/src/linux-headers-6.8.0-60-generic'
make -C $PWD SRCROOT=$PWD/. \MODULEBUILDDIR= postbuild
make[2]: Entering directory '/mnt/git/gitcode/vmware-host-modules/vmmon-only'
make[2]: 'postbuild' is up to date.
make[2]: Leaving directory '/mnt/git/gitcode/vmware-host-modules/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make[1]: Leaving directory '/mnt/git/gitcode/vmware-host-modules/vmmon-only'
make -C vmnet-only
make[1]: Entering directory '/mnt/git/gitcode/vmware-host-modules/vmnet-only'
Using kernel build system.
make -C /lib/modules/6.8.0-60-generic/build/include/.. M=$PWD SRCROOT=$PWD/. \MODULEBUILDDIR= modules
make[2]: Entering directory '/usr/src/linux-headers-6.8.0-60-generic'
warning: the compiler differs from the one used to build the kernelThe kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0CC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/driver.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/hub.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/userif.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/netif.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/bridge.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/procfs.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/smac_compat.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/smac.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/vnetEvent.oCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/vnetUserListener.oLD [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/vmnet.oMODPOST /mnt/git/gitcode/vmware-host-modules/vmnet-only/Module.symversCC [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/vmnet.mod.oLD [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/vmnet.koBTF [M] /mnt/git/gitcode/vmware-host-modules/vmnet-only/vmnet.ko
Skipping BTF generation for /mnt/git/gitcode/vmware-host-modules/vmnet-only/vmnet.ko due to unavailability of vmlinux
make[2]: Leaving directory '/usr/src/linux-headers-6.8.0-60-generic'
make -C $PWD SRCROOT=$PWD/. \MODULEBUILDDIR= postbuild
make[2]: Entering directory '/mnt/git/gitcode/vmware-host-modules/vmnet-only'
make[2]: 'postbuild' is up to date.
make[2]: Leaving directory '/mnt/git/gitcode/vmware-host-modules/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make[1]: Leaving directory '/mnt/git/gitcode/vmware-host-modules/vmnet-only'$ sudo make install
install -D -t /lib/modules/6.8.0-60-generic/misc vmmon-only/vmmon.ko vmnet-only/vmnet.ko
strip --strip-debug /lib/modules/6.8.0-60-generic/misc/vmmon.ko /lib/modules/6.8.0-60-generic/misc/vmnet.ko
if test -z ""; then /sbin/depmod -a 6.8.0-60-generic; fi
安装
~$ find ./ -name *.ko
./vmmon-only/vmmon.ko
./vmnet-only/vmnet.ko
~$ sudo insmod ./vmmon-only/vmmon.ko
~$ sudo insmod ./vmnet-only/vmnet.ko
~$
现象2 虚拟机镜像无法链接网络
虚拟机网络不通,现象如下
无法与主机通信
解决方法
之前加载模块的方式不对,需要先卸载
$ sudo rmmod vmnet
$ sudo rmmod vmmon
按照如下方法加载
$ sudo modprobe -a vmw_vmci vmmon vmnet
$ sudo vmware-networks --start
Started Bridge networking on vmnet0
Enabled hostonly virtual adapter on vmnet1
Started DHCP service on vmnet1
Started NAT service on vmnet8
Enabled hostonly virtual adapter on vmnet8
Started DHCP service on vmnet8
Started all configured services on all networks
参考
解决Ubuntu22.04/24.04等Linux桌面系统下打开VMware软件出现vmmon和vmnet模块的缺失/安装/内核升级等问题
https://blog.csdn.net/hjt374200573/article/details/141567143