[Letux-kernel] [Gta04-owner] On camera driver
H. Nikolaus Schaller
hns at goldelico.com
Tue Aug 9 19:22:49 CEST 2016
Hi Andrey,
> Am 09.08.2016 um 17:02 schrieb Andrey Utkin <andrey_utkin at fastmail.com>:
>
> On Tue, Aug 09, 2016 at 04:07:09PM +0200, H. Nikolaus Schaller wrote:
>>> Thanks for sharing.
>>> The only way I can help now is to mainline your patches to ov9650
>>> driver. BTW are they complete, i.e. does the driver from
>>> work/hns/video/ov9655 do all expected things?
>>
>> No, not at all. It just probes successfully.
>
> Ok, so show me the logs of v4l2-compliance or anything, whenever you
> have time for it.
I hace checked and the v42l-utils of debian also include the compliance tool.
Nice!
Here is what it says w/o running any media-ctl before:
root at letux:~# v4l2-compliance
Driver Info:
Driver name : ispvideo
Card type : OMAP3 ISP CCP2 input
Bus info : media
Driver version: 4.8.0
Capabilities : 0x84200003
Video Capture
Video Output
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200002
Video Output
Streaming
Extended Pix Format
Compliance test for device /dev/video0 (not using libv4l2):
Required ioctls:
fail: v4l2-compliance.cpp(306): missing bus_info prefix ('media')
test VIDIOC_QUERYCAP: FAIL
Allow for multiple opens:
test second video open: OK
fail: v4l2-compliance.cpp(306): missing bus_info prefix ('media')
test VIDIOC_QUERYCAP: FAIL
test VIDIOC_G/S_PRIORITY: OK
Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
test VIDIOC_LOG_STATUS: OK (Not Supported)
Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 0 Audio Inputs: 0 Tuners: 0
Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)
Control ioctls:
test VIDIOC_QUERYCTRL/MENU: OK (Not Supported)
test VIDIOC_G/S_CTRL: OK (Not Supported)
test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 0 Private Controls: 0
Format ioctls:
fail: v4l2-test-formats.cpp(287): Video Output cap set, but no Video Output formats defined
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: FAIL
fail: v4l2-test-formats.cpp(1065): out->timeperframe.numerator == 0 || out->timeperframe.denominator == 0
test VIDIOC_G/S_PARM: FAIL
test VIDIOC_G_FBUF: OK (Not Supported)
fail: v4l2-test-formats.cpp(411): !pix.width || !pix.height
test VIDIOC_G_FMT: FAIL
test VIDIOC_TRY_FMT: OK (Not Supported)
test VIDIOC_S_FMT: OK (Not Supported)
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
Codec ioctls:
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
Buffer ioctls:
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test VIDIOC_EXPBUF: OK (Not Supported)
Total: 38, Succeeded: 33, Failed: 5, Warnings: 0
root at letux:~# root at letux:~# media-ctl -V '"ov9655 2-0030":0 [UYVY2X8 1280x1024]'
Failed to enumerate /dev/media0 (-2)
root at letux:~# ls -l /dev/media*
ls: cannot access /dev/media*: No such file or directory
root at letux:~# cat /sys/bus/i2c/devices/1-0030/uevent
DRIVER=OV9650
OF_NAME=ov9655
OF_FULLNAME=/ocp/i2c at 48072000/ov9655 at 30
OF_COMPATIBLE_0=ovti,ov9655
OF_COMPATIBLE_N=1
MODALIAS=i2c:ov9655
root at letux:/sys/bus/i2c/devices#
So it is probed successfully on I2C but there is no /dev/media (if that is what should be looked for here)
>
>> Hm. Running a GTA04 permanently on ssh is a little tricky. As soon
>> as you poweroff it does not reboot automatically. And if you damage
>> the SD card contents (a kernel panic during boot) it won't boot to USB
>> without manually reflashing the SD card. So it needs supervision which
>> I can't provide.
>
> So "emergency reboot" like this doesn't reboot either?
>
> sync
> echo s > /proc/sysrq-trigger
> sleep 1
> echo b > /proc/sysrq-trigger
How should that work if it does not boot up to an USB interface? How can
we remotely issue such commands?
I mean the case that you did write a new uImage on the /boot partition
or kernel module to /lib/modules over your ssh connection and then you do
a reboot. But the uImage or some kernel module is broken now. Then
there is some oops on the console log but you can't remotely remove
the battery or press the power-on button for 10 seconds to shut off the PMIC.
>
> Also I guess NFS-based rootfs would avoid corruption concerns. But I
> don't know if it's possible.
No, there is no networking available before Linux is up and running.
BR,
Nikolaus
More information about the Letux-kernel
mailing list