我正在尝试将 virtualbox 来宾添加正确安装到来宾 Linux Debian 虚拟机。问题是 1920x1080 的视频性能很糟糕。主机是 macOS core i5 和 radeon R9 M395。
我已经安装了所有 virtualbox-guest 软件包:
virtualbox-guest-x11 virtualbox-guest-dkms virtualbox-guest-addittions
查看 /var/log/Xorg.0.log 后,似乎 vboxvideo 模块未加载。
$ cat /var/log/Xorg.0.log
...
[ 15.387] (II) LoadModule: "vboxvideo"
[ 15.388] (WW) Warning, couldn't open module vboxvideo
[ 15.388] (II) UnloadModule: "vboxvideo"
[ 15.388] (II) Unloading vboxvideo
[ 15.388] (EE) Failed to load module "vboxvideo" (module does not exist, 0)
...
$ dkms stat
virtualbox-guest, 5.1.12, 4.8.0-2-amd64, x86_64: installed
$ uname -r
4.8.0-2-amd64
$ lsmod| grep vbox
vboxsf 49152 0
vboxvideo 49152 2
vboxguest 282624 6 vboxsf,vboxvideo
ttm 98304 1 vboxvideo
drm_kms_helper 155648 1 vboxvideo
drm 360448 5 vboxvideo,ttm,drm_kms_helper
发生了什么?
我在哪里可以找到 vboxvideo 模块?文件名是什么?
接下来我该看哪里?
答案1
vbox 视频模块必须位于访客中。您必须在 vbox 控制面板中安装附加 ISO,安装 CD 后,该面板将在启动时显示 iso cd 内容,然后从 iso 内容运行 vbox 附加安装程序,该安装程序将安装所有必需的驱动程序。一旦在来宾中安装了驱动程序,vbox 就可以正常运行了。我的 debian 虚拟机从不使用 debian 软件包,我直接使用 iso 安装程序。
从您的问题来看,主机中的内容和访客中的内容有点不清楚。因此,我将分两部分来处理这个问题,第一部分假设没有安装任何来宾添加项,或者安装不正确,第二部分是如何实际启用可调整大小的屏幕。首先跳到最后一部分,如果您的 debian 来宾软件包一切正常并且没有问题,请查找启用屏幕调整大小选项是否为非灰色,如果是,则您的来宾模块没问题,如果不是,请继续执行第一步并正确安装模块。
顺便说一句,但也可能是您问题的实际答案,我在此 vbox 安装上的 /var/log/Xorg.0.log 还表示 vboxvideo 失败/卸载,因为未安装模块,但是当我使用 lsmod 检查时是的,并且在我更正 vbox 驱动程序问题后我的屏幕显示分辨率证明了这一点,因此 Xorg.0.log 数据可能是 xorg bug,与您的问题无关。然而,Xorg.0.log 说实际的驱动程序正在“模式设置”,即使它没有加载,所以我怀疑 Xorg/vboxvideo 中存在一个问题,使 xorg 认为 vboxvideo 驱动程序在可用时不可用。您只需在引导安装上使用 lsmod 即可看到这一点。您还可以查看高级屏幕调整大小功能是否有效或已启用,如果有效,则驱动程序正在工作。
安装来宾添加:
我从不在 guest 中使用 debian 软件包,因为我更喜欢直接从 Oracle 安装 vbox,并且 guestadditions 同样直接来自 Oracle,以匹配所有版本,但如果您使用 debian 软件包,我相信它实际上只是 virtualbox - guest-x11、virtualbox-guest-utils(尽管您的 xorg 日志输出表明实际上失败了)。另外,如果您直接使用来自 Oracle 的内容,则无需了解每个发行版的 vbox 来宾软件包的详细信息,只需运行来宾添加安装程序 .run 软件包即可。我已经使用这个方法大约10年了,从来没有遇到过任何问题。
如前所述,我从不使用来宾发行版软件包,所以我不能说它们为什么会失败,也不能调试它们的问题(这就是我使用直接安装的原因,除非存在内核支持问题,否则它总是可靠的) ,但这也会影响 Debian 软件包)。基本上,所有 debian 软件包都是 guestadditions 安装程序首先安装的内容的包装器,这实际上是所有这些软件包所做的,这意味着另一个可能的错误或失败点。
打开主机 vbox 主窗口,选择您的虚拟机,然后选择设置,然后确保将 iso 安装为光驱。
然后导航到 iso 所在的位置。在 Debian Stretch 主机中,使用 vbox 5.1,该 iso 位于(使用locate或类似工具查找该文件):
/usr/share/virtualbox/VBoxGuestAdditions.iso
挂载此 iso,启动 guest 虚拟机,然后在 guest 虚拟机中挂载 cd 映像。
# mount /dev/cdrom /media
ls -w 1 /media
32Bit
64Bit
AUTORUN.INF
autorun.sh
...
VBoxLinuxAdditions.run
然后运行它:
#/media/VBoxLinuxAdditions.run
这将运行安装程序,并将为主机系统和来宾安装正确的来宾添加项。如有必要,请重新启动访客。
主机 vbox 版本应与来宾附加 ISO 内容匹配,这意味着如果您直接在主机中安装 vbox 以及来宾附加下载,您就知道这是正确的版本,并且如果您还从直接iso文件,你知道那些是对的。我正在更新我的 vbox 来检查这一点,因为我不再使用它了。
安装构建内核模块所需的包:
注意:在安装来宾添加时,您必须:安装 gcc 和内核头文件,这就是我遇到的问题。如果您在来宾添加安装上看到 vboxadd 安装失败消息,这就是原因。
因此,安装 linux-image、linux-headers、gcc,然后 make、重新启动,然后运行(这实际上会在内核重新安装后自行运行):
service vboxadd setup
再次,或者更好的是,在开始之前安装 kernel/ headers/gcc/make,然后 vbox 来宾添加安装程序将使其全部正确运行,并且将安装驱动程序,启用调整大小开关将处于活动状态,并且您可以设置客人可以选择任何您想要的尺寸。实际上,一旦我安装了最新的内核映像/标头包,vboxadd 就会自动运行,因此一旦我重新启动,我就可以访问所有以前呈灰色的控件、全分辨率、复制粘贴等。
正确安装 GuestAdditions 模块后,启用可调整大小的客户机窗口
最后两件事可能是您一直需要的,但总体答案应该可以帮助许多最初未能正确安装来宾添加项的人,或者像我一样忘记安装或检查 gcc、make 的人,并且还安装了内核头文件。
有一些细节我不确定,例如设置所需的屏幕尺寸,因为除了在启动时调整屏幕大小之外我从未使用过该功能,因此以下是如何做到这一点。
https://forums.virtualbox.org/viewtopic.php?f=2&t=68966vbox 论坛主题涵盖了有关获得更大分辨率的具体问题。
First, make sure you are not in fullscreen mode: i.e. switch to your windowed 1280x1024 mode (or whatever windowed mode suits you).
IMPORTANT. Make sure that View|Auto resize guest display is enabled (checked).
Make sure that the Guest Additions are installed, not merely having the GAs CD mounted. If they are installed then there should be an icon on the guest taskbar which will tell you the GAs version and status.
Carefully drag the bottom edge of the VM window to reduce the screen height. You are trying to achieve a 16:9 ratio, so with a 1280 display width you want a display height of 720, exactly.
Shut down the VM completely (not suspend), then restart it. We want windows to start up, seeing a 16:9 ratio while booting up. This should make it happy to accept other 16:9 ratios.
我最初找不到自动调整大小选项,它呈灰色,处于非活动状态,直到我真正构建了 vbox 模块。这是来宾容器顶部菜单“视图”中的一个选项,但我的选项呈灰色,因为在我更正丢失的内核头/gcc/make 问题之前,该模块实际上并未构建。
假设您按照上述方法安装了模块,然后重新启动。系统完全启动后(即在登录屏幕上),您将在访客容器窗口中看到选项:查看 -> 自动调整访客显示大小,不再呈灰色。启用它。
然后进入:视图->虚拟屏幕1->选择您想要的显示尺寸。
就是这样:
inxi -bxxx
System: Host: vm-openbox Kernel: 3.13.0-107-generic i686 (32 bit gcc: 4.8.4)
Desktop: Openbox 3.5.2 dm: lightdm Distro: Ubuntu Trusty Tahr (development branch)
Machine: Device: virtualbox System: innotek product: VirtualBox v: 1.2 Chassis: Oracle type: 1
Mobo: Oracle model: VirtualBox v: 1.2 BIOS: innotek v: VirtualBox date: 12/01/2006
CPU: Single core AMD Athlon 64 X2 5000+ (-UP-) speed: 2594 MHz (max)
Graphics: Card: InnoTek Systemberatung VirtualBox Graphics Adapter bus-ID: 00:02.0 chip-ID: 80ee:beef
Display Server: X.Org 1.14.5 drivers: (unloaded: fbdev,vesa) Resolution: [email protected]
GLX Renderer: Gallium 0.4 on llvmpipe (LLVM 3.3, 128 bits)
GLX Version: 2.1 Mesa 10.0.0 Direct Rendering: Yes
Network: Card: Intel 82540EM Gigabit Ethernet Controller
driver: e1000 v: 7.3.21-k8-NAPI port: d010 bus-ID: 00:03.0 chip-ID: 8086:100e
Drives: HDD Total Size: 8.6GB (31.4% used)
Info: Processes: 94 Uptime: 3 min Memory: 106.2/908.8MB
Init: Upstart v: 1.11 runlevel: 2 default: 2 Gcc sys: 4.8.4
Client: Shell (bash 4.2.451 running in xfce4-terminal) inxi: 2.3.2
答案2
经过一番调查,似乎存在多种错误。
首先,Mac 上的 VirtualBox 图形性能非常慢,以至于一开始会让您认为驱动程序无法正常工作。这是一个长期存在的错误还活着,与视网膜/HiDpi 显示器相关:视网膜显示屏上的图形性能不佳
正如报告中所述,您可以使用 YourVMachine->Settings>Display>Use Unscaled HiDPI 来缓解一点,但随后您将需要一个放大镜。
其次,xorg 的输出似乎有错误,并且误导了有关 vboxvideo xorg 模块驱动程序的信息。
半年后,Debian 软件包(和 virtualbox 官方软件包)已弃用 virtualbox xorg 模块,转而使用 vboxvideo 内核驱动程序,请查看 Debian 软件包变更日志中的评论删除 vboxvideo_drv_system.so,已过时且无用, 指向虚拟机错误 16052。