Как я могу запустить OV5647_mipi на iMX8QXP - PullRequest
1 голос
/ 01 февраля 2020

Привет, у меня есть комплект iMX8QXP, и я хочу получить поток с камеры ov5647.

DISTRO = fsl-imx-wayland.

Контакт моей камеры ov5647 подключен к:

MIPI_CSI0_ACM_MCLK_OUT MIPI_CSI0_MCLK_OUT alt0

MIPI_CSI0_CKN MIPI_CSI0_CLK_N alt0 MIPI_CSI0_CKP MIPI_CSI0_CLK_P alt0 MIPI_CSI0_DN0 MIPI_CSI0_DATA0_N alt0 MIPI_CSI0_DN1 MIPI_CSI0_DATA1_N alt0 MIPI_CSI0_DN2 MIPI_CSI0_DATA2_N alt0

MIPI_CSI0_DN3 MIPI_CSI0_DATA3_N alt0 MIPI_CSI0_DP0 MIPI_CSI0_DATA0_P alt0 MIPI_CSI0_DP1 MIPI_CSI0_DATA1_P alt0 MIPI_CSI0_DP2 MIPI_CSI0_DATA2_P alt0 MIPI_CSI0_DP3 MIPI_CSI0_DATA3_P alt0

Но контакты I2 C не подключены. Это проблема? Могу ли я получить данные с камеры без инициализации через i2 c?

Так что я не могу найти эти контакты (с именами сигналов пэдов) в ./include/dt-bindings/pinctrl/pads-imx8qxp.h и если я записываю эти форматы контактных площадок, я получаю ошибку вместо записи MIPI_CSI0_ACM_MCLK_OUT. Я думаю, что эти контакты выделены, и я не могу мультиплексировать Я могу использовать напрямую без изменений scfw.

Итак, мой файл dts о камере MIPI CSI:


&iomuxc {
imx8qxp-mek {
pinctrl_mipi_csi0: mipicsi0grp{
fsl,pins = <
SC_P_MIPI_CSI0_MCLK_OUT_MIPI_CSI0_ACM_MCLK_OUT 0xC0000041
SC_P_MIPI_CSI0_GPIO0_01_LSIO_GPIO3_IO07 0xC0000041
SC_P_MIPI_CSI0_GPIO0_00_LSIO_GPIO3_IO08 0xC0000041
>;
};

pinctrl_parallel_csi: parallelcsigrp {
fsl,pins = <
SC_P_CSI_D00_CI_PI_D02 0xC0000041
SC_P_CSI_D01_CI_PI_D03 0xC0000041
SC_P_CSI_D02_CI_PI_D04 0xC0000041
SC_P_CSI_D03_CI_PI_D05 0xC0000041
SC_P_CSI_D04_CI_PI_D06 0xC0000041
SC_P_CSI_D05_CI_PI_D07 0xC0000041
SC_P_CSI_D06_CI_PI_D08 0xC0000041
SC_P_CSI_D07_CI_PI_D09 0xC0000041

SC_P_CSI_MCLK_CI_PI_MCLK 0xC0000041
SC_P_CSI_PCLK_CI_PI_PCLK 0xC0000041
SC_P_CSI_HSYNC_CI_PI_HSYNC 0xC0000041
SC_P_CSI_VSYNC_CI_PI_VSYNC 0xC0000041
SC_P_CSI_EN_LSIO_GPIO3_IO02 0xC0000041
SC_P_CSI_RESET_LSIO_GPIO3_IO03 0xC0000041
>;
};
};
};

&isi_0 {
interface = <6 0 2>; /* INPUT: 6-PARALLEL CSI */
parallel_csi;
status = "okay";
};

&cameradev {
parallel_csi;
status = "okay";
};

&parallel_csi {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
port@0 {
reg = <0>;
parallel_csi_ep: endpoint {
remote-endpoint = <&ov5647_ep>;
};
};
};

&isi_2 {
interface = <2 0 2>;
status = "okay";
};

&isi_1 {
status = "disabled";
};

&isi_3 {
status = "disabled";
};

&isi_4 {
status = "disabled";
};

&isi_5 {
status = "disabled";
};

&isi_6 {
status = "disabled";
};

&isi_7 {
status = "disabled";
};

&i2c0_csi0 {
clock-frequency = <100000>;
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
ov5647_mipi: ov5647_mipi@36 {
compatible = "ovti,ov5647_mipi";
reg = <0x36>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_mipi_csi0>;
clocks = <&clk IMX8QXP_24MHZ>;
clock-names = "csi_mclk";
csi_id = <0>;
pwn-gpios = <&gpio3 7 GPIO_ACTIVE_LOW>;
rst-gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
mclk = <24000000>;
mclk_source = <0>;
mipi_csi;
status = "okay";
port {
ov5647_mipi_ep: endpoint {
remote-endpoint = <&mipi_csi0_ep>;
};
};
};

/delete-node/max9286_mipi@6A;
};

&mipi_csi_0 {
/delete-property/virtual-channel;
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
mipi_csi0_ep: endpoint {
remote-endpoint = <&ov5647_mipi_ep>;
data-lanes = <1 2>;
};
};
};
&i2c0_cm40 {
#address-cells = <1>;
#size-cells = <0>;
ov5647: ov5647@36 {
compatible = "ovti,ov5647";
reg = <0x36>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_parallel_csi>;
clocks = <&clk IMX8QXP_PARALLEL_CSI_MISC0_CLK>;
clock-names = "csi_mclk";
pwn-gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
rst-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>;
csi_id = <0>;
mclk = <24000000>;
mclk_source = <0>;
status = "okay";
port {
ov5647_ep: endpoint {
remote-endpoint = <&parallel_csi_ep>;
};
};
};
};

Затем я открываю поддержку ov5647_mipi через make menuconfig:

make menuconfig> Драйверы устройств> Поддержка мультимедиа> Устройства на платформе V4L> MX C Поддержка функций Camera / V4L2 RPR> Поддержка камеры Omnivision ov5647 с использованием mipi> (*). Я добавляю y сюда.

После загрузки нового видео в / dev нет. (с драйвером ov5647 или без него размер видео не меняется. Есть video12 и video13)

И я меняю поддержку камеры Omnivision ov5647, используя mipi на m (модуль сборки), и я insmod ov5647_camera_mipi.ko

модуль загружен и вот так:

brk(NULL) = 0x1b168000
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=43413, ...}) = 0
mmap(NULL, 43413, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff8ba94000
close(3) = 0
openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\300$\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=88392, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8ba92000
mmap(NULL, 151928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff8ba4c000
mprotect(0xffff8ba61000, 61440, PROT_NONE) = 0
mmap(0xffff8ba70000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0xffff8ba70000
close(3) = 0
openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\260C\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1405888, ...}) = 0
mmap(NULL, 1477872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xffff8b8e3000
mprotect(0xffff8ba33000, 65536, PROT_NONE) = 0
mmap(0xffff8ba43000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x150000) = 0xffff8ba43000
mmap(0xffff8ba49000, 11504, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff8ba49000
close(3) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff8b8e1000
mprotect(0xffff8ba43000, 12288, PROT_READ) = 0
mprotect(0xffff8ba70000, 4096, PROT_READ) = 0
mprotect(0x42f000, 4096, PROT_READ) = 0
mprotect(0xffff8baa1000, 4096, PROT_READ) = 0
munmap(0xffff8ba94000, 43413) = 0
brk(NULL) = 0x1b168000
brk(0x1b189000) = 0x1b189000
uname({sysname="Linux", nodename="imx8qxpmek", ...}) = 0
openat(AT_FDCWD, "/lib/modules/4.19.35-1.1.0+g0f9917c56d59/modules.softdep", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/proc/cmdline", O_RDONLY|O_CLOEXEC) = 3
read(3, "root=/dev/mmcblk1p2 ro rootwait "..., 4095) = 88
read(3, "", 4007) = 0
close(3) = 0
newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home/ov5647_camera_mipi.ko", {st_mode=S_IFREG|0644, st_size=28736, ...}, 0) = 0
openat(AT_FDCWD, "/home/ov5647_camera_mipi.ko", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177E", 2) = 2
lseek(3, 0, SEEK_SET) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=28736, ...}) = 0
mmap(NULL, 28736, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff8ba97000
finit_module(3, "", 0) = 0
munmap(0xffff8ba97000, 28736) = 0
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++

и я попытался video12 и video13 открыть камеру через lvds с помощью следующих команд:

Команда:

gst-launch-1.0 -v videotestsr c pattern = ball \! видео / x-raw, ширина = 320, высота = 240 \! видеоконверт \! тройник \! v4l2sink device = / dev / video12 Вывод:

root@imx8qxpmek: / home # gst-launch-1.0 -v videotestsr c pattern = ball \

! видео / x-raw, ширина = 320, высота = 240 \! видеоконверт \! тройник \! v4l2sink device = / dev / video12 Установка конвейера на PAUSED ... ОШИБКА: конвейер не хочет останавливаться. ОШИБКА: от элемента / GstPipeline: pipe0 / GstV4l2Sink: v4l2sink0: Устройство '/ dev / video12' не является устройством вывода. Дополнительная информация отладки: ../../../git/sys/v4l2/v4l2_calls.c(687): gst_v4l2_open (): / GstPipeline: pipe0 / GstV4l2Sink: v4l2sink0: Возможности: 0x4204000 Настройка конвейера для NULL .. Освобождающий конвейер ...

root@imx8qxpmek: / home #


Команда:

gst-launch-1.0 -v videotestsr c pattern = ball \! видео / x-raw, ширина = 320, высота = 240 \! видеоконверт \! тройник \! v4l2sink device = / dev / video12 Вывод:

Установка конвейера на PAUSED ... Конвейер PREROLLING ... /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video / x-raw, формат = (строка) NV12, ширина = (int) 320, высота = (int) 240, частота кадров = (фракция) 30/1, режим multiview-mode = (строка) моно, чересстрочная развертка1 / GstPipeline: pipe0 / GstCapsFilter: capsfilter0.GstPad: sr c: caps = video / x-raw, формат = (строка) NV12, ширина = (int) 320, высота = (int) 240, частота кадров = (фракция) 30/1, многовариантность -mode = (string) mono, interlace-mod1 / GstPipeline: pipe0 / GstVideoConvert: videoconvert0. GstPad: sr c: caps = video / x-raw, формат = (строка) NV12, ширина = (int) 320, высота = (int) 240, частота кадров = (фракция) 30/1, режим множественного просмотра = ( string) mono, interlace1 /GstPipeline:pipeline0/GstTee:tee0.GstTeePad:src_0: caps = video / x-raw, формат = (строка) NV12, ширина = (int) 320, высота = (int) 240, частота кадров = ( фракция) 30/1, multiview-mode = (строка) моно, чересстрочный режим = (string1 /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0.GstPad:sink: caps = video / x-raw, формат = (строка) NV12, ширина = (int) 320, height = (int) 240, частота кадров = (фракция) 30/1, режим многовидового просмотра = (строка) моно, режим чересстрочной развертки = (1 /GstPipeline:pipeline0/GstTee:tee0.GstPad:sink: caps = video / x-raw, формат = (строка) NV12, ширина = (int) 320, высота = (int) 240, частота кадров = (фракция) 30/1, режим мультивью просмотра = (строка) моно, режим чересстрочной развертки = (строка) pro1 /GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video / x-raw, формат = (строка) NV12, ширина = (int) 320, высота = (int) 240, частота кадров = ( фракция) 30/1, multiview-mode = (string) mono, interlac1 / GstPipeline: pipe0 / GstCapsFilter: capsfilter0.GstPad: сток: caps = видео / x-raw, формат = (строка) NV12, ширина = (int) 320, высота = (int) 240, частота кадров = (фракция) 30/1, режим мультивью (строка) mono, interlace-mo1 конвейер ОБЫЧЕН ... Установка конвейера на ВОСПРОИЗВЕДЕНИЕ ... Новые часы: GstSystemClock

^ Прерывание чандлинга. -------------------------------------> CTRL + C Прерывание: остановка конвейера ... Выполнение завершилось после 0: 01: 03.000609625 Установка конвейера на PAUSED ... Установка конвейера на READY ... Установка конвейера на NULL ... Освобождение конвейера ...


команда:

gst-launch-1.0 -e имя glvideomixer = фон микса = 3 раковина_0 :: xpos = 192 раковина_0 :: ypos = 0 раковина_0 :: ширина = 640 раковина_0 :: высота = 480 раковина_0 :: zorder = 1! "video / x-raw, ширина = 1024, высота = 768"! glimagesink rotate-method = горизонтальный флип v4l2sr c device = / dev / video13! видео / x-raw, ширина = 640, высота = 480! mix.sink_0 &

output:

Установка конвейера на PAUSED ... Конвейер активен и не нуждается в PREROLL ... Получил контекст из элемента 'sink': gst.gl.GLDisplay = context, gst.gl.GLDisplay = (GstGLDisplay) "(GstGLDisplayWayland) \ gldisplaywayland0"; Установка конвейера на PLAYING ... Новые часы: GstSystemClock ОШИБКА: от элемента / GstPipeline: pipe0 / GstV4l2Sr c: v4l2src0: Внутренняя ошибка потока данных. Дополнительная информация для отладки: ../../../../git/libs/gst/base/gstbasesrc.c(3072): gst_base_src_l oop (): / GstPipeline: pipeline0 / GstV4l2Sr c: v4l2src0: потоковая передача остановлена, причина не согласована (-4) EOS при завершении работы включена - ожидание EOS после ошибки Ожидание EOS ...


команда:

gst-launch-1.0 -e имя glvideomixer = смесь фона = 3 раковина_0 :: xpos = 192 раковина_0 :: ypos = 0 раковина_0 :: ширина = 640 раковина_0 :: высота = 480 раковина_0 :: zorder = 1! "video / x-raw, ширина = 1024, высота = 768"! glimagesink rotate-method = горизонтальный флип v4l2sr c устройство = / dev / video12! видео / x-raw, ширина = 640, высота = 480! mix.sink_0 &

Вывод:

Установка конвейера на PAUSED ... ОШИБКА: конвейер не хочет останавливаться. Получил контекст из элемента 'sink': gst.gl.GLDisplay = context, gst.gl.GLDisplay = (GstGLDisplay) "(GstGLDisplayWayland) \ gldisplaywayland0"; ОШИБКА: из элемента / GstPipeline: pipe0 / GstV4l2Sr c: v4l2src0: Устройство '/ dev / video12' не является устройством захвата. Дополнительная информация отладки: ../../../git/sys/v4l2/v4l2_calls.c(679): gst_v4l2_open (): / GstPipeline: pipe0 / GstV4l2Sr c: v4l2src0: Возможности: 0x4204000 Настройка конвейера для NULL ... освобождающий конвейер ...

Помогите пожалуйста. Я жду вашего предложения.


Редактировать 1:

Я изменяю файл dts следующим образом:

&iomuxc {
    imx8qxp-mek {
        pinctrl_mipi_csi0: mipicsi0grp{
            fsl,pins = <
                SC_P_MIPI_CSI0_MCLK_OUT_MIPI_CSI0_ACM_MCLK_OUT  0xC0000041
                SC_P_MIPI_CSI0_GPIO0_01_LSIO_GPIO3_IO07     0xC0000041
                SC_P_MIPI_CSI0_GPIO0_00_LSIO_GPIO3_IO08     0xC0000041
            >;
        };

        pinctrl_parallel_csi: parallelcsigrp {
            fsl,pins = <
                SC_P_CSI_D00_CI_PI_D02      0xC0000041
                SC_P_CSI_D01_CI_PI_D03      0xC0000041
                SC_P_CSI_D02_CI_PI_D04      0xC0000041
                SC_P_CSI_D03_CI_PI_D05      0xC0000041
                SC_P_CSI_D04_CI_PI_D06      0xC0000041
                SC_P_CSI_D05_CI_PI_D07      0xC0000041
                SC_P_CSI_D06_CI_PI_D08      0xC0000041
                SC_P_CSI_D07_CI_PI_D09      0xC0000041

                SC_P_CSI_MCLK_CI_PI_MCLK        0xC0000041
                SC_P_CSI_PCLK_CI_PI_PCLK        0xC0000041
                SC_P_CSI_HSYNC_CI_PI_HSYNC      0xC0000041
                SC_P_CSI_VSYNC_CI_PI_VSYNC      0xC0000041
                SC_P_CSI_EN_LSIO_GPIO3_IO02     0xC0000041
                SC_P_CSI_RESET_LSIO_GPIO3_IO03  0xC0000041
            >;
        };
    };
};

&isi_0 {
    interface = <6 0 2>;    /* INPUT: 6-PARALLEL CSI */
    parallel_csi;
    status = "disable";
};

&cameradev {
    mipi_csi_0;
    status = "okay";
};

&parallel_csi {
    #address-cells = <1>;
    #size-cells = <0>;
    status = "disable";
    port@0 {
        reg = <0>;
        parallel_csi_ep: endpoint {
            remote-endpoint = <&ov5647_ep>;
        };
    };
};

&isi_2 {
    interface = <2 0 2>;
    status = "okay";
};

&isi_1 {
    status = "disabled";
};

&isi_3 {
    status = "disabled";
};

&isi_4 {
    status = "disabled";
};

&isi_5 {
    status = "disabled";
};

&isi_6 {
    status = "disabled";
};

&isi_7 {
    status = "disabled";
};

&i2c0_csi0 {
    clock-frequency = <100000>;
    status = "okay";
    #address-cells = <1>;
    #size-cells = <0>;
    ov5647_mipi: ov5647_mipi@36 {
        compatible = "ovti,ov5647_mipi";
        reg = <0x36>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_mipi_csi0>;
        clocks = <&clk IMX8QXP_24MHZ>;
        clock-names = "csi_mclk";
        csi_id = <0>;
        pwn-gpios = <&gpio3 7 GPIO_ACTIVE_LOW>;
        rst-gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
        mclk = <24000000>;
        mclk_source = <0>;
        mipi_csi;
        status = "okay";
        port {
            ov5647_mipi_ep: endpoint {
                remote-endpoint = <&mipi_csi0_ep>;
            };
        };
    };

    /delete-node/max9286_mipi@6A;
};

&mipi_csi_0 {
    virtual-channel;
    status = "okay";
    #address-cells = <1>;
    #size-cells = <0>;
    port@0 {
        reg = <0>;
        mipi_csi0_ep: endpoint {
            remote-endpoint = <&ov5647_mipi_ep>;
            data-lanes = <1 2>;
        };
    };
};
&i2c0_cm40 {
    #address-cells = <1>;
    #size-cells = <0>;
    ov5647: ov5647@36 {
        compatible = "ovti,ov5647";
        reg = <0x36>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_parallel_csi>;
        clocks = <&clk IMX8QXP_PARALLEL_CSI_MISC0_CLK>;
        clock-names = "csi_mclk";
        pwn-gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
        rst-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>;
        csi_id = <0>;
        mclk = <24000000>;
        mclk_source = <0>;
        status = "disabled";
        port {
            ov5647_ep: endpoint {
                remote-endpoint = <&parallel_csi_ep>;
            };
        };
    };
};

теперь мне кажутся модули: root@imx8qxpmek: / # find -name " ov5647"./sys/bus/i2c/drivers/ov5647_mipi ./sys/firmware/devicetree/base/i2c@37230000/ov5647@36 ./sys/firmware/devicetree/base/i2c@58226000/ov5647_mipi@36 ./sys/module/ ov5647_camera_mipi

и когда ls / dev сейчас два / dev / video. (video0 и video1).

Почему сейчас два видеоканала?

Также есть ошибка в моем файле dts. Что это:

root@imx8qxpmek: / # dmesg | grep ov5

[3.667601] ov5647_mipi 16-0036: ошибка при применении настроек, отменить все назад [3.674673] ov5647_mipi: сбой зонда 16-0036 с ошибкой -22

Я жду помощи .


Редактировать 2: я удалил

        SC_P_MIPI_CSI0_GPIO0_01_LSIO_GPIO3_IO07     0xC0000041
        SC_P_MIPI_CSI0_GPIO0_00_LSIO_GPIO3_IO08     0xC0000041

из файла dts. (Я думаю, что был конфликт контактов)

root@imx8qxpmek:/# dmesg | grep ov5
[    3.641815] ov5647_mipi 16-0036: 16-0036 supply DOVDD not found, using dummy regulator
[    3.649866] ov5647_mipi 16-0036: Linked as a consumer to regulator.0
[    3.656255] ov5647_mipi 16-0036: 16-0036 supply DVDD not found, using dummy regulator
[    3.664175] ov5647_mipi 16-0036: 16-0036 supply AVDD not found, using dummy regulator
[    4.751720] ov5647_read_reg:write reg error:reg=300a
[    4.756696] camera ov5647_mipi is not found
root@imx8qxpmek:/# 

Также я пробую video0, video1 и video12 с этой командой:

root@imx8qxpmek:/# gst-launch-1.0 v4l2src device=/dev/video12 glimagesink                                                                                                                                   
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayWayland\)\ gldisplaywayland0";
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device '/dev/video12' is not a capture device.
Additional debug info:
../../../git/sys/v4l2/v4l2_calls.c(679): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Capabilities: 0x4204000
Setting pipeline to NULL ...
Freeing pipeline ...
root@imx8qxpmek:/# 

Но video13 отличается:

root@imx8qxpmek:/# gst-launch-1.0 v4l2src device=/dev/video13 glimagesink                                                                                                                                   
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayWayland\)\ gldisplaywayland0";
Caught SIGSEGV
Setting pipeline to PLAYING ...
New clock: GstSystemClock
#0  0x0000ffffbce2a1a0 in __GI___poll (fds=0x13944c50, nfds=2, 
#1  0x0000ffffbcf4b22c in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x0000ffffbcf4b640 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#3  0x0000ffffbd0da5bc in gst_bus_poll () from /usr/lib/libgstreamer-1.0.so.0
#4  0x0000000000404828 in ?? ()
#5  0x00000000004036a8 in ?? ()
#6  0x0000ffffbcd89264 in __libc_start_main (main=0x4032c0, argc=4, 
#7  0x0000000000403d44 in ?? ()
Spinning.  Please run 'gdb gst-launch-1.0 4434' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.

Теперь я снова жду помощи !!

...