最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

解决VirtualBox增强功能异常

IT圈 admin 1浏览 0评论

解决VirtualBox增强功能异常

VirtualBox增强功能异常的排查

每次安装完vbox的增强功能总是会有各种异常问题,比如:

  • 共享文件不能使用。
  • 复制粘贴不能使用。
  • 显示器分辨率不能自动调整。
  • OpenGL 3D加速不能使用。

排查方法:

  1. 确认安装的增强功能包的版本与virtualbox的版本匹配。
  2. ps -ef | grep VBoxClient查看VBoxClient进程是否启动。
  3. lsmod | grep vbox查看驱动是否加载。
  4. systemctl status vboxadd.service查看服务状态是否报错。

版本匹配

一般来说,需要确保增强功能包的版本与virtualbox主程序一致。

也有例外情况,比如我在使用5.2.24版本的时候,测试下来5.2.38版本的功能包是最合适的。

VBoxClient

VBoxClient是启动增强功能的关键程序,桌面启动时通常会加载VBoxClient-all来启动所有需要的功能,这是通过/etc/xdg/autostart/vboxclient.desktop文件实现的。

如果你使用如i3wm这样的其他桌面环境,那么VBoxClient可能不会自动加载,这就需要你在对应的启动配置中手动调用VBoxClient-all程序。以i3wm为例,需要在~/.config/i3/config中增加exec --no-startup-id VBoxClient-all

如果正常,使用ps -ef|grep VBoxClient命令,你应该能看到类似下面的输出,不同版本会有些许不同。

liyt        1869       1  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --clipboard
liyt        1871    1869  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --clipboard
liyt        1883       1  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --seamless
liyt        1885    1883  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --seamless
liyt        1893       1  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --draganddrop
liyt        1895    1893  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --draganddrop
liyt        1902       1  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --vmsvga
liyt        1903    1902  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --vmsvga

查看VBoxClient的帮助可以了解不同参数的作用,比如-clipboard是与剪贴板有关。如果你的剪贴板功能不正常,那么可以尝试手动执行VBoxClient -clipboard -f -v命令,查看是否有错误信息。

如果有错误,大概率是版本不匹配造成的。如果版本匹配且看不出错误原因,只能尝试其他版本(没遇到过这种情况)。

查看驱动

使用lsmod | grep vbox查看驱动是否正常加载。关键的两个是:

  • vboxsf:影响共享文件夹是否能工作。
  • vboxvideo:影响显卡是否工作。

如果缺少驱动,查看服务的启动日志systemctl status vbox.service,或者查看系统启动日志journalctl -b,搜索vbox相关内容,检查是否有报错信息。

OpenGL 3.x

很多程序依赖OpenGL 3.x,通过glxinfo|grep OpenGL查看opengl的支持信息。如果有以下字段说明支持OpenGL3。

OpenGL core profile version string: 3.3 (Core Profile) Mesa 20.0.4

如果是其他版本,考虑改变设置中的显示设置。我在virtualbox6.1.30版本中选择VboxVGA且不勾选3D加速能支持OpenGL3.3,选择vmsvga只能支持OpenGL2.1。

glxinfo需要安装mesa-utils包。

注意事项

不推荐安装发行版预编译好virtualbox-guest-*的包,很容易出现版本不匹配的问题。尽量使用virtualbox主程序菜单中的“安装增强功能”来安装。

安装的时候有可能会出现莫名其妙的编译错误,最好的办法是更新virtualbox主程序版本,然后重新安装增强功能。如果主程序版本不能变更,那么可以尝试下载主版本号相同而小版本有差异的增强功能包(大概率不兼容)。

解决VirtualBox增强功能异常

VirtualBox增强功能异常的排查

每次安装完vbox的增强功能总是会有各种异常问题,比如:

  • 共享文件不能使用。
  • 复制粘贴不能使用。
  • 显示器分辨率不能自动调整。
  • OpenGL 3D加速不能使用。

排查方法:

  1. 确认安装的增强功能包的版本与virtualbox的版本匹配。
  2. ps -ef | grep VBoxClient查看VBoxClient进程是否启动。
  3. lsmod | grep vbox查看驱动是否加载。
  4. systemctl status vboxadd.service查看服务状态是否报错。

版本匹配

一般来说,需要确保增强功能包的版本与virtualbox主程序一致。

也有例外情况,比如我在使用5.2.24版本的时候,测试下来5.2.38版本的功能包是最合适的。

VBoxClient

VBoxClient是启动增强功能的关键程序,桌面启动时通常会加载VBoxClient-all来启动所有需要的功能,这是通过/etc/xdg/autostart/vboxclient.desktop文件实现的。

如果你使用如i3wm这样的其他桌面环境,那么VBoxClient可能不会自动加载,这就需要你在对应的启动配置中手动调用VBoxClient-all程序。以i3wm为例,需要在~/.config/i3/config中增加exec --no-startup-id VBoxClient-all

如果正常,使用ps -ef|grep VBoxClient命令,你应该能看到类似下面的输出,不同版本会有些许不同。

liyt        1869       1  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --clipboard
liyt        1871    1869  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --clipboard
liyt        1883       1  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --seamless
liyt        1885    1883  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --seamless
liyt        1893       1  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --draganddrop
liyt        1895    1893  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --draganddrop
liyt        1902       1  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --vmsvga
liyt        1903    1902  0 13:46 ?        00:00:00 /usr/bin/VBoxClient --vmsvga

查看VBoxClient的帮助可以了解不同参数的作用,比如-clipboard是与剪贴板有关。如果你的剪贴板功能不正常,那么可以尝试手动执行VBoxClient -clipboard -f -v命令,查看是否有错误信息。

如果有错误,大概率是版本不匹配造成的。如果版本匹配且看不出错误原因,只能尝试其他版本(没遇到过这种情况)。

查看驱动

使用lsmod | grep vbox查看驱动是否正常加载。关键的两个是:

  • vboxsf:影响共享文件夹是否能工作。
  • vboxvideo:影响显卡是否工作。

如果缺少驱动,查看服务的启动日志systemctl status vbox.service,或者查看系统启动日志journalctl -b,搜索vbox相关内容,检查是否有报错信息。

OpenGL 3.x

很多程序依赖OpenGL 3.x,通过glxinfo|grep OpenGL查看opengl的支持信息。如果有以下字段说明支持OpenGL3。

OpenGL core profile version string: 3.3 (Core Profile) Mesa 20.0.4

如果是其他版本,考虑改变设置中的显示设置。我在virtualbox6.1.30版本中选择VboxVGA且不勾选3D加速能支持OpenGL3.3,选择vmsvga只能支持OpenGL2.1。

glxinfo需要安装mesa-utils包。

注意事项

不推荐安装发行版预编译好virtualbox-guest-*的包,很容易出现版本不匹配的问题。尽量使用virtualbox主程序菜单中的“安装增强功能”来安装。

安装的时候有可能会出现莫名其妙的编译错误,最好的办法是更新virtualbox主程序版本,然后重新安装增强功能。如果主程序版本不能变更,那么可以尝试下载主版本号相同而小版本有差异的增强功能包(大概率不兼容)。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论