LINUX.ORG.RU

Armbian ошибка отсутствия libvdpau_nvidia.so

 , ,


0

1

На Beelink tvbox с SoC S905X установлен Armbian-20.10-Ubuntu Bionic-5.9.0. При попытке запуска команды vainfo:

root@arm-64:~# vainfo 
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns -1
libva info: User requested driver 'vdpau'
libva info: Trying to open /usr/lib/aarch64-linux-gnu/dri/vdpau_drv_video.so
libva info: Found init function __vaDriverInit_1_0
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
libva error: /usr/lib/aarch64-linux-gnu/dri/vdpau_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

Я не понимаю несколько моментов:

  1. Почему VDPAU backend требует libvdpau_nvidia.so, хотя у меня на Beelink box GPU Mali-450?

  2. Как возможно получить этот файл libvdpau_nvidia.so file? В Ubuntu bionic репозе он присутствует только для таких архитектур: [amd64] [armhf] [i386] а не для моей архитектуры aarch64.

Почему VDPAU backend требует libvdpau_nvidia.so, хотя у меня на Beelink box GPU Mali-450?

Покажи выхлоп команды

ldd /usr/lib/aarch64-linux-gnu/dri/vdpau_drv_video.so

zemidius
()
Ответ на: комментарий от zemidius
root@arm-64:~# ldd /usr/lib/aarch64-linux-gnu/dri/vdpau_drv_video.so
        linux-vdso.so.1 (0x0000ffff84998000)
        libGL.so.1 => /usr/lib/aarch64-linux-gnu/libGL.so.1 (0x0000ffff8483b000)
        libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffff84826000)
        libX11.so.6 => /usr/lib/aarch64-linux-gnu/libX11.so.6 (0x0000ffff846fd000)
        libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff846d1000)
        libvdpau.so.1 => /usr/lib/aarch64-linux-gnu/libvdpau.so.1 (0x0000ffff846bd000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff84564000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffff8496c000)
        libGLX.so.0 => /usr/lib/aarch64-linux-gnu/libGLX.so.0 (0x0000ffff84524000)
        libGLdispatch.so.0 => /usr/lib/aarch64-linux-gnu/libGLdispatch.so.0 (0x0000ffff843f8000)
        libxcb.so.1 => /usr/lib/aarch64-linux-gnu/libxcb.so.1 (0x0000ffff843c8000)
        libXext.so.6 => /usr/lib/aarch64-linux-gnu/libXext.so.6 (0x0000ffff843a8000)
        libXau.so.6 => /usr/lib/aarch64-linux-gnu/libXau.so.6 (0x0000ffff84395000)
        libXdmcp.so.6 => /usr/lib/aarch64-linux-gnu/libXdmcp.so.6 (0x0000ffff84380000)
        libbsd.so.0 => /lib/aarch64-linux-gnu/libbsd.so.0 (0x0000ffff8435e000)

zorinquen
() автор топика
Ответ на: комментарий от zemidius
root@arm-64:~# env | less
LC_ALL=C
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
STY=3761.pts-0.arm-64
SSH_CONNECTION=192.168.1.4 45976 192.168.1.8 22
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US.UTF-8
DISPLAY=:0
S_COLORS=auto
XDG_SESSION_ID=4
USER=root
PWD=/root
HOME=/root
WINDOW=2
SSH_CLIENT=192.168.1.4 45976 22
SSH_TTY=/dev/pts/0
MAIL=/var/mail/root
SHELL=/bin/bash
TERM=screen.xterm-256color
LC_MESSAGES=en_US.UTF-8
SHLVL=2
LANGUAGE=C
LOGNAME=root
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus
XDG_RUNTIME_DIR=/run/user/0
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
TERMCAP=SC|screen.xterm-256color|VT 100/ANSI X3.64 virtual terminal:\
        :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
        :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
        :do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\
        :le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:\
        :li#39:co#140:am:xn:xv:LP:sr=\EM:al=\E[L:AL=\E[%dL:\
        :cs=\E[%i%d;%dr:dl=\E[M:DL=\E[%dM:dc=\E[P:DC=\E[%dP:\
        :im=\E[4h:ei=\E[4l:mi:IC=\E[%d@:ks=\E[?1h\E=:\
        :ke=\E[?1l\E>:vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l:\
        :ti=\E[?1049h:te=\E[?1049l:us=\E[4m:ue=\E[24m:so=\E[3m:\
        :se=\E[23m:mb=\E[5m:md=\E[1m:mh=\E[2m:mr=\E[7m:\
        :me=\E[m:ms:\
        :Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:\
        :vb=\Eg:G0:as=\E(0:ae=\E(B:\
        :ac=\140\140aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:\
        :po=\E[5i:pf=\E[4i:Km=\E[M:k0=\E[10~:k1=\EOP:k2=\EOQ:\
        :k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:\
        :k8=\E[19~:k9=\E[20~:k;=\E[21~:F1=\E[23~:F2=\E[24~:\
        :F3=\E[1;2P:F4=\E[1;2Q:F5=\E[1;2R:F6=\E[1;2S:\
        :F7=\E[15;2~:F8=\E[17;2~:F9=\E[18;2~:FA=\E[19;2~:\
        :FB=\E[20;2~:FC=\E[21;2~:FD=\E[23;2~:FE=\E[24;2~:kb=^?:\
        :K2=\EOE:kB=\E[Z:kF=\E[1;2B:kR=\E[1;2A:*4=\E[3;2~:\
        :*7=\E[1;2F:#2=\E[1;2H:#3=\E[2;2~:#4=\E[1;2D:%c=\E[6;2~:\
        :%e=\E[5;2~:%i=\E[1;2C:kh=\E[1~:@1=\E[1~:kH=\E[4~:\
        :@7=\E[4~:kN=\E[6~:kP=\E[5~:kI=\E[2~:kD=\E[3~:ku=\EOA:\
        :kd=\EOB:kr=\EOC:kl=\EOD:km:
LESSOPEN=| /usr/bin/lesspipe %s
_=/usr/bin/env

А после ребута почему-то выдает

root@arm-64:~# vainfo 
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
vaInitialize failed with error code -1 (unknown libva error),exit
zorinquen
() автор топика

Для кодеков в чипах Amlogic, вроде бы, есть даже открытые драйвера, но они предоставляют интерфейс V4L2 Memory to Memory. Скорее всего, нет ничего, что бы предоставляло интерфейсы VDPAU или VA-API.

libva info: User requested driver ‘vdpau’

Это означает, что ты явно запросил драйвер vdpau_drv_video, который переводит запросы VA-API в VDPAU. Сам по себе он ничего не даст. Его предназначение — подружить приложения, которые умеют работать только с VA-API, с драйверами, которые умеют предоставлять только VDPAU. У тебя нет драйвера, который предоставляет VDPAU. Возможно, какой-то драйвер на просторах интернета есть, но я поверхностным гуглингом ничего не нашёл.

Почему VDPAU backend требует libvdpau_nvidia.so

Название драйвера VDPAU ты не указал, драйвер иксов тоже никакого названия не предоставил, поэтому библиотека-диспетчер libvdpau пытается загрузить драйвер nvidia. Его у тебя тоже нет, потому что у тебя не NVIDIA.

Как возможно получить этот файл libvdpau_nvidia.so file?

Для каких-нибудь NVIDIA Tegra наверняка есть драйвера, там есть. Но тебе он никак не поможет, потому что он для NVIDIA Tegra, а не для Amlogic S905X.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Название драйвера VDPAU ты не указал, драйвер иксов тоже никакого названия не предоставил, поэтому библиотека-диспетчер libvdpau пытается загрузить драйвер nvidia.

Ах вот оно как.

zemidius
()
Ответ на: комментарий от i-rinat

Спасибо, а если использовать открытые драйвера, которые предоставляют интерфейс V4L2, тогда libvdpau_nvidia.so и не будет необходим?

root@arm-64:~# apt-cache search v4l2 | grep driver
v4l2loopback-dkms - Source for the v4l2loopback driver (DKMS)
v4l2loopback-source - Source for the v4l2loopback driver

Получается нужно компилировать, используя v4l2loopback-source или достаточно установить эти 2 пакета?

Сейчас в системе только такая либа v4l2 в наличии:

root@arm-64:~# dpkg -l | grep v4l2
ii  libv4l2rds0:arm64                    1.14.2-1                            arm64        Video4Linux Radio Data System (RDS) decoding library

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

Интерфейс Video4Linux предоставляет ядро Linux, поэтому нужно либо убедиться, что в ядре из дистрибутива нужный драйвер уже включён, либо найти патчи и собрать ядро с ними. Патчи явно посылали в ядерную рассылку, об этом есть упоминание тут: https://lwn.net/Articles/763879/. Но в исходниках ядра 5.12.7 я этих файлов не вижу.

В любом случае, нужно не только драйвера иметь, а чтобы ещё приложения эти интерфейсы использовали. По волшебству всё само работать не будет, к сожалению. На настольном линуксе почти ничего не умеет декодировать через video4linux. Все больше ориентируются на VA-API и VDPAU.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Спасибо, а где примерно в исходниках ядра искать эти файлы?

Чтобы приложения использовали эти интерфейсы достаточно ли будет экспортировать переменную окружения или это по другому делается?

А можно как-то узнать, конкретное приложение декодировать может только через VA-API и VDPAU или video4linux?

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

а где примерно в исходниках ядра искать эти файлы?

На странице https://lwn.net/Articles/763879/ как раз есть список файлов из набора патчей. Судя по нему, файлы должны быть в drivers/media/platform/meson/vdec/.

Чтобы приложения использовали эти интерфейсы достаточно ли будет экспортировать переменную окружения или это по другому делается?

Наиболее вероятна поддержка video4linux — в GStreamer. Там у использующих аппаратные декодеры модулей выше приоритеты, и поэтому они подхватываются автоматически. В других приложениях тоже подхватываться будет автоматом, если поддержка есть. Я думаю, что если авторы некого приложения заморочились аппаратным декодирование видео через video4linux m2m, проверить его доступность они вряд ли забудут.

А можно как-то узнать, конкретное приложение декодировать может только через VA-API и VDPAU или video4linux?

Самый надёжный способ — спросить у авторов приложения. Они либо знают, либо знают, кого спросить. Все остальные способы косвенные. Например, с помощью ldd посмотреть список библиотек, с которыми связано приложение. Если там есть libvdpau.so.1, то вероятна поддержка VDPAU. Если там libva.so.* или libva-*.so.*, то вероятна поддержка VA-API. Некоторые приложения ищут эти библиотеки во время исполнения, и не связаны с ними явно. Тогда поможет просто поиск строк в бинарниках. Для Video4Linux вообще нет обязательных библиотек. Там всё работа идёт через операции над псевдо-файлами. Так что простого способа увидеть нет.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Спасибо за развёрнутый ответ! К сожалению в исходниках ядра вообще нет каталога meson:

root@arm-64:/usr/src/linux-headers-5.10.34-meson64/drivers/media/platform# ls | grep meson

есть только такие каталоги

# ls 
Kconfig   atmel    davinci     marvell-ccic  mtk-vcodec  omap3isp  rockchip   s5p-jpeg  stm32   vsp1
Makefile  cadence  exynos-gsc  mtk-jpeg      mtk-vpu     qcom      s3c-camif  s5p-mfc   sunxi   xilinx
am437x    coda     exynos4-is  mtk-mdp       omap        rcar-vin  s5p-g2d    sti       ti-vpe

Попробовал ldd внутри chroot, т.к. само приложение в chroot находится, но выдало:

root@arm-64:/# ldd /usr/bin/parsecd
ldd: exited with unknown exit code (139)

хотя на другом железе с MX linux выдает на тот же бинарник:

 % ldd /usr/bin/parsecd
	linux-vdso.so.1 (0x00007ffcbfb0f000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3332426000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3332405000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3332244000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f333223f000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f33325dd000)

К сожалению, ни libvdpau.so.1, ни libva.so.* или libva-.so. в выводе нет. Может поможет установка другого ядра, в котором поддержка V4L присутствует?

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

или больше вероятность что это приложение поддерживает VDPAU или VA-API, чем V4L?

но для выяснения этого 1-й вариант остался обратиться к разработчикам или возможны еще варианты как-то это выяснить в CLI?

zorinquen
() автор топика
Ответ на: комментарий от ZenitharChampion

т.е. попробавать назначить ее значение для всех 3 вариантов:

# export LIBVA_DRIVER_NAME=vdpau
# export LIBVA_DRIVER_NAME=v4l2

и

# export LIBVA_DRIVER_NAME=vaapi

?

и какой-то из них по идее может сработать?

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

parsecd

Это Parsec от https://parsec.app, что ли? Судя по строчкам из бинарников, они используют VA-API. Даже вот тут упоминают, что на Intel HD Graphics будет использоваться аппаратное декодирование, а для NVIDIA карт нужно установить переменную export LIBVA_DRIVER_NAME=vdpau и попробовать выполнить vainfo. Всё сходится: и запуск vainfo, и установленная переменная LIBVA_DRIVER_NAME=vdpau.

Но это в версии для x86-64. В версии для Raspberry Pi не вижу упоминаний ни библиотек, ни специфических имён функций VA-API. Зато есть упоминание OpenMAX. Это ещё один стандарт для поддержки аппаратных кодеков, как раз распространённый на ARM-одноплатниках и Android устройствах. Возможно, стоит копать в эту сторону.

Может поможет установка другого ядра, в котором поддержка V4L присутствует?

Возможно, но я бы не расчитывал особо на случайные блуждания. Если у приложения нет поддержки V4L m2m, то смысла от ядра с поддержкой V4L m2m нет.

Скорее всего, самым простым и дешёвым решением будет купить Raspberry Pi, поддержка которого заявлена.

i-rinat ★★★★★
()
Ответ на: комментарий от ZenitharChampion

надо переопределить переменную LIBVA_DRIVER_NAME

Зачем?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Да, это Parsec от parsec.app. Спасибо за линк с полезной инфой о поддержке hardware c родного сайта Parsec.

У меня на Beelink tvbox исп-ся Mali-450 GPU, т.е. получается невозможен в принципе запуск Parsec клиента на этой приставке с аппаратным декодированием, т.к. GPU не Intel HD Graphics и не Nvidia?

У меня Parsec запускается через chroot, на хосте Armbian c Ubuntu Bionic aarch64, а в chroot Ubuntu Focal x86_64/

А надо бы пожалуй в chroot вместо Focal исп-ть тоже Bionic, т.к. на указанном Вами линке с официального сайта Parsec, он официально поддерживает только Ubuntu 18.04 LTS. Хотя в итоге все равно наверное будет возможно только software decoding.

Когда я указываю на Ubuntu Bionic в /etc/X11/xorg.conf.d/01-armbian-defaults.conf явно исп-ть 3D acceleration:

Option      "AccelMethod"    "glamor"     ### "glamor" to enable 3D acceleration, "none" to disable.

при запуске в chroot Parsec выдает в консоле:

root@arm-64:/# parsecd app_daemon=1
libGL error: MESA-LOADER: failed to open meson (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri)
libGL error: failed to load driver: meson
libGL error: failed to get magic
libGL error: failed to load driver: meson
[D 2021-05-27 13:37:51] stun4         = 52.86.26.213:3478
[D 2021-05-27 13:38:00] net           = BUD|::ffff:46.119.240.147|21430
libva info: VA-API version 1.7.0
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
libva info: VA-API version 1.7.0
libva info: User environment variable requested driver 'vdpau'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/vdpau_drv_video.so
libva info: Found init function __vaDriverInit_1_0
Failed to open VDPAU backend libvdpau_meson.so: cannot open shared object file: No such file or directory
libva error: /usr/lib/x86_64-linux-gnu/dri/vdpau_drv_video.so init failed
libva info: va_openDriver() returns -1
[I 2021-05-27 13:38:01] * vaapi_init/WelsCreateDecoder[275] = -1
[D 2021-05-27 13:38:01] decoder       = software

При этом в chroot есть файл

root@arm-64:/opt/focal/usr/lib/x86_64-linux-gnu/dri# file vdpau_drv_video.so 
vdpau_drv_video.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=8726b2ffb39befa16ea81f73ca86e375a867f4fc, stripped

И на хосте есть

root@arm-64:/usr/lib/aarch64-linux-gnu/dri# file vdpau_drv_video.so 
vdpau_drv_video.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=a5fefebb74ed30b6fac642bd013bc987666eb238, stripped

А libvdpau_meson.so нет ни в chroot, ни на хосте:

root@arm-64:/usr/lib/aarch64-linux-gnu/vdpau# ls | grep meson

root@arm-64:/opt/focal/usr/lib/x86_64-linux-gnu/vdpau# ls | grep meson

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

и файл meson_dri.so, присутствующий на Ubuntu bionic в /usr/lib/aarch64-linux-gnu/dri доступен в Ubuntu репо только для arm64 и для armhf в пакете libgl1-mesa-dri.

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

libvdpau_meson.so вообще отсутствут в поиске по содержимому пакетов на packages.ubuntu.com для всех архитектур((

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

Суть вкратце:
Думаю, готового решения твоей проблемы не существует. Если бы оно было, то ты либо уже наткнулся бы на него, пока искал в интернете, либо получил ответ здесь.


У меня на Beelink tvbox исп-ся Mali-450 GPU <…> не Intel HD Graphics и не Nvidia

Когда используют термин GPU, имеют в виду разные вещи в зависимости от ситуации. Это может быть устройство для 2d графики, устройство для 3d графики, устройство для кодирования-декодирования видео-потоков и отдельных изображений. Часто под GPU понимают всё это связанное вместе. Mali это 3d ядро. Возможно, там ещё есть 2d, но не уверен. В Mali не входят видео-кодеки, это отдельные блоки. Intel HD Graphics и NVIDIA это комбинации 2d, 3d и видео-кодеков. Intel и NVIDIA создают дизайн своих чипов полностью. Поэтому драйверы для графики Intel и NVIDIA, скорее всего, содержат драйвера для их видео-кодеков.

В ARM-чипах компоновкой занимаются другие компании, не ARM. Поэтому может оказаться так, что в чипах разных производителей разные видео-кодеки, но одно и то же ядро Mali. Судя по всему, у Amlogic используется кодеки, которые они называют «meson». А у Allwinner, например, это какой-то CedarX.

Так что наличие или отсутствие драйверов для 3d вряд ли как-то связано с драйверами видео-кодеков.

при запуске в chroot

Такое ощущение, что в chroot у тебя x86-64 вариант Ubuntu. Если ты для запуска x86-64 программ используешь qemu, то получаешь просадку скорости раз в 10-20. Имеет смысл попробовать собранный под Raspberry Pi вариант бинарников.

При этом в chroot есть файл vdpau_drv_video.so

Он не поможет, я же уже рассказал почему. Это адаптер между VA-API-приложениями и VDPAU-драйверами. У тебя нет VDPAU-драйвера, поэтому переходник не поможет.

А libvdpau_meson.so нет

Наверное, потому что его никто не создал. Можешь попробовать написать его сам. Но лучше делать VA-API драйвер, потому что нужное тебе приложение использует VA-API. Адаптер vdpau_drv_video — старый и заброшенный проект. Его как лет десять назад бросили, так никто толком не поднял. У него свои особенности, могут быть свои ошибки. Лишнее звено в цепочке будет только мешаться.

файл meson_dri.so

Это похоже на часть 3d драйвера. Вряд ли она связана с VA-API.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Спасибо за полезные уточнения! Да у меня в chroot x86-64 Ubuntu Focal. И ранее я пытался исп-ть в chroot с Raspbian запустить Raspberry версию Parsec, но пи запуске

# parsecd app_daemon=1
* failed to open vchiq instance

И устройства /dev/vchiq не было в системе. VCHIQ - командняй интерфейс между ядром linux и периферией и насколько я понял, т.к. в моем Beelink tvbox нет подобного Raspberry железа и /dev/vchiq интерфейса возникает ошибка.

И следовательно такие действия как

# mknod /dev/vchiq c 243 0
# chmod 777 /dev/vchiq
# adduser root video

тоже ни к чему не привели…

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

Не переживай хотели сделать из x86_64 меинфреимовый билд (он же собирараемый с помощью паразитория на системе с помощью которой хотели с паразитировать вычеркнув автора что и в рос ит делается даже в более чем 99% случаях если даже оттуда так) arm он же i686 i686-w64-mingw32-g++

anonymous
()
Ответ на: комментарий от zorinquen

failed to open vchiq instance

И после это не работает совсем? Если программа переключается на софтовое декодирование, это может быть достаточно, если ARM-система достаточно мощная. Они уже сейчас достаточно производительные для софтового декодирования видео. Разве что греются больше.

И опять-таки, проще, дешевле и быстрее просто купить Raspberry Pi и запускать на нём. Все остальные подходы займут намного больше времени.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

да, после это не стартовал совсем Parsec. Честно сказать ARM на SoC 905X слабоватая как по мне ARM-система.

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

Ну, тогда вперёд и с песней.

Строки «/dev/vchiq» в бинарнике и библиотеке parsecd нет, зато она есть в библиотеке libvchiq_arm.so, упоминание которой есть в parsecd-150-22.so. Стало быть, достаточно написать замену libvchiq_arm.so, которая будет предоставлять тот же интерфейс, транслируя его в команды, которые понимает выбранная тобой SoC.

i-rinat ★★★★★
()
Ответ на: комментарий от zorinquen

Ну не форкануло не до работали

anonymous
()
Ответ на: комментарий от zorinquen
$ strings -a parsecd-150-28.so | grep libva
b@libva.so.2
libva.so.1
libva-x11.so.2
libva-x11.so
libva-wayland.so.2
libva-wayland.so
libva 2 is now required for hardware acceleration. Use "sudo apt-get install libva2" to install it.
$ strings -a parsecd-150-28.so | grep -i vaapi
Vaapi unable to get display.
VAAPI: (%d.%d) %s
Unable to load VAAPI libraries.
Unable to load VAAPI WM libraries.
Unable to map VAAPI functions.
Vaapi unable to open Wayland libraries.
Vaapi unable to open Wayland display.
Vaapi unable to open X display.
Unable to get VAAPI entry points.
Unable to find VAAPI entry point.
vaapi_init
$ 
i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

пока нет, но может быть профинансирую))

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

Потому что это драйвер VDPAU с VA-API бекендом. Другими словами, он помогает программам увидеть VDPAU интерфейс. Если в системе доступны драйвера с интерфейсом VA-API, он может использовать их. И тогда программам, которые умеют использовать VDPAU станет доступно аппаратно-ускоренное декодирование.

i-rinat ★★★★★
()

Я не понимаю несколько моментов

Да и хуй с ними!

anonymous
()
Ответ на: комментарий от i-rinat

т.е. подразумевается наличие VA-API (Intel), а у меня Mali GPU поэтому и не выйдет использовать VDPAU драйвер с VA-API бекендом?

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

Примерно так, да. В принципе, драйвер будет работать и без доступного VA-API. Просто не будет доступно аппаратное декодирование.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.