VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题

环境信息

项目 版本
操作系统 Ubuntu 24.04.3 LTS (Noble Numbat)
内核版本 6.17.0-29-generic
VMware Workstation 26.0.0 (Build 25388281)
CPU 13th Gen Intel Core i7-1360P
Secure Boot 已启用

问题现象

  1. 安装完成后首次启动 ,弹出 "VMware Kernel Module Updater" 窗口,提示 GCC 13.3.0 未找到

  2. 安装 GCC 和内核头文件后,模块编译仍失败,日志显示:

    复制代码
    No matching PBM set was found for kernel "6.17.0-29-generic"
    Virtual machine monitor      failed
    Virtual ethernet             failed
  3. 根本原因:VMware 26.0.0 原生不支持 Linux 6.17 内核,需要打兼容性补丁


解决步骤

1. 安装基础依赖

bash 复制代码
sudo apt update
sudo apt install -y gcc-13 g++-13 build-essential \
    linux-headers-$(uname -r) git dkms

2. 下载自动补丁工具

bash 复制代码
cd ~/下载
git clone https://github.com/Hyphaed/vmware-vmmon-vmnet-linux-6.17.x.git vmware-patcher
cd vmware-patcher

3. 运行自动补丁脚本

bash 复制代码
sudo python3 vmware_module_builder.py
  • 选择编译模式:2) Optimized(针对 CPU 优化)
  • 脚本自动完成:
    • 备份原始 VMware 源码
    • 应用 6.17 内核兼容性补丁(objtool、netif_napi_add、do_gettimeofday 等)
    • 编译 vmmonvmnet 模块
    • 安装模块并创建开机自启服务

4. 处理 Secure Boot 模块签名

由于 Secure Boot 已启用,编译后的未签名模块被拒绝加载:

复制代码
modprobe: ERROR: could not insert 'vmmon': Key was rejected by service
4.1 创建 MOK 密钥
bash 复制代码
# 创建密钥对
sudo mkdir -p /var/lib/shim-signed/mok
cd /var/lib/shim-signed/mok
sudo openssl req -new -x509 -newkey rsa:2048 \
    -keyout MOK.priv -outform DER -out MOK.der \
    -days 36500 -nodes \
    -subj "/CN=VMware Module Signing Key/"

# 导入 Secure Boot(设置密码后重启注册)
sudo mokutil --import MOK.der
sudo reboot

重启后在蓝色 MOK 界面:Enroll MOK → Continue → Yes → 输入密码 → Reboot

4.2 签名模块
bash 复制代码
sudo /usr/src/linux-headers-6.17.0-29-generic/scripts/sign-file sha256 \
    /var/lib/shim-signed/mok/MOK.priv \
    /var/lib/shim-signed/mok/MOK.der \
    /lib/modules/6.17.0-29-generic/misc/vmmon.ko

sudo /usr/src/linux-headers-6.17.0-29-generic/scripts/sign-file sha256 \
    /var/lib/shim-signed/mok/MOK.priv \
    /var/lib/shim-signed/mok/MOK.der \
    /lib/modules/6.17.0-29-generic/misc/vmnet.ko

5. 启动服务

bash 复制代码
sudo modprobe vmmon
sudo modprobe vmnet
sudo systemctl restart vmware.service

验证结果

bash 复制代码
$ lsmod | grep -E "vmmon|vmnet|vmw_vmci"
vmnet                  77824  13
vmmon                 188416  0
vmw_vmci              106496  1 vmw_vsock_vmci_transport
bash 复制代码
$ sudo systemctl status vmware.service
● vmware.service - VMware Workstation Services
     Active: active (running)

VMware Workstation 正常运行,虚拟机可以启动。


后续维护

场景 操作
内核/VMware 更新后模块失效 重新运行补丁脚本 + 用已有 MOK 密钥重新签名
不想每次签名 进 BIOS 禁用 Secure Boot
模块已签名 + MOK 已注册 重启后自动加载,无需额外操作

关键要点

要点 说明
GCC 只是第一步 安装 GCC 后,VMware 26.0.0 对 6.17 内核的原生不支持才是核心问题
社区补丁工具很关键 vmware_module_builder.py 自动处理了所有 6.17 兼容性补丁
Secure Boot 是最后障碍 模块编译成功后,签名是加载的必要条件
MOK 注册只需一次 密钥注册到 Secure Boot 后,后续只需重新签名模块,无需重复注册
相关推荐
.柒宇.2 小时前
ELK日志分析系统实战指南:Elasticsearch搭建与入门(8.18.8版本)
运维·elk·elasticsearch·logback·日志系统
拾光Ծ3 小时前
【Linux网络】网络通信实战:UDP & TCP Socket编程实现Echo Server
linux·网络·网络协议·tcp/ip·udp·线程池
Linux-187413 小时前
分布式链路追踪系统之二进制安装skywalking
elasticsearch·云原生·skywalking·分布式链路追踪系统·应用程序性能监控
一叶龙洲14 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
阿里云大数据AI技术16 小时前
阿里云 Elasticsearch 日志采集与加工服务:让日志链路少一串组件,多一份稳定
人工智能·elasticsearch
敖行客 Allthinker16 小时前
Parallels Ubuntu虚拟机项目如何让手机访问?完整解决方案
linux·运维·ubuntu
keyipatience17 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
j7~17 小时前
【Linux】二十二.《Linux 信号机制完全指南:表示、捕捉与处理》
linux·信号处理·volatile·可入重函数·保存信号
heimeiyingwang18 小时前
【架构实战】可观测性三支柱:日志、指标、链路的融合
elasticsearch·架构·kubernetes
观山岳五楼18 小时前
Ubuntu 24 怎么使用Ubuntu 20 的镜像源
linux·运维·ubuntu