x-linux-ai: recipes-samples: remove custom patches for setup camera script
Since commit 7f1a3011521c955760b2fec24e64a721d22eaa91 ("applications: replace
camera source v4l2src with libcamera") in the meta-st-x-linux-ai layer, the
setup camera script has been replaced by libcamera. As a result, these patches
are no longer applicable.
https://onedigi.atlassian.net/browse/DEL-9734
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
This commit is contained in:
parent
b13fda0a2d
commit
d8ab99f9b2
|
|
@ -1,8 +0,0 @@
|
|||
# Copyright (C) 2024,2025, Digi International Inc.
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
|
||||
|
||||
SRC_URI += " \
|
||||
file://patches/0002-setup_camera_main_isp-fix-support-for-web-camera.patch \
|
||||
file://patches/0003-setup_camera_main_isp-fix-support-for-CSI-DCMIPP-cam.patch \
|
||||
"
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From: Arturo Buzarra <arturo.buzarra@digi.com>
|
||||
Date: Tue, 21 Jan 2025 12:08:51 +0100
|
||||
Subject: [PATCH] setup_camera_main_isp: fix support for web camera
|
||||
|
||||
This commit fixes the logic for detecting internal DCMIPP camera devices and
|
||||
disables any image post-processing when using USB cameras.
|
||||
|
||||
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
|
||||
---
|
||||
.../resources/files/resources-files/setup_camera_main_isp.sh | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/resources-files/setup_camera_main_isp.sh b/resources-files/setup_camera_main_isp.sh
|
||||
index b52ffa2..444bf37 100644
|
||||
--- a/resources-files/setup_camera_main_isp.sh
|
||||
+++ b/resources-files/setup_camera_main_isp.sh
|
||||
@@ -56,11 +56,11 @@ function is_dcmipp_present() {
|
||||
|
||||
function get_webcam_device() {
|
||||
found="NOTFOUND"
|
||||
for video in $(find /sys/class/video4linux -name "video*" -type l | sort);
|
||||
do
|
||||
- if [ "$(cat $video/name)" = "dcmipp_main_capture" ] || [ "$(cat $video/name)" = "st,stm32mp25-vdec-dec" ] || [ "$(cat $video/name)" = "st,stm32mp25-venc-enc" ] || [ "$(cat $video/name)" = "dcmipp_dump_capture" ] || [ "$(cat $video/name)" = "dcmipp_aux_capture" ] || [ "$(cat $video/name)" = "dcmipp_main_isp_stat_capture" ] ; then
|
||||
+ if [ "$(cat $video/name)" = "dcmipp_main_capture" ] || [ "$(cat $video/name)" = "st,stm32mp25-vdec-dec" ] || [ "$(cat $video/name)" = "st,stm32mp25-venc-enc" ] || [ "$(cat $video/name)" = "dcmipp_dump_capture" ] || [ "$(cat $video/name)" = "dcmipp_aux_capture" ] || [ "$(cat $video/name)" = "dcmipp_main_isp_stat_capture" ] || [ "$(cat $video/name)" = "dcmipp_main_isp_params_output" ] ; then
|
||||
found="FOUND"
|
||||
else
|
||||
V4L_DEVICE="$(basename $video)"
|
||||
break;
|
||||
fi
|
||||
@@ -220,6 +220,7 @@ else
|
||||
V4L2_CAPS="video/x-raw, width=$WIDTH, height=$HEIGHT"
|
||||
V4L_OPT="io-mode=4"
|
||||
v4l2-ctl --set-parm=20
|
||||
echo "V4L_DEVICE_PREV="$V4L_DEVICE
|
||||
echo "V4L2_CAPS_PREV="$V4L2_CAPS
|
||||
+ echo "MAIN_POSTPROC= "
|
||||
fi
|
||||
--
|
||||
2.34.1
|
||||
|
|
@ -1,177 +0,0 @@
|
|||
From f15237c3b2eaf73cdf1c1103c32f2373c003e7bb Mon Sep 17 00:00:00 2001
|
||||
From: Arturo Buzarra <arturo.buzarra@digi.com>
|
||||
Date: Mon, 3 Feb 2025 11:53:24 +0100
|
||||
Subject: [PATCH] setup_camera_main_isp: fix support for CSI DCMIPP cameras
|
||||
|
||||
This commit fixes the configuration stream for CSI cameras connected to the
|
||||
internal DCMIPP peripheral, including the following changes:
|
||||
|
||||
- Since the /dev/media* indexes are not guaranteed by the Linux kernel and can
|
||||
cause errors, this commit hardcodes the DCMIPP node to be used with the
|
||||
media-ctl command
|
||||
|
||||
- Keep the dynamic check to find the preferred resolution and format for the
|
||||
IMX335 camera sensor. However, use hardcoded values for the OV5640 sensor, as
|
||||
it occasionally reports incorrect values, causing capture failures.
|
||||
|
||||
- Add support for applying horizontal mirror (flip) mode to the camera video
|
||||
image.
|
||||
|
||||
- Print configuration commands to display to the user the settings applied by
|
||||
the script.
|
||||
|
||||
https://onedigi.atlassian.net/browse/DEL-9486
|
||||
|
||||
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
|
||||
---
|
||||
.../resources-files/setup_camera_main_isp.sh | 46 +++++++++++--------
|
||||
1 file changed, 27 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/resources-files/setup_camera_main_isp.sh b/resources-files/setup_camera_main_isp.sh
|
||||
index 444bf37..466b9b3 100644
|
||||
--- a/resources-files/setup_camera_main_isp.sh
|
||||
+++ b/resources-files/setup_camera_main_isp.sh
|
||||
@@ -17,13 +17,15 @@ FMTdisplay=RGB16
|
||||
FMTnn=RGB
|
||||
CAMERA_WIDTH=640
|
||||
CAMERA_HEIGHT=480
|
||||
displaybuscode=RGB565_2X8_LE
|
||||
nnbuscode=RGB888_1X24
|
||||
+MEDIA_DCMIPP="platform:48030000.dcmipp"
|
||||
|
||||
function cmd() {
|
||||
cmd=$1
|
||||
+ echo "${cmd}"
|
||||
eval $cmd > /dev/null 2>&1
|
||||
}
|
||||
|
||||
function is_dcmipp_present() {
|
||||
DCMIPP_SENSOR="NOTFOUND"
|
||||
@@ -33,19 +35,18 @@ function is_dcmipp_present() {
|
||||
if [ "$(cat $video/name)" = "dcmipp_aux_capture" ]; then
|
||||
V4L_DEVICE_PREV="$(basename $video)"
|
||||
echo "V4L_DEVICE_PREV="$V4L_DEVICE_PREV
|
||||
fi
|
||||
if [ "$(cat $video/name)" = "dcmipp_main_capture" ]; then
|
||||
- cd $video/device/
|
||||
- mediadev=/dev/$(ls -d media*)
|
||||
- cd -
|
||||
+ mediadev=${MEDIA_DCMIPP}
|
||||
for sub in $(find /sys/class/video4linux -name "v4l-subdev*" -type l);
|
||||
do
|
||||
subdev_name=$(tr -d '\0' < $sub/name | awk '{print $1}')
|
||||
if [ "$subdev_name" = "ov5640" ] || [ "$subdev_name" = "imx335" ]; then
|
||||
DCMIPP_SENSOR=$subdev_name
|
||||
V4L_DEVICE="$(basename $video)"
|
||||
+ sensorsubdevnode="$(basename $sub)"
|
||||
sensorsubdev="$(tr -d '\0' < $sub/name)"
|
||||
sensordev=$(media-ctl -d $mediadev -p -e "$sensorsubdev" | grep "node name" | awk -F\name '{print $2}')
|
||||
#interface is connected to input of isp (":1 [ENABLED" with media-ctl -p)
|
||||
interfacesubdev=$(media-ctl -d $mediadev -p -e "dcmipp_input" | grep ":1 \[ENABLED" | awk -F\" '{print $2}')
|
||||
fi
|
||||
@@ -90,20 +91,19 @@ if [ "$DEVICE" != "" ]; then
|
||||
V4L_DEVICE_PREV="$(basename $video)"
|
||||
echo "V4L_DEVICE_PREV="$V4L_DEVICE_PREV
|
||||
fi
|
||||
done
|
||||
if [ "$(cat /sys/class/video4linux/$DEVICE/name)" = "dcmipp_dump_capture" ] || [ "$(cat /sys/class/video4linux/$DEVICE/name)" = "dcmipp_main_capture" ] ; then
|
||||
- cd /sys/class/video4linux/$DEVICE/device/
|
||||
- mediadev=/dev/$(ls -d media*)
|
||||
- cd -
|
||||
+ mediadev=${MEDIA_DCMIPP}
|
||||
for sub in $(find /sys/class/video4linux -name "v4l-subdev*" -type l);
|
||||
do
|
||||
subdev_name=$(tr -d '\0' < $sub/name | awk '{print $1}')
|
||||
if [ "$subdev_name" = "imx335" ] || [ "$subdev_name" = "ov5640" ]; then
|
||||
DCMIPP_SENSOR=$subdev_name
|
||||
echo "DCMIPP_SENSOR="$DCMIPP_SENSOR
|
||||
V4L_DEVICE="$(basename $DEVICE)"
|
||||
+ sensorsubdevnode="$(basename $sub)"
|
||||
sensorsubdev="$(tr -d '\0' < $sub/name)"
|
||||
sensordev=$(media-ctl -d $mediadev -p -e "$sensorsubdev" | grep "node name" | awk -F\name '{print $2}')
|
||||
#interface is connected to input of isp (":1 [ENABLED" with media-ctl -p)
|
||||
interfacesubdev=$(media-ctl -d $mediadev -p -e "dcmipp_input" | grep ":1 \[ENABLED" | awk -F\" '{print $2}')
|
||||
fi
|
||||
@@ -126,12 +126,12 @@ if [ "$DCMIPP_SENSOR" != "NOTFOUND" ]; then
|
||||
#Use sensor in raw-bayer format
|
||||
sensorbuscode=`v4l2-ctl --list-subdev-mbus-codes -d $sensordev | grep SRGGB | awk -FMEDIA_BUS_FMT_ '{print $2}'`
|
||||
|
||||
if [ "$DCMIPP_SENSOR" = "ov5640" ]; then
|
||||
#OV5640 only support 720p with raw-bayer format
|
||||
- CAMERA_WIDTH=1280
|
||||
- CAMERA_HEIGHT=720
|
||||
+ SENSORWIDTH=1280
|
||||
+ SENSORHEIGHT=720
|
||||
#OV5640 claims to support all raw bayer combinations but always output SBGGR8_1X8...
|
||||
sensorbuscode=SBGGR8_1X8
|
||||
elif [ "$DCMIPP_SENSOR" = "imx335" ]; then
|
||||
if [ $dual_pipe -eq 1 ]; then
|
||||
aux_postproc=`media-ctl -d $mediadev -e dcmipp_aux_postproc`
|
||||
@@ -139,21 +139,21 @@ if [ "$DCMIPP_SENSOR" != "NOTFOUND" ]; then
|
||||
else
|
||||
main_postproc=`media-ctl -d $mediadev -e dcmipp_main_postproc`
|
||||
echo "main_postproc="$main_postproc
|
||||
fi
|
||||
sensorbuscode=SRGGB10_1X10
|
||||
- fi
|
||||
|
||||
- #Let sensor return its prefered resolution & format
|
||||
- media-ctl -d $mediadev --set-v4l2 "'$sensorsubdev':0[fmt:$sensorbuscode/${SENSORWIDTH}x${SENSORHEIGHT}@1/${FPS} field:none]" > /dev/null 2>&1
|
||||
- sensorfmt=`media-ctl -d $mediadev --get-v4l2 "'$sensorsubdev':0" | awk -F"fmt:" '{print $2}' | awk -F" " '{print $1}'`
|
||||
- SENSORWIDTH=`echo $sensorfmt | awk -F"/" '{print $2}' | awk -F"x" '{print $1}'`
|
||||
- SENSORHEIGHT=`echo $sensorfmt | awk -F"/" '{print $2}' | awk -F"x" '{print $2}' | awk -F" " '{print $1}' | awk -F"@" '{print $1}'`
|
||||
+ #Let sensor return its prefered resolution & format
|
||||
+ sensorfmt=`media-ctl -d $mediadev --get-v4l2 "'$sensorsubdev':0" | awk -F"fmt:" '{print $2}' | awk -F" " '{print $1}'`
|
||||
+ SENSORWIDTH=`echo $sensorfmt | awk -F"/" '{print $2}' | awk -F"x" '{print $1}'`
|
||||
+ SENSORHEIGHT=`echo $sensorfmt | awk -F"/" '{print $2}' | awk -F"x" '{print $2}' | awk -F" " '{print $1}' | awk -F"@" '{print $1}'`
|
||||
+ fi
|
||||
|
||||
- # echo "sensorsubdev="$sensorsubdev
|
||||
- # echo "interfacesubdev="$interfacesubdev
|
||||
- # echo "sensorbuscode="$sensorbuscode
|
||||
+ echo "sensorsubdevnode="$sensorsubdevnode
|
||||
+ echo "sensorsubdev="$sensorsubdev
|
||||
+ echo "interfacesubdev="$interfacesubdev
|
||||
+ echo "sensorbuscode="$sensorbuscode
|
||||
|
||||
if [ $dual_pipe -eq 1 ]; then
|
||||
#Use main pipe for debayering, scaling and color conversion
|
||||
echo "Mediacontroller graph:"
|
||||
|
||||
@@ -180,11 +180,15 @@ if [ "$DCMIPP_SENSOR" != "NOTFOUND" ]; then
|
||||
# Configure Pipe2 PostProcessing to the display resolution
|
||||
cmd " media-ctl -d $mediadev --set-v4l2 \"'dcmipp_aux_postproc':0[compose:(0,0)/${WIDTH}x${HEIGHT}]\""
|
||||
cmd " media-ctl -d $mediadev --set-v4l2 \"'dcmipp_aux_postproc':1[fmt:$displaybuscode/${WIDTH}x${HEIGHT}]\" -v"
|
||||
echo ""
|
||||
|
||||
- #v4l2-ctl -d /dev/v4l-subdev6 --set-ctrl=horizontal_flip=1
|
||||
+ echo "Video4linux driver:"
|
||||
+ # Use to mirror(flip) the camera video image horizontally
|
||||
+ cmd " v4l2-ctl -d /dev/$sensorsubdevnode --set-ctrl=horizontal_flip=1"
|
||||
+ echo ""
|
||||
+
|
||||
V4L2_CAPS_PREV="video/x-raw, format=$FMTdisplay, width=$WIDTH, height=$HEIGHT, framerate=$FPS/1"
|
||||
V4L2_CAPS_NN="video/x-raw, format=$FMTnn, width=$RQ_NN_WIDTH, height=$RQ_NN_HEIGHT, framerate=$FPS/1"
|
||||
V4L_OPT=""
|
||||
echo "V4L_DEVICE_PREV="$V4L_DEVICE_PREV
|
||||
echo "V4L_DEVICE_NN="$V4L_DEVICE
|
||||
@@ -201,11 +205,15 @@ if [ "$DCMIPP_SENSOR" != "NOTFOUND" ]; then
|
||||
cmd " media-ctl -d $mediadev --set-v4l2 \"'dcmipp_main_isp':1[fmt:RGB888_1X24/${SENSORWIDTH}x${SENSORHEIGHT} field:none]\""
|
||||
cmd " media-ctl -d $mediadev --set-v4l2 \"'dcmipp_main_postproc':0[compose:(0,0)/${WIDTH}x${HEIGHT}]\""
|
||||
cmd " media-ctl -d $mediadev --set-v4l2 \"'dcmipp_main_postproc':1[fmt:$displaybuscode/${WIDTH}x${HEIGHT}]\""
|
||||
echo ""
|
||||
|
||||
- #v4l2-ctl -d /dev/v4l-subdev6 --set-ctrl=horizontal_flip=1
|
||||
+ echo "Video4linux driver:"
|
||||
+ # Use to mirror(flip) the camera video image horizontally
|
||||
+ cmd " v4l2-ctl -d /dev/$sensorsubdevnode --set-ctrl=horizontal_flip=1"
|
||||
+ echo ""
|
||||
+
|
||||
V4L2_CAPS="video/x-raw, format=$FMTdisplay, width=$WIDTH, height=$HEIGHT"
|
||||
V4L_OPT=""
|
||||
echo "V4L_DEVICE_PREV="$V4L_DEVICE
|
||||
echo "V4L2_CAPS_PREV="$V4L2_CAPS
|
||||
echo "DCMIPP_SENSOR="$DCMIPP_SENSOR
|
||||
--
|
||||
2.34.1
|
||||
|
||||
Loading…
Reference in New Issue