Problem for CM5 with 4k camera

Hi, I got a problem for 4K camera with CM5 IO Board.

Any one can help to fix it?

P.S. I already enable overlay setting and using pre-build Debian image.

I’m having the same issue. I also added the below information to the Github issue being tracked:

I have a new CM5 board and CM5 IO Board from Radxa and a 4K camera. I have followed all the guides for installing the OS (on an SD card), and applying the camera overlay as per this document:

https://docs.radxa.com/en/compute-module/cm5/accessories/camera_4k

This guide has also been very helpful and my system looks almost exactly as described by this post:

https://stackoverflow.com/questions/77007398/how-to-debug-the-sony-imx415-camera-connect-with-rk3588

Also note I have followed these directions in detail as well:

https://forum.radxa.com/t/how-to-use-radxa-camera-4k/13031

In my case, the camera is identified in the system logs:

sudo journalctl -b | grep "imx415"

Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a:  Get hdr mode failed! no hdr default
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: Failed to get power-gpios
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: could not get default pinstate
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: could not get sleep pinstate
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: Looking up dvdd-supply from device tree
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: Looking up dvdd-supply property in node /i2c@feca0000/imx415@1a failed
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: supply dvdd not found, using dummy regulator
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: Looking up dovdd-supply from device tree
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: Looking up dovdd-supply property in node /i2c@feca0000/imx415@1a failed
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: supply dovdd not found, using dummy regulator
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: Looking up avdd-supply from device tree
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: Looking up avdd-supply property in node /i2c@feca0000/imx415@1a failed
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: supply avdd not found, using dummy regulator
Jul 05 22:15:07 radxa-cm5-io kernel: imx415 8-001a: Detected imx415 id 0000e0
Jul 05 22:15:07 radxa-cm5-io kernel: rockchip-csi2-dphy csi2-dcphy0: dphy0 matches m00_b_imx415 8-001a:bus type 5
Jul 05 22:15:09 radxa-cm5-io kernel: imx415 8-001a: set fmt: cur_mode: 3864x2192, hdr: 0
Jul 05 22:15:09 radxa-cm5-io kernel: imx415 8-001a: set exposure(shr0) 2047 = cur_vts(2250) - val(203)
Jul 05 22:15:55 radxa-cm5-io kernel: imx415 8-001a: s_stream: 1. 3864x2192, hdr: 0, bpp: 10
Jul 05 22:15:55 radxa-cm5-io kernel: imx415 8-001a: set vblank 0x3a vts 2250
Jul 05 22:15:55 radxa-cm5-io kernel: imx415 8-001a: set exposure(shr0) 2047 = cur_vts(2250) - val(203)
Jul 05 22:15:55 radxa-cm5-io kernel: imx415 8-001a: set analog gain 0x0
Jul 05 22:17:35 radxa-cm5-io kernel: imx415 8-001a: s_stream: 0. 3864x2192, hdr: 0, bpp: 10
Jul 05 22:18:13 radxa-cm5-io kernel: imx415 8-001a: s_stream: 1. 3864x2192, hdr: 0, bpp: 10
Jul 05 22:18:13 radxa-cm5-io kernel: imx415 8-001a: set vblank 0x3a vts 2250

It is detected by media-ctl:

Media controller API version 5.10.110

Media device information
------------------------
driver          rkcif
model           rkcif-mipi-lvds
serial          
bus info        
hw revision     0x0
driver version  5.10.110

Device topology
- entity 1: stream_cif_mipi_id0 (1 pad, 11 links)
            type Node subtype V4L flags 0
            device node name /dev/video0
	pad0: Sink
		<- "rockchip-mipi-csi2":1 [ENABLED]
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 []

- entity 5: stream_cif_mipi_id1 (1 pad, 11 links)
            type Node subtype V4L flags 0
            device node name /dev/video1
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 [ENABLED]
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 []

- entity 9: stream_cif_mipi_id2 (1 pad, 11 links)
            type Node subtype V4L flags 0
            device node name /dev/video2
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 [ENABLED]
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 []

- entity 13: stream_cif_mipi_id3 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video3
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 [ENABLED]
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 []

- entity 17: rkcif_scale_ch0 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video4
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 [ENABLED]
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 []

- entity 21: rkcif_scale_ch1 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video5
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 [ENABLED]
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 []

- entity 25: rkcif_scale_ch2 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video6
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 [ENABLED]
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 []

- entity 29: rkcif_scale_ch3 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video7
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 [ENABLED]
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 []

- entity 33: rkcif_tools_id0 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video8
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 [ENABLED]
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 []

- entity 37: rkcif_tools_id1 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video9
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 [ENABLED]
		<- "rockchip-mipi-csi2":11 []

- entity 41: rkcif_tools_id2 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video10
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []
		<- "rockchip-mipi-csi2":9 []
		<- "rockchip-mipi-csi2":10 []
		<- "rockchip-mipi-csi2":11 [ENABLED]

- entity 45: rockchip-mipi-csi2 (12 pads, 122 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev0
	pad0: Sink
		[fmt:SGBRG10_1X10/3864x2192 field:none
		 crop.bounds:(12,16)/3840x2160
		 crop:(12,16)/3840x2160]
		<- "rockchip-csi2-dphy0":1 [ENABLED]
	pad1: Source
		-> "stream_cif_mipi_id0":0 [ENABLED]
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 []
	pad2: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 [ENABLED]
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 []
	pad3: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 [ENABLED]
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 []
	pad4: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 [ENABLED]
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 []
	pad5: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 [ENABLED]
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 []
	pad6: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 [ENABLED]
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 []
	pad7: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 [ENABLED]
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 []
	pad8: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 [ENABLED]
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 []
	pad9: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 [ENABLED]
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 []
	pad10: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 [ENABLED]
		-> "rkcif_tools_id2":0 []
	pad11: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
		-> "rkcif_tools_id0":0 []
		-> "rkcif_tools_id1":0 []
		-> "rkcif_tools_id2":0 [ENABLED]

- entity 58: rockchip-csi2-dphy0 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev1
	pad0: Sink
		[fmt:SGBRG10_1X10/3864x2192@10000/300000 field:none
		 crop.bounds:(12,16)/3840x2160]
		<- "m00_b_imx415 8-001a":0 [ENABLED]
	pad1: Source
		-> "rockchip-mipi-csi2":0 [ENABLED]

- entity 63: m00_b_imx415 8-001a (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev2
	pad0: Source
		[fmt:SGBRG10_1X10/3864x2192@10000/300000 field:none
		 crop.bounds:(12,16)/3840x2160]
		-> "rockchip-csi2-dphy0":0 [ENABLED]

And when I try to test with the following command:

sudo gst-launch-1.0 -vvv v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=3840,height=2160, framerate=30/1 ! xvimagesink

I don’t see any video on my connected monitor and I see this output on the terminal:

error: XDG_RUNTIME_DIR not set in the environment.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)1:6:11:7
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)1:6:11:7
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)1:6:11:7
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)1:6:11:7


^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:03.968601049
Setting pipeline to NULL ...
Freeing pipeline ...

it appears that the CM5 is similar to the Rock 5C regarding CSI output.
See these comments:


and

And funny enough… keyboard and mouse works straight on cm5 using rock 5c images :man_facepalming:t2:

I think you have CM5 + CM4-NANO-C and it comes with imx219, right? Have you tried to enable the camera on your test?
I’m just curious.

I do but I removed my camera I dont plan on using it… the idea was to keep it minimal and small.

Was it detected at least?

sudo dmesg|grep -i imx

Im gonna try…

Is there anything else I can do? I know nothing about… sbc with cameras.

yeah Ive installed cheese and nothing

Please, just check dmesg after you boot if camera is detected.
If you are running 6.1 from radxa and enable Raspberry Pi camera V2 with rsetup.

Im running Joshuas 6.1 kernel.

How do I do that?

Not sure he fixed the camera interface on his kernel, and don’t know how to enable the camera overlay.
If you test the Radxa image (test only), in the cmd line you just run the:
rsetup or sudo rsetup and choose [ x ] Raspberry Pi Camera V2 and reboot

Sorry Avaf but I cant help you. Im literally obsessed by Arch Linux and doing some testings and dont feel like installing Radxa image just to check that stuff out.
Maybe @kwankiu knows a few tricks.
If on yours its not working on mine it wont either.

No problem.
I was curious if it would work. I don’t have the CM5 + CM4-NANO-C anyway. This would only help in this camera discussion.