为openSUSE中的VirtualBox虚拟机启用USB设备支持

openSUSE 在官方源里加入了 VirtualBox 软件包,但是基于安全原因默认禁用了虚拟机的 USB 设备支持。开启 USB 支持的方法在官方文档有介绍。这里做个摘录。

VirtualBox 的 USB 功能首先需要有 VirtualBox 附加软件包的支持。在 openSUSE 里面安装附加包不如 Windows 里那么轻松。过程为,

  1. VirtualBox 官网下载附加软件包,
  2. 关闭系统里的所有 vbox 虚拟机,
  3. 使用 VBoxManage 安装附加包。

目前版本是 5.0.12,附加包下载地址为,

http://download.virtualbox.org/virtualbox/5.0.12/Oracle_VM_VirtualBox_Extension_Pack-5.0.12-104815.vbox-extpack

所有平台的附加都是这个地址,但是下载到 openSUSE 中的时候,文件后缀名变成了 .bin。

命令行脚本如下:

# 临时文件夹
tmpfolder="tmpfolder"
mkdir $tmpfolder
# 下载链接
vboxextpack="http://download.virtualbox.org/virtualbox/5.0.12/Oracle_VM_VirtualBox_Extension_Pack-5.0.12-104815.vbox-extpack"

cd $tmpfolder
wget -nH -nd -P $tmpfolder $vboxextpack -O vboxextpack.bin
VBoxManage extpack install $tmpfolder/vboxextpack.bin

rm -rf $tmpfolder

然后修改 openSUSE 系统配置开启 VirtualBox 的 USB 支持。

  1. 使用 VirtualBox 的系统用户需要在 vboxusers 用户组中(将用户附加到组的方法),
    usermod -a -G vboxusers $YourUsername
  2. 复制 /usr/lib/udev/rules.d/60-vboxdrv.rules/etc/udev/rules.d
    cp -v /usr/lib/udev/rules.d/60-vboxdrv.rules /etc/udev/rules.d
  3. 将其中注释掉的包含 SUBSYSTEM 字串的所有行都给取消注释(使之生效)
    printf '%s\n' 'g/^#SUBSYSTEM/s/^#//' w | ed -s /etc/udev/rules.d/60-vboxdrv.rules

配置完成。重启系统就可以让虚拟机系统发现主机的 USB 设备了。

如果客户机安装的是 Windows 操作系统(比如 XP 或 Win7),可能无法选择使用 USB 3.0(xHCI)。比如,USB 3.0 端口无法被 VirtualBox 使用:“VERR_NOT_SUPPORTED”。但至少对 Windows 7 来说,因为客户机 Windows 7 没有原生的 USB 3.0 控制器驱动,可以通过在客户机中安装从 Intel 下载中心下载的 USB-3-0-Driver-Intel-USB-3-0-eXtensible-Host-Controller-Driver-for-Intel-7-Series-C216-Chipset-Family 这个 USB 3.0 控制器驱动。参考了这里。另外,根据另一篇帖子,也可以用 Renesas 的驱动,据说更好,但水景一页没有测试。

这篇文章是水景一页迁移到 openSUSE 执行初始配置记录的一部分。

更新记录(2016.06.11):

修改文中一处语言错误:应该是取消注释,因为本来就是注释掉的。其中的命令行指令没错,但是要注意该行指令必须在 root 状态下执行,否则需要改为,

sudo printf '%s\n' 'g/^#SUBSYSTEM/s/^#//' w | sudo ed -s /etc/udev/rules.d/60-vboxdrv.rules

即,在每个指令前都需要加 sudo。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/opensuse-virtualbox-usb/>。转载请保留此信息及相应链接。

雁过留声,人过留名

电子邮件地址不会被公开。 必填项已用*标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>