【Linux】vmware17.5.1 vmmon和 vmnet编译失败
1. 问题背景
$ uname -r
6.8.0-40-generic
$ vmplayer --version
VMware Player 17.5.1 build-23298084
2. 问题原因
linux内核升级 导致 vmmon 和 vmnet 编译不成功
3. 问题解决
3.1 补丁寻找
根据搜索查询到了vmwre社区说过这个问题,具体的补丁github在https://github.com/mkubecek/vmware-host-modules/tags
下载了与我的电脑对应的版本的补丁。
3.2 补丁安装
关于补丁的安装,找到了两种途径,一种是经过make直接安装的,比较简单无脑。
$ make
$ sudo make install
另外一种是将相应的vmmon 和 vmnet打包,使用vmware的配置工具安装
$ cd vmware-host-modules-17.5.1
$ tar -cf vmmon.tar vmmon-only
$ tar -cf vmnet.tar vmnet-only
$ sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/
$ sudo vmware-modconfig --console --install-all
无论是哪种途径,都导致以下的问题,导致无法编译。
...
...
/tmp/vmware-host-modules-w17.5.1/vmmon-only/common/task.c:548:1: warning: no previous prototype for ‘TaskGetFlatWriteableDataSegment’ [-Wmissing-prototypes]
548 | TaskGetFlatWriteableDataSegment(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/vmware-host-modules-w17.5.1/vmmon-only/common/task.o: warning: objtool: .text: unexpected end of section
CC [M] /tmp/vmware-host-modules-w17.5.1/vmmon-only/common/vmx86.o
In file included from /tmp/vmware-host-modules-w17.5.1/vmmon-only/common/vmx86.c:52:
./arch/x86/include/asm/timex.h: In function ‘random_get_entropy’:
./arch/x86/include/asm/timex.h:12:24: error: implicit declaration of function ‘random_get_entropy_fallback’; did you mean ‘random_get_entropy’? [-Werror=implicit-function-declaration]
12 | return random_get_entropy_fallback();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| random_get_entropy
...
...
3.3 修复版补丁安装
在 \(stackexchange\) 论坛上找到了关于17.5.1在linux内核6.8.0下补丁仍出现问题的帖子,给出了修复版补丁的github地址
https://github.com/mkubecek/vmware-host-modules/tree/workstation-17.5.1
通过这个补丁的下载,以及之前提到的编译方法,直接就可以安装
启动vmware 成功!
4. 补充
- [2024.09.25] 如果通过修复版补丁采用
make和make install之后,启动vmware成功 但是报错
Install VMware : Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon' is loaded
请通过方法二,将指定文件移动然后通过vmware的配置工具进行安装,之后就可以成功启动虚拟机了
相关链接
- How to fix VMware unable to install all modules vmmon vmnet:https://dimitar.me/how-to-fix-vmware-unable-to-install-all-modules-vmmon-vmnet/
- Vmware Unable to install all modules,不能够编译安装vmmon和vmnet:https://blog.csdn.net/pannubi/article/details/107885466
- 如何将 VMware 工作站/播放器与最新的 Linux 内核一起使用:https://pyopyopyo.hatenablog.com/entry/2023/01/15/214027
- VMware vmmon & vmnet 17.5.1和Linux内核6.8.0无法编译:https://unix.stackexchange.com/questions/773558/vmware-vmmon-vmnet-17-5-1-and-linux-kernel-6-8-0-wont-compile
- 针对最新内核构建 VMware(Player 和 Workstation)主机模块所需的补丁:https://github.com/mkubecek/vmware-host-modules

浙公网安备 33010602011771号