openEuler 20.03 SP1 安装 VirtualBox增强功能

本文档详细介绍了在openEuler20.03SP1中安装VirtualBox增强功能时遇到的编译错误及解决方案。问题在于内核版本和VBoxAdditions不兼容,通过修改源代码使得access_ok函数调用适应内核,最终成功安装。

在VirtualBox中安装openEuler这里不再阐述,网上已经由许多篇文章详细进行了讲解,这篇文章里主要讲一讲openEuler 20.03 SP1 安装 VirtualBox增强功能遇到的坑和解决方案。

  1. 安装完成openEuler 20.03 SP1后,登录openEuler(我这里使用root用户登录,如果你是普通用户可能下面执行命令时需要sudo),然后点击设备 -> 安装增强功能...将最新版增强功能安装光盘装载系统中。
  2. 装载光盘:
mkdir -p /run/media/openeuler/VBoxAdditions
mount /dev/sr0 /run/media/openeuler/VBoxAdditions
cd /run/media/openeuler/VBoxAdditions


3. 直接安装可能会提示解压错误,因为最小安装的情况下系统缺少tar解压程序,这里安装一下:

dnf update
dnf install tar


4. 运行安装:

./VBoxLinuxAdditions.run


可以看到报错了,让我们看一看是什么错误:

cat /var/log/vboxadd-setup.log


可以看出是编译错误,查阅资料得知,access_ok函数在Linux内核5版本之后由传三个参数被改为了传两个参数,VBoxAdditions根据Linux版本号是4.x.x还是5.x.x来进行判断传三个还是两个参数,而openEuler 20.03 SP1使用的内核版本号为4,却已经合并了Linux内核5.x.x版本之后的补丁,也就是access_ok函数只要两个参数,因而我们只需要更改VBoxAdditions源代码,让它在4.x.x时也使用两个参数调用access_ok就行啦!

  1. 修改VBoxAdditions源代码(注意根据VBoxAdditions版本号更改对应路径):
cd /opt/VBoxGuestAdditions-6.1.22/src/vboxguest-6.1.22/vboxguest/r0drv/linux
vi memuserkernel-r0drv-linux.c

使用i进行编辑,将以下两处RTLNX_VER_MIN(5,0,0)改为RTLNX_VER_MIN(4,0,0)即可啦:


然后按下ESC键,:wq保存并退出。

随后还有一个文件中需要更改该函数问题,继续执行命令:

cd ../../../vboxsf
vi regops.c


然后按下ESC键,:wq保存并退出。

  1. 最终继续安装:
/sbin/rcvboxadd setup


安装完成!

重启系统即可以用到VirtualBox的增强功能啦!

### openEuler 20.03 LTS VMTools 使用指南 #### 安装准备 对于希望在虚拟环境中运行 openEuler 20.03 LTS 的用户来说,安装并配置合适的虚拟机工具(VMTools)可以显著提高用户体验和效率。然而,在特定版本的操作系统上找到兼容的 VMTools 可能是一个挑战。 由于官方文档并未直接提及适用于 openEuler 20.03 LTS 的专用 VMTools[^1],推荐的做法是从虚拟化平台提供商处获取对应的 Guest Tools 或者类似的增强功能套件。例如 VMware 提供的 VMware Tools 和 VirtualBox 提供的 Guest Additions 都能够提供类似的功能集,包括但不限于: - 时间同步 - 显示分辨率调整 - 剪贴板双向粘贴 #### 获取途径 通常这些工具可以通过所使用的 Hypervisor 平台随附光盘镜像文件获得,或者是从其官方网站下载最新版本。确保选择与主机环境相匹配的发行版以及架构类型(x86_64)。 #### 安装过程概述 假设选择了 VMware Workstation Pro 作为虚拟化解决方案,则可通过如下方式完成 VMware Tools 的部署: 1. 启动已安装openEuler 20.03 LTS 的虚拟机实例; 2. 转到顶部菜单栏中的 "Virtual Machine" -> "Install VMware Tools..." 来挂载 ISO 镜像; 3. 创建临时目录用于解压 tarball 文件 `mkdir /tmp/vmware-tools` ,并将其中的内容复制进去; 4. 执行脚本启动自动化的设置流程 `/bin/bash ./run.sh`; ```bash # 示例命令序列 sudo mkdir /mnt/cdrom && sudo mount /dev/cdrom /mnt/cdrom/ cd /tmp/ tar zxf /mnt/cdrom/VMwareTools*.tar.gz -C . /bin/bash vmware-tools-distrib/vmware-install.pl -d ``` 请注意上述路径可能因具体产品而异,请参照实际提示操作。 #### 注意事项 考虑到不同 hypervisors 对应不同的 guest additions 实现细节,务必查阅对应厂商的技术手册以获取最准确指导说明。此外,某些高级特性依赖于内核模块的支持,这要求目标 Linux 发行版拥有完整的构建链路以便编译必要的驱动程序。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值