so it turns out that cameras are not detected in the order I was expecting.
there used to be a field to set which node the camera would be assigned to:
devnode = “video0”;
does that still exist with Jetpack6?
I used to v4l2-ctl and see that frames are produced by the sensor
~$ v4l2-ctl --verbose --set-fmt-video=width=3840,height=2160,pixelformat=RG10 --set-ctrl sensor_mode=0,bypass_mode=0 --stream-mmap -d 0
VIDIOC_QUERYCAP: ok
VIDIOC_S_EXT_CTRLS: ok
VIDIOC_G_FMT: ok
VIDIOC_S_FMT: ok
Format Video Capture:
Width/Height : 3840/2160
Pixel Format : 'RG10' (10-bit Bayer RGRG/GBGB)
Field : None
Bytes per Line : 7680
Size Image : 16588800
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
VIDIOC_REQBUFS returned 0 (Success)
VIDIOC_QUERYBUF returned 0 (Success)
VIDIOC_QUERYBUF returned 0 (Success)
VIDIOC_QUERYBUF returned 0 (Success)
VIDIOC_QUERYBUF returned 0 (Success)
VIDIOC_QBUF returned 0 (Success)
VIDIOC_QBUF returned 0 (Success)
VIDIOC_QBUF returned 0 (Success)
VIDIOC_QBUF returned 0 (Success)
VIDIOC_STREAMON returned 0 (Success)
cap dqbuf: 0 seq: 0 bytesused: 16588800 ts: 1917.217291 (error, ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq: 1 bytesused: 16588800 ts: 1917.228381 delta: 11.090 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq: 2 bytesused: 16588800 ts: 1917.239472 delta: 11.091 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 3 seq: 3 bytesused: 16588800 ts: 1917.250563 delta: 11.091 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq: 4 bytesused: 16588800 ts: 1917.461285 delta: 210.722 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq: 5 bytesused: 16588800 ts: 1917.472376 delta: 11.091 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq: 6 bytesused: 16588800 ts: 1917.483466 delta: 11.090 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 3 seq: 7 bytesused: 16588800 ts: 1917.494557 delta: 11.091 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq: 8 bytesused: 16588800 ts: 1917.505648 delta: 11.091 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 1 seq: 9 bytesused: 16588800 ts: 1917.516738 delta: 11.090 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 2 seq: 10 bytesused: 16588800 ts: 1917.527829 delta: 11.091 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 3 seq: 11 bytesused: 16588800 ts: 1917.538920 delta: 11.091 ms (error, ts-monotonic, ts-src-eof)
cap dqbuf: 0 seq: 12 bytesused: 16588800 ts: 1917.550010 delta: 11.090 ms (error, ts-monotonic, ts-src-eof)
camrtc log seems fine:
# tracer: nop
#
# entries-in-buffer/entries-written: 1447/1447 #P:8
#
# _-------=> irqs-off
# / _------=> need-resched
# | / _-----=> need-resched-lazy
# || / _----=> hardirq/softirq
# ||| / _---=> preempt-depth
# |||| / _--=> preempt-lazy-depth
# ||||| / _-=> migrate-disable
# |||||| / delay
# TASK-PID CPU# ||||||| TIMESTAMP FUNCTION
# | | | ||||||| | |
v4l2-ctl-5717 [001] ....... 1255.549481: tegra_channel_open: vi-output, imx415 11-001a
v4l2-ctl-5717 [001] ....... 1255.561783: tegra_channel_set_power: imx415 11-001a : 0x1
v4l2-ctl-5717 [001] ....... 1255.561793: camera_common_s_power: status : 0x1
v4l2-ctl-5717 [001] ....... 1255.585552: tegra_channel_set_power: 13e00000.host1x:nvcsi@15a00000- : 0x1
v4l2-ctl-5717 [001] ....... 1255.585555: csi_s_power: enable : 0x1
v4l2-ctl-5717 [001] ....... 1255.586052: tegra_channel_capture_setup: vnc_id 0 W 3840 H 2160 fmt c4
vi-output, imx4-5718 [003] ....... 1255.598781: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
vi-output, imx4-5718 [003] ....... 1255.598789: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
vi-output, imx4-5718 [003] ....... 1255.598790: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
vi-output, imx4-5718 [003] ....... 1255.598792: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
v4l2-ctl-5717 [002] ....... 1255.598810: tegra_channel_set_stream: enable : 0x1
v4l2-ctl-5717 [002] ....... 1255.598818: tegra_channel_set_stream: 13e00000.host1x:nvcsi@15a00000- : 0x1
v4l2-ctl-5717 [002] ....... 1255.598820: csi_s_stream: enable : 0x1
v4l2-ctl-5717 [002] ....... 1255.599133: tegra_channel_set_stream: imx415 11-001a : 0x1
vi-output, imx4-5719 [007] ....... 1255.660510: tegra_channel_capture_frame: sof:1275.312988096
vi-output, imx4-5719 [007] ....... 1255.660513: tegra_channel_capture_frame: eof:1275.312998816
vi-output, imx4-5719 [007] ....... 1255.671388: tegra_channel_capture_frame: sof:1275.324078720
vi-output, imx4-5719 [007] ....... 1255.671390: tegra_channel_capture_frame: eof:1275.324089440
vi-output, imx4-5719 [007] ....... 1255.682464: tegra_channel_capture_frame: sof:1275.335169376
vi-output, imx4-5719 [007] ....... 1255.682465: tegra_channel_capture_frame: eof:1275.335180096
vi-output, imx4-5719 [007] ....... 1255.693544: tegra_channel_capture_frame: sof:1275.346260000
vi-output, imx4-5719 [007] ....... 1255.693546: tegra_channel_capture_frame: eof:1275.346270720
vi-output, imx4-5718 [003] ....... 1255.899902: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
vi-output, imx4-5718 [003] ....... 1255.899918: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
vi-output, imx4-5718 [003] ....... 1255.899920: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
vi-output, imx4-5718 [003] ....... 1255.899922: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
vi-output, imx4-5719 [007] ....... 1255.904770: tegra_channel_capture_frame: sof:1275.556982112
vi-output, imx4-5719 [007] ....... 1255.904772: tegra_channel_capture_frame: eof:1275.556992864
vi-output, imx4-5718 [003] ....... 1255.905162: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
vi-output, imx4-5719 [007] ....... 1255.915389: tegra_channel_capture_frame: sof:1275.568072736
vi-output, imx4-5719 [007] ....... 1255.915391: tegra_channel_capture_frame: eof:1275.568083520
vi-output, imx4-5718 [003] ....... 1255.915595: vi_task_submit: class_id:48 ch:0 syncpt_id:36 syncpt_thresh:7248 pid:5718 tid:5718
...
But system log (dmesg) indicates an error:
[ 1891.307142] imx415 11-001a: imx415_power_off: power off
[ 1897.463759] imx415 11-001a: imx415_power_on: power on
[ 1897.564570] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 1, flags: 0, err_data 256
[ 1897.575669] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 2, flags: 0, err_data 256
[ 1897.586777] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 3, flags: 0, err_data 256
[ 1897.598532] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 4, flags: 0, err_data 256
[ 1897.809057] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 23, flags: 0, err_data 256
[ 1897.819502] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 24, flags: 0, err_data 256
[ 1897.830575] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 25, flags: 0, err_data 256
...
[ 1900.248467] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 243, flags: 0, err_data 256
[ 1900.259429] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 244, flags: 0, err_data 256
[ 1900.270518] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 245, flags: 0, err_data 256
[ 1900.281612] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 246, flags: 0, err_data 256
[ 1900.292699] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 247, flags: 0, err_data 256
[ 1900.347148] imx415 11-001a: imx415_power_off: power off
what does that error mean?
Note that this driver works fine on Jetpack 5.1.2. Only change for Jetpack6 was the change in API for
probe() and remove().