When I attempt the video capture example found here http://v4l2spec.bytesex.org/spec/a16706.htm the program returns "VIDIOC_STREAMON error 22, Invalid argument". The example program seems to be structured properly, all of the IOCTL calls seem proper, with query to confirm to video capture device.
Querying /dev/video1 with ioctl returns following:
Current input: camera (VIDIOC_ENUMINPUT.name)
vcap: driver name: ispvideo (VIDIOC_QUERYCAP.driver)
vcap: device name: OMAP3 ISP CSI2a output (VIDIOC_QUERYCAP.card)
vcap: businfo name: media (VIDIOC_QUERYCAP.bus_info)
vcap: version name: 0.0.1 (VIDIOC_QUERYCAP.version)
vcap: capabilties: 4000001 (VIDIOC_QUERYCAP.capabilities) - bitmask indicates V4L2_CAP_STREAMING |
V4L2_CAP_VIDEO_CAPTURE
I linked the kernel using the software in ti-sdk-beagleboard software tree installed with the file Graphic_SDK_setuplinux_4_00_00_01.bin. I believe the driver for the 5M camera is installed in this version, kernel menu config->Device Drivers--->Multimedia support--->Video capture adapters--->Encoders/decoders and other helper chips--->Aptina MT9P031 support is selected.
uname -a: "Linux beagleboard 2.6.39 #1 Thu Dec 15 10:57:37 PST 2011 armv7l unknown".
The following kprintfs are from boot time:
[ 3.897674] Linux media interface: v0.10
[ 3.901947] Linux video capture interface: v2.00
[ 3.907073] usbcore: registered new interface driver uvcvideo
[ 3.913085] USB Video Class driver (v1.0.0)
(later)
[ 4.337890] [<c001651c>] (omap_i2c_add_bus+0xa8/0xf8) from [<c00139b8>] (beagle_camera_init+0xa0/0xf4)
[ 4.347595] [<c00139b8>] (beagle_camera_init+0xa0/0xf4) from [<c00423b8>] (do_one_initcall+0x94/0x15c)
(later)
[ 4.555145] [<c001653c>] (omap_i2c_add_bus+0xc8/0xf8) from [<c00139b8>] (beagle_camera_init+0xa0/0xf4)
[ 4.564880] [<c00139b8>] (beagle_camera_init+0xa0/0xf4) from [<c00423b8>] (do_one_initcall+0x94/0x15c)
[ 4.574584] [<c00423b8>] (do_one_initcall+0x94/0x15c) from [<c00083b4>] (kernel_init+0xa4/0x158)
[ 4.583770] [<c00083b4>] (kernel_init+0xa4/0x158) from [<c00481dc>] (kernel_thread_exit+0x0/0x8)
[ 4.592926] ---[ end trace 6c3447cdb7c778a6 ]---
[ 4.598083] _regulator_get: omap3isp supply VDD_CSIPHY1 not found, using dumm
y regulator
[ 4.606597] _regulator_get: omap3isp supply VDD_CSIPHY2 not found, using dumm
y regulator
[ 4.615203] omap3isp omap3isp: Revision 15.0 found
[ 4.620239] omap-iommu omap-iommu.0: isp: version 1.1
[ 4.625640] omap3isp omap3isp: hist: DMA channel = 0
[ 4.642395] omap3isp omap3isp: isp_set_xclk(): cam_xclka set to 21600000 Hz
[ 4.659057] mt9p031 2-0048: Detected a MT9P031 chip ID 1801
[ 4.673614] omap3isp omap3isp: isp_set_xclk(): cam_xclka set to 0 Hz
I included the kprintf's to attempt to help determine if the driver is installed. I think that the example capture program should run on bbxm with proper video driver. If anyone knows why it wouldn't I'd love to know too. For now I'm going to attempt to install the kernel in DVSDK 4.02.00.06.
Thanks, Drake.