LINUX.ORG.RU
решено ФорумAdmin

Исправить DTS для ffmpeg vs Cedrus H264

 , , ,


0

1

Приветствую!

Как бы включить аппаратную поддежку кодирования h264 на железке Nanopi neo core с ядром

# uname -a
Linux NanoPi-NEO-Core 4.14.111 #126 SMP Mon Feb 22 17:04:18 CST 2021 armv7l armv7l armv7l GNU/Linux

Скомпилил и установил ffmpeg с Cedrus H264 и cedar_ve.ko


# dmesg | grep cedar
[    4.982170] cedar_ve: loading out-of-tree module taints kernel.
[    4.988972] sunxi cedar version 0.1

правлю /boot/sun8i-h3-nanopi-neo-core.dts

        reserved-memory {
                #address-cells = <0x01>;
                #size-cells = <0x01>;
                ranges;

                cma@43c00000 {
                        compatible = "shared-dma-pool";
                        reusable;
                        reg = < 0x57c00000 0x6000000 >;
                        linux,cma-default;
                        phandle = < 0x84 >;
                };
        };

..................
                video-engine@01c0e000 {
                        compatible = "allwinner,sunxi-cedar-ve";
                        reg = < 0x1c0e000 0x1000 0x1c00000 0x10 0x1c20000 0x800 >;
                        memory-region = < 0x84 >;
                        syscon = < 0x15 >;
                        clocks = < 0x03 0x29 0x03 0x6c 0x03 0x61 >;
                        clock-names = "ahb", "mod", "ram";
                        resets = < 0x03 0x1a >;
                        interrupts = < 0x00 0x3a 0x04 >;
                        status = "okay";
                };

теперь имеем

# dmesg | grep CMA
[    0.000000] Reserved memory: created CMA memory pool at 0x000000004a000000, size 96 MiB

# dmesg | grep cedar
[    4.944911] cedar_ve: loading out-of-tree module taints kernel.
[    4.951697] sunxi cedar version 0.1
[    4.955629] [cedar]: install start!!!
[    4.959521] cedar_ve: cedar-ve the get irq is 55
[    4.964193] sunxi-cedar 1c0e000.video-engine: assigned reserved memory node cma@43c00000
[    4.972512] sunxi-cedar 1c0e000.video-engine: syscon failed...
[    4.998164] sunxi-cedar 1c0e000.video-engine: failed to get ahb clock

теперь правлю syscon

                syscon@1c00000 {
                        compatible = "allwinner,sun8i-h3-system-controller", "syscon";
                        reg = < 0x1c00000 0x1000 >;
                        #address-cells = < 0x01 >;
                        #size-cells = < 0x01 >;
                        ranges;

                        sram@1d00000 {
                            compatible = "mmio-sram";
                            reg = < 0x1d00000 0x80000 >;
                            #address-cells = < 0x01 >;
                            #size-cells = < 0x01 >;
                            ranges = < 0x00 0x1d00000 0x80000 >;

                            sram-section@0 {
                                compatible = "allwinner,sun8i-h3-sram-c1", "allwinner,sun4i-a10-sram-c1";
                                reg = < 0x00 0x80000 >;
                            };
                        };
                };

и все, больше железка не бутиться ((

★★★

9 августа 2023 г.
Ответ на: комментарий от zerpico

да тебе нужен корректный dtb и драйвер, через год я уже слабо помню, но делал так - скачал с официального сайта исходники ядра, что стояли на нанопае, с самой железки взял файл конфигурации ядра, в 2х dtsi внес изменения и собрал ядро, полученный dtb перенес на железку, потом на ней пришлось еще кучу адресов для устройств откорректировать декомпилируя-компилируя полученное дерево, чтобы dmesg не ругался.

а вообще нужны в первую очередь аппаратные кодеки для железки и тот что в ффмпеге от древней 2.5 кажется версии мне не пригодился пока что, т.к. аппаратного декодирования jpeg я не нашел, а кодирование в h264 на процессоре оказалось практически столько же времени занимает, но с учетом того, что мне для онлайн вещания нет задачи в фуллхд отдавать, то получилось даже кодирование быстрее, чем декодирование.

с декодированием h264 вообще даже не разбирался, есть ли аппаратный декодер для нанопая.

wolverin ★★★
() автор топика
Последнее исправление: wolverin (всего исправлений: 1)
21 ноября 2023 г.