i’m working with the following configuration:
Apalis iMX8QM 4GB WB IT V1.1D
Ixora Carrier Board V 1.2A
Linux BSP 6.3.0
I would like to improve the ability to load video via MIPI CSI-2.
When you run the MIPI CSI-2 driver, a capture sub device is created, but /dev/videoX is not created.
However, when I tried to play it with gstreamer, it stopped in the following state:
# gst-launch-1.0 v4l2src device=/dev/video2 ! autovideosink
[ 1337.132101] usb 3-1.2: reset high-speed USB device number 4 using ci_hdrc
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Hi @sjjin , I’m still not convinced that the driver is properly recognized. How did you add the TP2855 driver? Can you share the device tree and kernel config?
Well, the TP2855 is there according to the Kernel configuration. Do you have any information or reference on how this was added? This is not in our default BSP and I couldn’t find any information in Google about a Linux driver.
When you run the MIPI CSI-2 driver, a capture sub device is created, but /dev/videoX is not created.
I could see 6 video devices (video0-5) so I understand that this is not a problem anymore. Do you get the same response.
Checking the NXP Linux User Guide for 5.15 (Used in BSP 6.3.0), this is the correct Gstreamer pipeline for a TV decoder however, I don’t think this is your usecase. Have you tried any other pipelines for Webcam preview like the following?
Well, the TP2855 is there according to the Kernel configuration. Do you have any information or reference on how this was added? This is not in our default BSP and I couldn’t find any information in Google about a Linux driver.
Permissions are limited, but you can find it on the NXP Community:
I could see 6 video devices (video0-5) so I understand that this is not a problem anymore. Do you get the same response.
You are right.
Checking the NXP Linux User Guide for 5.15 (Used in BSP 6.3.0), this is the correct Gstreamer pipeline for a TV decoder however, I don’t think this is your usecase. Have you tried any other pipelines for Webcam preview like the following?
I also tried other pipelines.
However, when I tried to play it with gstreamer, it stopped in the following state:
# gst-launch-1.0 v4l2src device=/dev/video2 ! 'video/x-raw, format=(string)UYVY,width=1920,height=1080,framerate=(fraction)30/1' ! autovideosink
[ 1835.096744] usb 3-1.2: reset high-speed USB device number 3 using ci_hdrc
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Also, pls check the output for gst-inspect-1.0 v4l2src
Hi @sjjin , thanks for all the information. Based on the logs, I think you have a USB/UVC camera. Does Gstreamer work for this USB camera? That should be very straightforward.
Kindly confirm.
The TP2855 seems to be correctly identified so my suspicion is with the Gstreamer pipeline. Let’s confirm that the USB camera is working.
I got USB/UVC information using v4l2-ctl --list-devices:
UVC Camera (046d:0825) (usb-ci_hdrc.1-1.2):
/dev/video5
/dev/video6
/dev/media2
The video was confirmed normally when played with gstreamer.
# gst-launch-1.0 v4l2src device=/dev/video5 ! autovideosink
[ 211.928876] usb 3-1.2: reset high-speed USB device number 3 using ci_hdrc
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
0:00:04.4 / 99:99:99.
Do you have any additional requests for debugging?
Hi @sjjin , sorry for the delay on this. I think we have everything needed for debugging. My suspicion is that the device tree is not correctly configured. I’m currently checking more in detail. Let me get back to you with any update.
FYI I’m checking ADV7280 implementation, since should be fairly similar.
However, when playing with gstreamer, the video is not output.
# gst-launch-1.0 v4l2src device=/dev/video2 ! 'video/x-raw,width=1920,height=1080,framerate=(fraction)30/1' ! autovideosink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
[ 188.765976] bypass csc
[ 188.768397] input fmt YUV4
[ 188.771104] output fmt YUYV
Sorry @sjjin , unfortunately no updates from my side… Any update from yours?
We don’t have any tp2855 here to further debug or test, so we cannot help you much directly apart from pointing you to similar devices like the AR0521 or ADV7280 for reference. We can present you a development partner if you need some further help.
We were able to confirm MIPI-CSI2 video output using AR1335.
However, our ultimate goal is to convert the input from 4 AHD cameras to MIPI-CSI2 and supply it to the carrier board to view the video through virtual channels.
Do you have any experience with this? In the case of ADV7280M, it appears to provide a 1-lane MIPI CSI-2 output, but is it possible to achieve virtual channel 4xHD@30 output?
Hi @sjjin , I see. Virtual channels are a whole different beast. From Toradex we don’t add anything special on that so one should just use whatever NXP uses. i.MX8QM should be able to handle 4x 1080p@30 given that 4k@30 is supported clock-wise (AR1335) (For uncompressed UYVY Output Format)
I personally don’t have any experience with virtual channels. I asked my colleagues.
Hi @sjjin thanks for your email the other day, I believe you got this working. Can you share the device tree and the Gstreamer pipeline you used at the end? This would provide great value to other users.