openSUSE 在官方源里加入了 VirtualBox 软件包,但是基于安全原因默认禁用了虚拟机的 USB 设备支持。开启 USB 支持的方法在官方文档有介绍。这里做个摘录。
VirtualBox 的 USB 功能首先需要有 VirtualBox 附加软件包 (Extension Pack) 的支持。需要注意的是,根据授权协议,Extension Pack 只有在个人或者教育使用中是免费的,其它使用需要获取授权,包括家庭办公/个体商业用途。
在 openSUSE 里面安装附加包不如 Windows 里那么轻松。过程为,
- 到 VirtualBox 官网下载附加软件包,
- 关闭系统里的所有 vbox 虚拟机,
- 使用 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 支持。
- 使用 VirtualBox 的系统用户需要在 vboxusers 用户组中(将用户附加到组的方法),
usermod -a -G vboxusers $YourUsername
- 复制
/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
- 将其中注释掉的包含 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/>。转载请保留此信息及相应链接。