Skip to content

LV005-开发环境

一、概述

这里其实应该是在正点原子的 I.MX6ULL 开发板上搞后续的摄像头实验,但是我没买摄像头,这里直接使用 VMware 中安装的 ubuntu 来使用 Windows 主机的摄像头,主要是学习 V4L2 驱动框架以及对摄像头的控制。

二、开发环境

1. Windows

text
版本	Windows 11 专业版
版本号	25H2
安装日期	‎2025/‎3/‎11
操作系统版本	26200.8037
体验	Windows 功能体验包 1000.26100.300.0

2. VMware

text
产品:VMware® Workstation 17 Pro
版本:17.6.0 build-24238078

3. Ubuntu

shell
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 设备的。

image-20260325193049445

我们双击这个名称就可以打开它的属性,然后点击【详细信息】→【硬件 ID】就可以看到一串的字符,就类似 USB\VID_xxxxxx 这种,我们不需要关心后面是什么,前面的 USB\ 表示总线类型,说明这个设备连接在 USB 总线上,是一个 USB 设备,所以其实我笔记本上这个摄像头也是一个 USB 摄像头。

2. VMware 是否支持?

首先我们看一下 VMware 是否支持当前 Windows 的摄像头:【虚拟机】→【可移动设备】,看看这里有没有摄像头设备,我这里是有的:

image-20260325075536930

如果 VMware 不支持当前摄像头,在上面的界面中将无法找到 Camera 设备。我们点击图中的【连接】就表示断开这个摄像头与主机的连接,连到 VMware 的虚拟机中。然后我们可以查看一下 /dev/ 目录下是否有 videoX 这样的节点存在,我们执行 ls /dev/video*

shell
sumu@sumu-vm:~$ ls /dev/video*
ls: 无法访问 '/dev/video*': 没有那个文件或目录
sumu@sumu-vm:~$ ls /dev/video*
/dev/video0  /dev/video1

3. cheese

3.1 简介

Cheese 是一个用于 Linux 系统的摄像头软件,特别适用于 Ubuntu 操作系统。它允许用户通过摄像头进行自拍、录制视频以及应用各种拍摄效果。Cheese 提供了一个简单易用的界面,用户只需点击相应的按钮即可进行拍照或录像。

3.2 怎么安装?

我们直接执行下面的命令安装即可。

shell
sudo apt-get install -y cheese

3.3 怎么打开摄像头?

我们执行下面的命令:

shell
cheese –no-window

然后就会打开 cheese 界面:

image-20260325194223631

如以上操作都正常,应该可以看到摄像头灯点亮并且 cheese 窗口显示视频。我的摄像头开启的时候有一个补光灯会亮,所以可以明显看到摄像头开启了。

4. 无图像问题

有的时候可能打开了摄像头却没有画面,这个时候可能是 VMware 设置中的 USB 兼容性的问题,我们在 VMware 的【虚拟机】→【设置】→【硬件】→【USB 控制器】→【USB 兼容性】这里查看 USB 的兼容性。如果当前是“USB2.0”就修改为“USB3.1”,反之就修改为“USB2.0”。然后重新连接 Camera,应该cheese 就可以正常出视频了

image-20260325194658869

5. 分辨率?

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

image-20260325195221611

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

image-20260325195211941