在ubuntu 24.04 上安装vmware workstation 17.5.1

ops/2024/9/24 6:29:28/

ubuntu安装在新组装的i9 14900机器上,用来学习笨叔的ARM64体系结构编程,也熟悉Linux的用法。但有时候写文档总是不方便,还是需要window来用。因此想在ubuntu 24.04上安装Linux版本的vmware worksation 17.5.1以虚拟机的方式安装windows 11。其结果是在启动vmware时报告"Cannot open /dev/mvmon: No such file or directory. Please make sure that the kernel module 'vmmon' is loaded"。也就是提示vmmon.ko 没有安装。由于ubuntu 24.04刚出没多久,vmware公司并没有发布可以支持24.04的内核的vmware 版本,但挺不住有牛人啊,他们修改了vmmon和vmnet的驱动源代码以支持24.04。本以为这就结束了,但是本机bios有secure boot啊,内核模块需要签名,但是怎么签都不成功,知道试了不同的参数(noenc)才算成功,弄到了凌晨2:30啊,这里记录下来以方便后来者。

安装编译内核模块依赖

sudo apt install net-tools libncurses-dev libssl-dev build-essential openssl openssl gcc-aarch64-linux-gnu gdb-multiarch git bison flex bc vim universal-ctags cscope cmake python3-dev python3-venv mokutil

下载vmmon和vmnet内核模块源代码

git clone https://github.com/mkubecek/vmware-host-modules.git
cd vmware-host-modules
git checkout -b workstation-17.5.1 remotes/origin/workstation-17.5.1make
sudo make install

验证vmmon.ko和vmnet.ko已经安装

$ modinfo -n vmnet
/lib/modules/6.8.0-31-generic/misc/vmnet.ko
modinfo -n vmmon
/lib/modules/6.8.0-31-generic/misc/vmmon.ko

签名vmmon.ko和vmnet.ko

生成密钥对

openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -noenc -days 36500 -subj "/CN=VMware/"

其中noenc非常关键,没有这个,运行下面的sign-file时总是报错。

签名

如果modinfo vmmon不能显示vmmon.ko则下面的命令直接使用绝对路径,替换掉$(modinfo -n vmmon),绝对路径为/lib/modules/6.8.0-31-generic/misc/vmmon.ko 和/lib/modules/6.8.0-31-generic/misc/vmnet.ko

sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)

将公钥导入系统的 MOK 列表

下面的命令会提示输入密码,请记住这个密码,系统重启时需要输入这个密码。

sudo mokutil --import MOK.der

重启系统,用于导入MOK

bios会提示是否Enroll MOK,选择它

然后输入密码

再次启动vmware,vmware启动成功!


http://www.ppmy.cn/ops/22829.html

相关文章

秋招后端开发面试题 - Java多线程(下)

目录 Java多线程前言面试题synchronized?作用?synchronized 怎么使用?构造方法可以用 synchronized 修饰吗?synchronized 底层原理了解吗?除了原子性,synchronized 可见性,有序性,可…

开发使用Git的实践操作

程序员在使用Git进行代码管理时,涉及到许多常用的Git命令和功能,以下是详细的解释和分析: 程序员常用的Git命令 git init - 初始化一个新的Git仓库。这是开始使用Git跟踪项目的第一步。git clone - 复制一个远程仓库到本地,这样…

RustGUI学习(iced)之小部件(一):如何使用按钮和文本标签部件

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述…

数据分析:甲基化分析-从DNA methylation的IDAT文件到CpG site的Beta values

介绍 DNA Methylation和疾病的发生发展存在密切相关,它一般通过CH3替换碱基5‘碳的H原子,进而调控基因的转录。常用的DNA methylation是Illumina Infinium methylation arrays,该芯片有450K和850K(也即是EPIC)。 该脚…

使用FPGA发送一个经过曼彻斯特编码的伪随机序列

介绍 这几天突然就不知道要使用FPGA实现什么样的功能了,然后就跑去学习数电了,学的也是晕晕的。正好之前写了一个使用FPGA发送伪随机序列的代码,然后因为需要使用曼彻斯特编码,所以又加了一个模块吧,使得最后输出的波形经过曼彻斯特编码。 曼彻斯特编码 首先,曼彻斯特编…

电脑开机后卡在开机LOGO画面如何排查处理

当电脑开机后长时间停滞在开机LOGO画面,无法继续进入操作系统,这一现象常令用户困扰不已。本文将深入探讨导致此类问题的多种可能原因,并提供相应的解决方法,帮助你有效地诊断和排除故障。 硬件故障或接触不良 1. 硬盘问题:硬盘是系统启动的关键组件,其故障或数据线接触…

蓝队hvv面经

sql 报错函数,宽字节注入原理? sleep被禁用了怎么办? 反序列漏洞了解过? log4j漏洞? 设备使用过? 默安蜜罐设备主要抓什么特征? 奇安信天眼筛选ip? 应急响应(win/linux&a…

《数据结构》C语言版 (清华严蔚敏考研版) 第一章 绪论 知识梳理与总结——重点深入掌握理解时间复杂计算

​ 李仙桎:个人主页 🔥 个人专栏:《数据结构与算法》 ⛺️生活的理想,就是为了理想的生活! ​ ⛺️前言:各位铁汁们好啊!!!,今天开始正式学习数据结构相关的内容&#…