vmware ubuntu 连接 usb 摄像头
前言
初始环境:
宿主机 win10
VMware® Workstation 14 Pro
虚拟机 ubuntu 18.04
故障:在宿主机上可以找到摄像头并看到摄像内容。开启虚拟机后,点击 虚拟机 ==> 可移动设备,在列表中没有找到我的 usb 摄像头。
升级 VMware
根据 博客教程,要将 vmware 升级到 15版本,去官方下载15版本并安装,版本成功升级到15.5.2 build-15785246
升级成功之后运行ubuntu
发现可以正常获取到摄像头的内容,但是操作系统分辨率变得很小。
升级虚拟机硬件兼容性
当时认为是VMware Tools
或者虚拟机硬件兼容性
的问题。
接着我将 ubuntu 虚拟机 硬件兼容性升级到Workstation 15.x
,这个方法也失败了,分辨率还是很小。
ps. 在升级之前先拍摄快照备份,以防万一
升级 VMware Tools
接下来从官网更新最新的VMwareTools
升级到虚拟机,升级后分辨率恢复正常了,但是摄像头又在可移动设备列表中消失了。一路坑
VMware USB Arbitration Service
看网上有人要开启win10
宿主机上该服务,找到该服务后发现已经开启。安全起见重启了一下,还是不行。
修改 USB 兼容性
翻了几篇博客,看到大家都推荐修改USB兼容性,我就从3.0
改成了2.0
,结果可以在可移动设备列表中发现摄像头。使用cheese
软件可以打开,但是内容全是黑的。
又从2.0
改回3.0
发现设置依然存在并且cheese
能正常获取视频图像。
复盘
前面一通修改没有控制变量,所以不知道哪里生效了。于是我将虚拟机回退到所有修改之前的一个版本,该版本在VMware
升级之前是拿不到摄像头设备的,在VMware
升级之后可以在设备列表中找到该摄像头。在USB
兼容性是2.0的时候画面仍然是黑屏,改到3.0之后能正常播放画面。
总结
总结一下需要只需要以下操作步骤:
- 升级VMware 到 15.5.2 build-15785246
- 将虚拟机
USB
兼容性改成3.0
技术要点:
- 虚拟机升级硬件兼容性不会影响之前快照的版本,所以可以在升级前拍摄快照以便于出问题回退。
- VMware 有时候会提醒以下让软件可供下载:VMware Tools for Linux - 版本 xx.x.x,这个
Tools
就是我们在虚拟机VMware Tools
。
2020年5月13日15点
今天宿主机系统自动升级,升级之后USB
摄像头再次从虚拟机的可移动设备列表中消失。
- pactl list sources 打印的列表中没找到该
USB
设备
Source #0
State: IDLE
Name: alsa_output.pci-0000_02_02.0.analog-stereo.monitor
Description: Monitor of ES1371/ES1373 / Creative Labs CT2518 (Audio PCI 64V/128/5200 / Creative CT4810/CT5803/CT5806 [Sound Blaster PCI]) Analog Stereo
......
Source #1
State: RUNNING
Name: alsa_input.pci-0000_02_02.0.analog-stereo
Description: ES1371/ES1373 / Creative Labs CT2518 (Audio PCI 64V/128/5200 / Creative CT4810/CT5803/CT5806 [Sound Blaster PCI]) Analog Stereo
......
-
gst-launch-1.0 -v pulsesrc ! audioconvert ! autoaudiosink
能播放从该摄像头采集到的音频 -
gst-launch-1.0 v4l2src ! autovideosink
无法播放提示Cannot identify device '/dev/video0'
因为是更新系统导致的问题,所以我去计算机 - 管理 - 服务和应用程序 - 服务
中查看VMware USB Arbitration Service
的状态,发现该服务没有开启。启动此服务之后,重新打开虚拟机发现恢复正常。