Linux 下UVC&V4L2技術簡單介紹(二)
通過前文Linux 下UVC&V4L2技術簡單介紹(一)我們了解了UVC和V4L2的簡單知識。
這裏是USB設備的文檔描寫敘述:http://www.usb.org/developers/docs/devclass_docs/
那麽假設我們想執行一個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.xxxx.rc中的/dev/video0的權限設置 為 0666
3) 這個設備必須是支持UVC的攝像頭
在描寫敘述這部分之前,須要先說一下V4L2的工作原理。
接下來講述UVC驅動。
Linux 下UVC&V4L2技術簡單介紹(二)