7.3. cafe_ccic 驱动¶
作者: Jonathan Corbet <corbet@lwn.net>
7.3.1. 简介¶
“cafe_ccic” 是 Marvell 88ALP01 “cafe” CMOS 摄像头控制器的驱动。该控制器见于第一代 OLPC 系统,此驱动是在 OLPC 项目的支持下编写的。
当前状态:核心驱动工作正常。它能生成 YUV422、RGB565 和 RGB444 格式的数据。(任何查看代码的人也会看到 RGB32,但这是一种即将移除的调试辅助功能)。VGA 和 QVGA 模式工作正常;CIF 模式存在但颜色仍然有些异常。目前,只有 OV7670 传感器已知能与此控制器配合使用。
尝试使用:以下任一命令都将有效
$ mplayer tv:// -tv driver=v4l2:width=640:height=480 -nosound
$ mplayer tv:// -tv driver=v4l2:width=640:height=480:outfmt=bgr16 -nosound
“xawtv” 工具也工作正常;gqcam 不行,原因不明。
7.3.2. 加载时选项¶
有一些加载时选项,其中大部分在加载后也可以通过 sysfs 更改
alloc_bufs_at_load: 通常,驱动程序直到数据传输时才分配任何 DMA 缓冲区。如果设置此选项,则在模块加载时会分配最坏情况大小的缓冲区。此选项在模块生命周期内锁定内存,但可能减少之后分配失败的可能性。
dma_buf_size: 要分配的 DMA 缓冲区大小。请注意,此选项仅在加载时分配时参考;当缓冲区在运行时分配时,它们将根据当前相机设置进行适当的大小调整。
n_dma_bufs: 控制器可以在两个或三个 DMA 缓冲区之间循环。通常,驱动程序会尝试使用三个缓冲区;但在更快的系统上,使用两个也能很好地工作。
min_buffers: 驱动程序允许使用的最小流式 I/O 缓冲区数量。默认为一个,但在较慢的系统上,通过设置为更高值(如六个)可以改善 mplayer 的行为。
max_buffers: 最大流式 I/O 缓冲区数量;默认为十个。这个数字是随意选择的,不应认为它有任何实际意义。
flip: 如果此布尔参数设置,传感器将被指示反转视频图像。这是否合理取决于您的特定摄像头的安装方式。