Linux 下UVC V4L2技術簡介 二

2021-07-30 14:06:47 字數 1026 閱讀 8478

通過前文linux 下uvc&v4l2技術簡介(一)

我們了解了uvc和v4l2的簡單知識。

這裡是usb裝置的文件描述:

那麼如果我們想執行乙個uvc的camera裝置需要做哪些工作呢?

我簡單的檢視了幾個cm專案的kernel配置檔案,發現在這些系統裡面的v4l2的驅動配置選項都是開啟的,但是config_usb_video_config選項是沒有開啟的,也就是說在現在cm支援的機型裡面預設是不支援uvc camera的。

這樣的情況就給開發者帶來很大的不便,因為這樣以來,uvc camera就不能作為乙個android系統的標配存在著。

那麼現在問題來了,

如何讓裝置成為乙個uvc(usb video class)裝置?

如何讓android系統能夠支援uvc camera裝置正常工作?

首先,在前一篇文章中提到uvc裝置可以有乙個支援的device list或者利用命令去檢視裝置是否被支援。我們是否可以修改我們的裝置,使之成為乙個uvc camera?

此處根據閱讀文件的結果來看符合uvc裝置的條件,硬體上是有乙個固定的架構的。所以如果硬體上不是uvc裝置架構的情況下,很難將乙個普通的camera轉化成uvc camera。

其次如何讓android系統能夠支援uvc camera呢?

1) 首先要開啟裝置上的 v4l2

config_video_dev=y

config_video_v4l2_common=y

config_video_media=y

config_usb_video_class=y

config_v4l_usb_drivers=y

config_usb_video_class_input_evdev=y

2) 將/ueventd.***x.rc中的/dev/video0的許可權設定 為 0666

3) 這個裝置必須是支援uvc的攝像頭

在描述這部分之前,需要先說一下v4l2的工作原理。

接下來講述uvc驅動。

Linux下的V4L2程式設計

一 設定採集方式,格式 常用命令標誌 extern int ioctl int fd,unsigned long int request,throw request 具體的命令標誌符。在進行v4l2開發中,一般會用到以下的命令標誌符 vidioc reqbufs 分配記憶體 vidioc query...

linux 驅動 camera 架構 V4L2

2012 11 14 v4l2應用程式框架 v4l2應用程式框架 用非阻塞模式開啟攝像頭裝置int camerafd camerafd open dev video0 o rdwr o nonblock,0 如果用阻塞模式開啟攝像頭裝置,上述 變為 camerafd open dev video0 ...

Linux的V4L2架構分析

一 linux的v4l2架構介紹 v4l2 的初衷是想為 linux video v4l2 的整體架構如下圖所示 video裝置 video裝置介面 l 攝像頭介面一般有 mipi csi 移動行業處理器介面聯盟定義的攝像頭數字序列介面,是當今主流的手機攝像頭介面。usb usb攝像頭一般常見在台式...