1. 在 Fedora 41/40/39 上安装 VMware Workstation Pro

1.1 下载 VMware Workstation Pro

您需要 Broadcom 帐户,然后转到[VMWare Workstation Pro 下载页面](https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware Workstation Pro&freeDownloads=true)并下载最新版本,目前为 17.6.3。

1.2 检查 sha256sum

1
sha256sum ~/Downloads/VMware-Workstation-Full-17.6.3-24583834.x86_64.bundle

1.3 使 VMware-Workstation-Full-17.6.1-24319023.x86_64.bundle 可执行

1
chmod +x ~/Downloads/VMware-Workstation-Full-17.6.3-24583834.x86_64.bundle

1.4 更改 root 用户

1
2
3
su -
## OR ##
sudo -i

1.5 确保您的系统是最新的

1.5.1 全面更新您的系统

1
2
## Fedora 41/40/39 ##
dnf update

1.5.2 内核更新后重启系统:

1
reboot

1.6 安装所需的依赖项

1
2
## Fedora 41/40/39 ##
dnf install kernel-devel kernel-headers gcc make patch wget

1.7 运行 VMware 安装程序

1
/home/<username>/Downloads/VMware-Workstation-Full-17.6.3-24583834.x86_64.bundle

1.8 构建 VMware 模块

1
/usr/bin/vmware-modconfig --console --install-all

2. 运行 VMware

2.1 启动 VMware

从菜单:从菜单启动 VMware

或者

从命令行:

1
vmware

2.2 接受 VMware 通用条款

接受 VMware 通用条款

2.3 接受 VMware 许可证

接受 VMware 许可证

2.4 启动时检查 VMware 更新

启动时检查 VMware 更新

2.5 VMware 的客户体验改进计划(“CEIP”)

VMware 的客户体验改进计划(“CEIP”)

2.6 VMware 个人使用或许可证密钥

VMware 个人使用或许可证密钥

2.7 身份验证

认证

2.8 在 Fedora 40 上运行的 VMware Workstation Pro 17.6.0

在 Fedora 40 上运行的 VMware Workstation Pro 17.6.0

在 Fedora 42(kernel 6.15.7)上安装 VMware 模块失败的完整编译日志。问题的根因是 VMware 自带的 vmmon/vmnet 源码与新内核不兼容,导致缺失头文件(如 driver-config.h、vm_basic_defs.h 等)和 objtool 的新校验不通过。下面给出直接可执行的修复步骤。

一次性修复(推荐,使用社区补丁源码)

  • 这个方法会用已适配新内核的补丁源码,覆盖 /usr/lib/vmware/modules/source 的 vmmon.tar/vmnet.tar,然后重新构建。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 1) 依赖
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r) elfutils-libelf-devel dkms git tar \
gsettings-desktop-schemas dconf # 修复 GSettings 警告

# 2) 确认 VMware 版本(用来选分支)
vmware -v
# 输出例:VMware Workstation 17.6.2 build-xxxxxxx

# 3) 获取匹配分支并编译安装模块(将分支名替换为你的实际版本)
git clone https://github.com/mkubecek/vmware-host-modules.git
cd vmware-host-modules
git branch -r | grep workstation- # 查看可用分支
git checkout workstation-17.6.2 # 例如:你的 VMware 是 17.6.2 就用这个分支
make -j"$(nproc)"
sudo make install

# 4) 重新构建并加载模块
sudo vmware-modconfig --console --install-all
sudo modprobe -r vmmon vmnet 2>/dev/null || true
sudo modprobe vmmon
sudo modprobe vmnet
  • 如果 Secure Boot 开启,加载时可能报 “Required key not available”。需要签名模块或临时关闭 Secure Boot。简单签名流程(如需):
1
2
3
4
5
6
7
8
9
10
11
12
sudo mokutil --sb-state
# 若 Enabled:
sudo mkdir -p /root/mok && cd /root/mok
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -out MOK.pem -nodes -days 36500 -subj "/CN=VMware Modules/"
openssl x509 -outform DER -in MOK.pem -out MOK.der
sudo mokutil --import MOK.der # 设置一次性密码,重启进 MOK 管理界面注册
sudo reboot

# 重启注册完成后签名并加载
sudo kmodsign sha256 /root/mok/MOK.priv /root/mok/MOK.pem /lib/modules/$(uname -r)/misc/vmmon.ko
sudo kmodsign sha256 /root/mok/MOK.priv /root/mok/MOK.pem /lib/modules/$(uname -r)/misc/vmnet.ko
sudo modprobe vmmon vmnet

说明与常见坑

  • 缺失的 driver-config.h 等不是内核头文件,而是 VMware 模块源码中的生成/包含文件;在新内核上,官方源码未适配时会出现这类错误。上面的补丁仓库已修复。
  • objtool: init_module(): Magic init_module() function name is deprecated 是内核接口变化导致,补丁仓库同样已处理。
  • “GLib does not have GSettings support.” 警告可通过安装 gsettings-desktop-schemas 和 dconf 消除(上面已包含)。
  • 确保正在运行的内核与已安装的 kernel-devel-$(uname -r) 完全一致;如不一致,更新并重启:
1
2
sudo dnf upgrade -y kernel kernel-devel
sudo reboot
  • 若依然失败,检查并清理旧源码,确认补丁已覆盖:
1
2
ls -lh /usr/lib/vmware/modules/source
# 应看到新的 vmmon.tar 和 vmnet.tar(时间戳为刚安装),必要时重新运行 make install 与 vmware-modconfig