LV005-开发环境
一、概述
这里其实应该是在正点原子的 I.MX6ULL 开发板上搞后续的摄像头实验,但是我没买摄像头,这里直接使用 VMware 中安装的 ubuntu 来使用 Windows 主机的摄像头,主要是学习 V4L2 驱动框架以及对摄像头的控制。
二、开发环境
1. Windows
版本 Windows 11 专业版
版本号 25H2
安装日期 2025/3/11
操作系统版本 26200.8037
体验 Windows 功能体验包 1000.26100.300.02. VMware
产品:VMware® Workstation 17 Pro
版本:17.6.0 build-242380783. Ubuntu
sumu@sumu-vm:~$ lsb_release -a # 查看的是 /etc/lsb-release 文件
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal三、Ubuntu 使用 Windows 摄像头
我的 windows 是带有一个摄像头的,这里可以直接使用,若是没有可以使用 USB 摄像头。
1. Windows 摄像头
我们来设备管理器看一下,发现这里是有一个 Camera 设备的。
我们双击这个名称就可以打开它的属性,然后点击【详细信息】→【硬件 ID】就可以看到一串的字符,就类似 USB\VID_xxxxxx 这种,我们不需要关心后面是什么,前面的 USB\ 表示总线类型,说明这个设备连接在 USB 总线上,是一个 USB 设备,所以其实我笔记本上这个摄像头也是一个 USB 摄像头。
2. VMware 是否支持?
首先我们看一下 VMware 是否支持当前 Windows 的摄像头:【虚拟机】→【可移动设备】,看看这里有没有摄像头设备,我这里是有的:

如果 VMware 不支持当前摄像头,在上面的界面中将无法找到 Camera 设备。我们点击图中的【连接】就表示断开这个摄像头与主机的连接,连到 VMware 的虚拟机中。然后我们可以查看一下 /dev/ 目录下是否有 videoX 这样的节点存在,我们执行 ls /dev/video*:
sumu@sumu-vm:~$ ls /dev/video*
ls: 无法访问 '/dev/video*': 没有那个文件或目录
sumu@sumu-vm:~$ ls /dev/video*
/dev/video0 /dev/video13. cheese
3.1 简介
Cheese 是一个用于 Linux 系统的摄像头软件,特别适用于 Ubuntu 操作系统。它允许用户通过摄像头进行自拍、录制视频以及应用各种拍摄效果。Cheese 提供了一个简单易用的界面,用户只需点击相应的按钮即可进行拍照或录像。
3.2 怎么安装?
我们直接执行下面的命令安装即可。
sudo apt-get install -y cheese3.3 怎么打开摄像头?
我们执行下面的命令:
cheese –no-window然后就会打开 cheese 界面:
如以上操作都正常,应该可以看到摄像头灯点亮并且 cheese 窗口显示视频。我的摄像头开启的时候有一个补光灯会亮,所以可以明显看到摄像头开启了。
4. 无图像问题
有的时候可能打开了摄像头却没有画面,这个时候可能是 VMware 设置中的 USB 兼容性的问题,我们在 VMware 的【虚拟机】→【设置】→【硬件】→【USB 控制器】→【USB 兼容性】这里查看 USB 的兼容性。如果当前是“USB2.0”就修改为“USB3.1”,反之就修改为“USB2.0”。然后重新连接 Camera,应该cheese 就可以正常出视频了

5. 分辨率?
我用cheese拍了一张图片,看着默认分辨率应该是960x540的:

后来发现cheese这里其实可以配置照片分辨率,最高可以到1280x720:
