必须先安装匹配版本的extension pack,否则virtualbox菜单无“摄像头”选项;再启用usb 3.0控制器并绑定设备,最后在ubuntu中验证/dev/video*节点、添加video用户组权限并用cheese测试。

在VirtualBox虚拟机中让Ubuntu识别并使用Windows或Mac主机的物理摄像头,必须先安装匹配版本的扩展包,否则菜单里根本不会出现“摄像头”选项,所有后续操作都无从谈起。
确认并安装对应版本的Extension Pack
打开VirtualBox主界面,点击菜单栏「帮助」→「关于VirtualBox」,记下显示的精确版本号,例如“7.1.6r167095”;
访问 https://www.virtualbox.org/wiki/Downloads,在页面底部找到与你版本号完全一致的「Oracle VM VirtualBox Extension Pack」下载链接——【版本号不匹配会导致安装失败且无提示】;
下载完成后双击运行,一路点击“下一步”,在许可协议页拖到底部勾选“我接受”,安装完成即可。
启用USB控制器与扩展功能
关闭正在运行的虚拟机(若已开启),右键虚拟机名称→「设置」→「系统」→「主板」→确保“启用IO APIC”已勾选;
切换到「USB」选项卡,勾选“启用USB控制器”,并必须选择“USB 3.0 (xHCI) 控制器”——USB 2.0无法稳定支持UVC摄像头流传输;
点击右侧“扩展包”图标(拼图形状),确认已显示你刚安装的Extension Pack名称及版本,状态为“已启用”。
绑定摄像头设备到虚拟机
方法一:图形界面直连(仅限部分主机系统识别出设备时)
启动虚拟机→顶部菜单「设备」→「摄像头」→勾选你的摄像头名称(如“Integrated Camera”);
方法二:命令行精准绑定(推荐,兼容性更强)
在主机终端(Windows用CMD/PowerShell,macOS/Linux用Terminal)执行:VBoxManage list webcams → 查看返回结果中第三列的完整设备标识符,形如:"FaceTime HD Camera" \?usb#vid_05ac&pid_8514#...;
复制该长串标识符(含引号),执行绑定命令:VBoxManage controlvm "你的虚拟机名称" webcam attach "复制的完整标识符";
【务必注意:虚拟机名称必须与VBoxManage list vms输出的名称完全一致,包括空格和引号】;
执行后无报错即为成功,无需重启虚拟机。
验证设备与权限
进入Ubuntu虚拟机,打开终端,输入:ls /dev/video*;
若看到 /dev/video0 或类似设备节点,说明硬件已识别;
若提示“Permission denied”,运行:sudo usermod -aG video $USER → 关闭终端并重新登录用户;
最后安装测试工具:sudo apt update && sudo apt install -y cheese → 运行 cheese 即可调起摄像头预览窗口。











