Congrats.By reading the forum and kernel module sources I managed to get the IMX477 to stream in RAW using media controller and a stripped-down imx477 driver similar to dummy_sensor (but with all the media-controller stuff included) without libcamera and using user-space-only I2C operations. I will fork and push my modifications once it's clean.
Yes, as that is exactly what libcamera is doing. As it's common for many platforms, it's been abstracted out. The bits of interest will be pisp pipeline handler and the common enumerateVideoDevices.However, I couldn't figure out how to deal with media controller in C automatically. Before running the raw reading program I first need to find the right device numbers for the media-controller ($MD), video dev ($VD) and sensor sub-dev ($SD) and setup the link using:Is there a way to automatically find those 3 device numbers in C and create the required topology?Code:
export MD=0export SD=5export VD=8export SENSOR="'imx477 6-001a'"media-ctl -v -d $MD -V -rmedia-ctl -v -d $MD -V "$SENSOR:0 [fmt:SRGGB10_1X10/1332x990 field:none]"media-ctl -v -d $MD -V "'csi2':0 [fmt:SRGGB10_1X10/1332x990 field:none]"media-ctl -v -d $MD -V "'csi2':4 [fmt:SRGGB10_1X10/1332x990 field:none]"media-ctl -v -d $MD --links "'csi2':4 -> 'pisp-fe':0 [0]"media-ctl -v -d $MD --links "'csi2':4 -> 'rp1-cfe-csi2_ch0':0 [1]"v4l2-ctl --set-fmt-video width=1332,height=990,pixelformat='pRAA' -d /dev/video$VD
Statistics: Posted by 6by9 — Mon Feb 26, 2024 11:45 am