Changes between Version 17 and Version 18 of venice/multimedia


Ignore:
Timestamp:
01/16/2026 10:13:29 PM (7 days ago)
Author:
Tim Harvey
Comment:

minor updates

Legend:

Unmodified
Added
Removed
Modified
  • venice/multimedia

    v17 v18  
    77
    88*** 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 
    139
    1410== Kernel Support
     
    1621583. GStreamer Video display
    163159{{{#!bash
    164 apt-get install gstreamer1.0-x gstreamer1.0-tools \
     160apt install gstreamer1.0-x gstreamer1.0-tools \
    165161gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
    166162gstreamer1.0-libav gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 v4l-utils
     
    190186 * Supports simple deinterlacing of interlaced input.
    191187
     188The 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
    192190CMOS 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
     192Note 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
     194u-boot=> setenv bootargs "$bootargs cma=256M"; saveenv
     195}}}
    193196
    194197== Compatible capture devices
     
    203206=== Kernel Drivers
    204207You 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
    219218 - IMX219 Image Sensor:
    220219   - CONFIG_VIDEO_IMX219 drivers/media/i2c/imx219.c
     
    223222To 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.
    224223
    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.
     224The 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.
    226225
    227226The dt overlay can be applied to the dt prior to booting the kernel by the Gateworks U-Boot using the 'fdt_overlay' env variable:
     
    250249 - imx8mp-venice-gw74xx-imx219:
    251250{{{#!bash
     251# install media-ctl tool
     252apt update && apt install -y v4l-utils
    252253# find imx8mp media device (FSL Capture Media Device)
    253254MDEV=$(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)
    254255# find imx8mm video capture device (GW74xx uses CSI0 on the MIPI connector which is mxc_isi.0.capture)
    255256VDEV=$(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 tool
    257 apt update && apt install -y v4l-utils
    258257# configure media controller links
    259258media-ctl --device $MDEV --reset
     
    268267  * 6.1+ kernel:
    269268{{{#!bash
     269# install media-ctl tool
     270apt update && apt install -y v4l-utils
    270271# find imx8mm media device (imx-media)
    271272MDEV=$(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)
     
    283284  * 5.15 kernel:
    284285{{{#!bash
     286# install media-ctl tool
     287apt update && apt install -y v4l-utils
    285288# find imx8mm media device (imx-media)
    286289MDEV=$(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)
     
    297300=== Capture with v4l
    298301Once 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 RGB
     302 * configure for 640x480 RRGB
    300303{{{#!bash
    301304v4l2-ctl --device $VDEV --set-fmt-video=width=640,height=480,pixelformat=RGGB --verbose
    302305v4l2-ctl --device $VDEV --stream-mmap --stream-to=frame.raw --stream-count=1
    303306# install imagemagic for convert tool
    304 apt-get install imagemagick
     307apt install -y imagemagick
    305308convert -size 640x480 -depth 8 gray:frame.raw frame.png
    306309}}}
     
    312315# install gstreamer
    313316apt update
    314 apt-get install gstreamer1.0-x gstreamer1.0-tools \
     317apt install -y gstreamer1.0-x gstreamer1.0-tools \
    315318gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
    316319gstreamer1.0-libav gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 v4l-utils
     
    328331{{{#!bash
    329332# build bayer2rgb lib
     333apt install -y build-essential git gengetopt autoconf automake autoconf-archive libtool help2man pkg-config
    330334git clone https://gitlab-ext.sigma-chemnitz.de/ensc/bayer2rgb
    331335cd bayer2rgb
    332 #apt install build-essential git autoconf gengetopt
    333 apt install build-essential git gengetopt autoconf automake autoconf-archive libtool help2man pkg-config
    334336autoreconf -i -f
    335337./configure
     
    341343git clone https://gitlab-ext.sigma-chemnitz.de/ensc/gst-bayer2rgb-neon
    342344cd gst-bayer2rgb-neon
    343 apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
     345apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
    344346./autogen.sh
    345347./configure
     
    412414{{{#!bash
    413415apt update
    414 apt-get install gstreamer1.0-x gstreamer1.0-tools \
     416apt install -y gstreamer1.0-x gstreamer1.0-tools \
    415417gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
    416418gstreamer1.0-libav gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 v4l-utils