Changes between Version 17 and Version 18 of venice/multimedia
- Timestamp:
- 01/16/2026 10:13:29 PM (7 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
venice/multimedia
v17 v18 7 7 8 8 *** Note: GW72xx and GW73xx mated with a GW702x i.MX8M Plus SOM does not support MIPI CSI / DSI. 9 10 11 '''Note that while the GW740x has the same 50-pin MIPI Media Connector, the imx8mp SoC on the GW740x requires different Linux drivers for MIPI which are not supported yet'''12 13 9 14 10 == Kernel Support … … 162 158 3. GStreamer Video display 163 159 {{{#!bash 164 apt -getinstall gstreamer1.0-x gstreamer1.0-tools \160 apt install gstreamer1.0-x gstreamer1.0-tools \ 165 161 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \ 166 162 gstreamer1.0-libav gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 v4l-utils … … 190 186 * Supports simple deinterlacing of interlaced input. 191 187 188 The IMX8M Plus SoC (GW74xx) in addition to the above has an integrated Image Signal Processor (ISP) and can handle additional input bandwidth for larger resolutions/framerate. 189 192 190 CMOS image sensors are separated into two classes, dumb and smart. Dumb sensors are those that support only traditional sensor timing (Vertical SYNC and Horizontal SYNC) and output only RGB, YUV, and Bayer and statistics data, while smart sensors support ITU-R BT.656 video decoder formats and perform additional processing of the image (for example, image compression, image pre-filtering, and various data output formats). Statistics only work for Bayer data is 8-bit per pixel format. 191 192 Note that often you will need to increase your systems CMA allocation to capture. This is evident by 'cma: __cma_alloc__' error messages. The amount to specify can depend on your kernel version, the media pipeline and the resolution you are capturing. The default CMA is 32M, try increasing it to 256M if you get cma errors: 193 {{{#!bash 194 u-boot=> setenv bootargs "$bootargs cma=256M"; saveenv 195 }}} 193 196 194 197 == Compatible capture devices … … 203 206 === Kernel Drivers 204 207 You must have a driver for both the IMX8M MIPI CSI side as well as the camera sensor: 205 * IMX8MM: 206 - 6.6: 207 - CONFIG_VIDEO_IMX7_CSI drivers/media/platform/nxp/imx7-media-csi.c 208 - CONFIG_VIDEO_IMX_MIPI_CSIS drivers/media/platform/nxp/imx-mipi-csis.c 209 - 6.1: 210 - CONFIG_VIDEO_IMX_CSI drivers/staging/media/imx/imx7-media-csi.c 211 - CONFIG_VIDEO_IMX_MIPI_CSIS drivers/media/platform/nxp/imx-mipi-csis.c 212 - 5.15: 213 - CONFIG_VIDEO_IMX_CSI drivers/staging/media/imx/imx7-media-csi.c 214 - CONFIG_VIDEO_IMX7_CSI drivers/staging/media/imx/imx7-mipi-csis.c 215 - IMX8MP: 216 - 6.6: 217 - CONFIG_VIDEO_IMX8_ISI drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c 218 - CONFIG_VIDEO_IMX_MIPI_CSIS drivers/media/platform/nxp/imx-mipi-csis.c 208 - 6.6+: 209 - CONFIG_VIDEO_IMX8_ISI drivers/media/platform/nxp/imx8-isi (i.MX8MP only) 210 - CONFIG_VIDEO_IMX7_CSI drivers/media/platform/nxp/imx7-media-csi.c 211 - CONFIG_VIDEO_IMX_MIPI_CSIS drivers/media/platform/nxp/imx-mipi-csis.c 212 - 6.1: 213 - CONFIG_VIDEO_IMX_CSI drivers/staging/media/imx/imx7-media-csi.c 214 - CONFIG_VIDEO_IMX_MIPI_CSIS drivers/media/platform/nxp/imx-mipi-csis.c 215 - 5.15: 216 - CONFIG_VIDEO_IMX_CSI drivers/staging/media/imx/imx7-media-csi.c 217 - CONFIG_VIDEO_IMX7_CSI drivers/staging/media/imx/imx7-mipi-csis.c 219 218 - IMX219 Image Sensor: 220 219 - CONFIG_VIDEO_IMX219 drivers/media/i2c/imx219.c … … 223 222 To add a device to your system you must properly configure your device-tree to describe how the device is connected to the host processor and other peripherals. Often this is most easily done via a device-tree overlay. 224 223 225 The Gateworks venice kernels have dt overlays that support the IMX219 !RaspberryPi v2 camera module on the GW72xx , GW73xx, and GW74xx boards which can be used as examples for other devices.224 The Gateworks venice kernels have dt overlays that support the IMX219 !RaspberryPi v2 camera module on the GW72xx-0x, GW73xx-0x, and GW74xx boards which can be used as examples for other devices. 226 225 227 226 The dt overlay can be applied to the dt prior to booting the kernel by the Gateworks U-Boot using the 'fdt_overlay' env variable: … … 250 249 - imx8mp-venice-gw74xx-imx219: 251 250 {{{#!bash 251 # install media-ctl tool 252 apt update && apt install -y v4l-utils 252 253 # find imx8mp media device (FSL Capture Media Device) 253 254 MDEV=$(for i in `ls -d /sys/bus/media/devices/media*`; do if [ "$(cat $i/model)" = "FSL Capture Media Device" ]; then cat $i/dev | cut -d: -f2; fi; done) 254 255 # find imx8mm video capture device (GW74xx uses CSI0 on the MIPI connector which is mxc_isi.0.capture) 255 256 VDEV=$(for i in `ls -d /sys/class/video4linux/video*`; do if [ "$(cat $i/name)" = "mxc_isi.0.capture" ]; then cut -d: -f2 $i/dev; fi; done) 256 # install media-ctl tool257 apt update && apt install -y v4l-utils258 257 # configure media controller links 259 258 media-ctl --device $MDEV --reset … … 268 267 * 6.1+ kernel: 269 268 {{{#!bash 269 # install media-ctl tool 270 apt update && apt install -y v4l-utils 270 271 # find imx8mm media device (imx-media) 271 272 MDEV=$(for i in `ls -d /sys/bus/media/devices/media*`; do if [ "$(cat $i/model)" = "imx-media" ]; then cat $i/dev | cut -d: -f2; fi; done) … … 283 284 * 5.15 kernel: 284 285 {{{#!bash 286 # install media-ctl tool 287 apt update && apt install -y v4l-utils 285 288 # find imx8mm media device (imx-media) 286 289 MDEV=$(for i in `ls -d /sys/bus/media/devices/media*`; do if [ "$(cat $i/model)" = "imx-media" ]; then cat $i/dev | cut -d: -f2; fi; done) … … 297 300 === Capture with v4l 298 301 Once you have configured the media pipeline (above) you can configure the appropriate video device for a supported pixel format and resolution and use the Video For Linux (v4l) API to capture: 299 * configure for 640x480 R GB302 * configure for 640x480 RRGB 300 303 {{{#!bash 301 304 v4l2-ctl --device $VDEV --set-fmt-video=width=640,height=480,pixelformat=RGGB --verbose 302 305 v4l2-ctl --device $VDEV --stream-mmap --stream-to=frame.raw --stream-count=1 303 306 # install imagemagic for convert tool 304 apt -get installimagemagick307 apt install -y imagemagick 305 308 convert -size 640x480 -depth 8 gray:frame.raw frame.png 306 309 }}} … … 312 315 # install gstreamer 313 316 apt update 314 apt -get installgstreamer1.0-x gstreamer1.0-tools \317 apt install -y gstreamer1.0-x gstreamer1.0-tools \ 315 318 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \ 316 319 gstreamer1.0-libav gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 v4l-utils … … 328 331 {{{#!bash 329 332 # build bayer2rgb lib 333 apt install -y build-essential git gengetopt autoconf automake autoconf-archive libtool help2man pkg-config 330 334 git clone https://gitlab-ext.sigma-chemnitz.de/ensc/bayer2rgb 331 335 cd bayer2rgb 332 #apt install build-essential git autoconf gengetopt333 apt install build-essential git gengetopt autoconf automake autoconf-archive libtool help2man pkg-config334 336 autoreconf -i -f 335 337 ./configure … … 341 343 git clone https://gitlab-ext.sigma-chemnitz.de/ensc/gst-bayer2rgb-neon 342 344 cd gst-bayer2rgb-neon 343 apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev345 apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 344 346 ./autogen.sh 345 347 ./configure … … 412 414 {{{#!bash 413 415 apt update 414 apt -get installgstreamer1.0-x gstreamer1.0-tools \416 apt install -y gstreamer1.0-x gstreamer1.0-tools \ 415 417 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \ 416 418 gstreamer1.0-libav gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 v4l-utils
