我在 Windows 10 主机上的 VirtualBox 5.1.14 中以客户机身份运行 Fedora 25。我已经安装了 xorg-x11-server-Xorg 和 VBox 客户机附加组件(使用 VirtualBox 本身提供的 ISO)。在使用 强制使用正确的内核头版本后,客户机附加组件安装正常dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
。VBGA 安装日志中没有错误。dmesg 显示 vboxvideo 已加载,systemctl 显示 vboxadd-service 正在运行,vboxadd-x11 处于活动/退出状态。VM 设置中启用了 3D 加速。
但是,当我尝试启动 X 时,出现错误(EE) Failed to load module "vboxvideo" (module does not exist, 0)
。我重启了好几次,重新安装了 VBGA 和 X 好几次,但就是无法工作。很多次搜索都找到了这个问题的许多实例,但大多数似乎都围绕着以下两个问题:a) 从软件包而不是附带的 ISO 安装 VBGA(但我使用了 ISO);b) VBGA 无法正确安装(但一旦我有正确的标题,它就会安装良好,并且似乎正在运行);或者 c) 坏的 /etc/X11/xorg.conf(他们建议删除,但我没有)。其余的问题适用于比我正在使用的 VBox 旧得多的版本,并通过简单的 VBox 更新进行了修复。
为何 X 找不到 vboxvideo 驱动程序?我该如何解决?
答案1
我创建了一个帐户,只是因为我遇到了同样的问题,并且在此过程中我发现了一些可能对其他人有帮助的事情。
首先,我在 VirtualBox 4.xx 中运行 CentOS 7 VM,并且视频驱动程序被识别,我的客户添加功能几乎完全正常工作(自动调整大小仍然有故障,但我现在可以忍受)。
在 CentOS 7 VM 中获取视频功能(可以修改以应用于其他 Linux 发行版):
1. 下载并安装兼容版本的 VirtualBox Guest Additions
A. 下载一个比当前安装的 VirtualBox 主机程序更新或专门为当前安装的 VirtualBox 主机程序制作的版本
搜索 VirtualBox 下载存储库:https://download.virtualbox.org/virtualbox/
选择文件夹后,查找“VBoxGuestAdditions x.xx.iso”文件并下载
B. 安装 Guest Additions 依赖项
启动虚拟机并将下载的 .iso 文件作为 CD/DVD 设备挂载到虚拟机设备窗格中。
安装 Guest Additions 需要满足一些先决条件,可通过操作系统的本机软件存储库程序获得。
对于基于 RHEL 的 Linux,请将以下命令与“yum”结合使用:
yum update
yum install epel-release
yum install gcc binutils make patch libgomp glibc-headers glibc-devel kernel kernel-devel kernel-headers
yum install dkms
确保在安装命令中输入“yes”或使用“-y”选项标志
C. 安装 Guest Additions
打开终端并使用“cd”命令导航到 CD/DVD 文件夹的根目录。
运行以下命令来启动安装程序:
sudo sh VBoxLinuxAdditions.run
如果构建主 Guest Additions 内核模块失败,请确保所有必备组件均已正确安装。否则,请重新安装它们并尝试再次运行安装程序。
2. 获取、编译和安装“vboxvideo”驱动程序
A. 下载编译源文件
以下链接中的文件是“vboxvideo”驱动程序源文件的压缩包:
https://cgit.freedesktop.org/xorg/driver/xf86-video-vbox/snapshot/xf86-video-vbox-ab07f97612d045d8c0a376174b39a294d028fef2.tar.xz
B. 编译并安装“vboxvideo”驱动程序
解压下载的文件并将终端导航到文件夹“xf86-video-vbox-...”
在终端中运行以下命令:
sudo sh autogen.sh --prefix=/usr --with-xorg-module-dir=/usr/lib64/xorg/modules/drivers
sudo make && sudo make install
这些命令将两个文件“vboxvideo_drv.so”和“vboxvideo_drv.la”安装到您的 Xorg 模块目录中。注意:内核模块“vboxvideo.ko”随 Guest Additions 一起安装,无需为此进行调整。
3. 设置 X 服务器配置
A. 创建/下载 Xorg.conf 文件
VirtualBox Guest Additions 设置为在安装结束时生成自己的 Xorg.conf 文件。在某些版本中,此过程存在错误。下面给出了一个可用的 Xorg.conf 文件的链接。
https://drive.google.com/file/d/1y_f5od59sv3eeHGu01PorpvlnBfvum0M/view
B. 插入“Xorg配置文件“文件使用
下载或复制后,将文件复制到 X11 文件夹。
sudo cp xorg.conf/etc/X11/
C. 结案程序
从客户操作系统内部重新启动虚拟机并允许其完全启动。现在应该有视频和其他客户功能。
要验证这一点,请登录操作系统并打开“设置”菜单的“显示”部分。
显示器标签应显示“VBX”,单击该标签即可调整屏幕分辨率。
补充笔记:
一、“开机黑屏/屏幕冻结”
如果完成指南后启动过程挂起,请同时按“Alt”和“Fx”键(其中 x 是 2-6 之间的数字)(即“Alt-F2”)切换到不同的终端窗口。
这将通过 CLI 界面打开用户登录。
登录终端并使用以下命令检查“韓國“ 日志:
sudo less /var/log/Xorg.0.log
查找有关“视讯宝“ 设备。
- 对于任何“未找到”问题:
验证步骤 2b 中编译的“vboxvideo_drv.so”文件是否位于正确的文件夹中。
- 对于任何“不兼容版本”问题:
验证步骤 2b 中编译的正确的“vboxvideo_drv.so”文件是否与 CentOS 7 上可用的最新版本的 X 服务器兼容。(1.19.3 - Ver(23))
使用以下命令可以找到 X 服务器的当前版本:
X -version
- 对于任何有关语法错误的问题,“Xorg配置文件“:
验证“Xorg配置文件步骤 3A 中的“文件”与步骤 3B 中的“/etc/X11/“客户操作系统上的文件夹。
二、“该进程背后的理由”
As it turns out, the VirtualBox Guest Additions has driver files for the X Server up to X 1.18 Ver(20) included natively. Oddly enough, these files should be included in the latest version of the Guest Additions for the latest stable release of the VirtualBox host client.
这些驱动程序文件可从 OpenIndiana 的存储库获取,该存储库是他们自己的基于 Solaris 的操作系统的开源版本,仍可在基于 RHEL 的 Linux 中使用。其中包括一些参考和进一步支持的链接。
https://pkg.openindiana.org/hipster/manifest/0/x11%2Fserver%2Fxorg%2Fdriver%2Fxorg-video-vboxvideo%401.0.1%2C5.11-2018.0.0.1%3A20180212T053651Z
https://gist.github.com/yvt/a1fd215609c0f1e5a85c7562103f3e65
https://www.openindiana.org/2017/11/11/virtualbox-video-driver-compatible-with-xorg-1-19-5-available/
答案2
如果您使用的是 Xorg 服务器 1.19.*,那么 VBox 客户端添加 5.1.14 要么不支持 Xorg 1.19,要么它认为 Xorg 1.19.* 不需要 vboxvideo*.so。以下是我发现的...
5.1.14 ISO 创建了 /opt/VBoxGuestAdditions-5.1.14/lib/VBoxGuestAdditions,其中包含许多 vboxvideo_drv_*.so 文件(其中 '*' 是 2 位或 3 位数字)。此外,/lib/VBoxGuestAdditions、/lib64/VBoxGuestAdditions、/usr/lib/VBoxGuestAdditions 和 /usr/lib64/VBoxGuestAdditions 中都有指向此目录的符号链接。有一个 /opt/VBoxGuestAdditions-5.1.14/lib/VBoxGuestAdditions/vobxadd-x11 脚本,该脚本仅支持到 Xorg 版本 1.18.*,编号最高的 vboxvideo_drv 文件是 vboxvideo_drv_118.so。
仅供参考,我有 Xorg 服务器 1.19.3,它与 OP 的系统一样失败。
2017 年 7 月 22 日:我使用 vboxvideo_drv_118.so 和 Xorg 服务器 1.19.3 进行了测试。它报告加载 vboxvideo,然后失败并显示“(EE) vboxvideo:模块 ABI 主版本 (20) 与服务器版本 (23) 不匹配”,然后卸载了 vboxvideo。因此 VirtualBox 5.1.14 肯定不提供与 Xorg 1.19 兼容的 vboxvideo*.so。
我还发现https://bugs.archlinux.org/task/52704其中提到 fbdev 应该是一个后备,但最近被补丁 3 和 4 破坏了。
有最新 VBox 的人可以检查一下他们的 vboxadd-x11 脚本吗?