$ vdpauinfo
display: :0 screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0
Video surface:
name width height types
-------------------------------------------
420 8192 8192 NV12 YV12
422 8192 8192 UYVY YUYV
444 8192 8192 Y8U8V8A8 V8U8Y8A8
Decoder capabilities:
name level macbs width height
----------------------------------------------------
MPEG1 0 16384 2048 2048
MPEG2_SIMPLE 3 16384 2048 2048
MPEG2_MAIN 3 16384 2048 2048
H264_BASELINE 41 16384 2048 2048
H264_MAIN 41 16384 2048 2048
H264_HIGH 41 16384 2048 2048
VC1_SIMPLE --- not supported ---
VC1_MAIN --- not supported ---
VC1_ADVANCED --- not supported ---
MPEG4_PART2_SP --- not supported ---
MPEG4_PART2_ASP --- not supported ---
DIVX4_QMOBILE --- not supported ---
DIVX4_MOBILE --- not supported ---
DIVX4_HOME_THEATER --- not supported ---
DIVX4_HD_1080P --- not supported ---
DIVX5_QMOBILE --- not supported ---
DIVX5_MOBILE --- not supported ---
DIVX5_HOME_THEATER --- not supported ---
DIVX5_HD_1080P --- not supported ---
H264_CONSTRAINED_BASELINE --- not supported ---
H264_EXTENDED --- not supported ---
H264_PROGRESSIVE_HIGH --- not supported ---
H264_CONSTRAINED_HIGH --- not supported ---
H264_HIGH_444_PREDICTIVE --- not supported ---
HEVC_MAIN --- not supported ---
HEVC_MAIN_10 --- not supported ---
HEVC_MAIN_STILL --- not supported ---
HEVC_MAIN_12 --- not supported ---
HEVC_MAIN_444 --- not supported ---
Output surface:
name width height nat types
----------------------------------------------------
B8G8R8A8 8192 8192 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R8G8B8A8 8192 8192 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R10G10B10A2 8192 8192 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
B10G10R10A2 8192 8192 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
Bitmap surface:
name width height
------------------------------
B8G8R8A8 8192 8192
R8G8B8A8 8192 8192
R10G10B10A2 8192 8192
B10G10R10A2 8192 8192
A8 8192 8192
Video mixer:
feature name sup
------------------------------------
DEINTERLACE_TEMPORAL y
DEINTERLACE_TEMPORAL_SPATIAL -
INVERSE_TELECINE -
NOISE_REDUCTION y
SHARPNESS y
LUMA_KEY -
HIGH QUALITY SCALING - L1 -
HIGH QUALITY SCALING - L2 -
HIGH QUALITY SCALING - L3 -
HIGH QUALITY SCALING - L4 -
HIGH QUALITY SCALING - L5 -
HIGH QUALITY SCALING - L6 -
HIGH QUALITY SCALING - L7 -
HIGH QUALITY SCALING - L8 -
HIGH QUALITY SCALING - L9 -
parameter name sup min max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH y 48 2048
VIDEO_SURFACE_HEIGHT y 48 2048
CHROMA_TYPE y
LAYERS y 0 4
attribute name sup min max
-----------------------------------------------------
BACKGROUND_COLOR y
CSC_MATRIX y
NOISE_REDUCTION_LEVEL y 0.00 1.00
SHARPNESS_LEVEL y -1.00 1.00
LUMA_KEY_MIN_LUMA y
LUMA_KEY_MAX_LUMA y
nouveau и firmware для vdpau
nouveau и firmware для vdpau
Распаковал проприетарное firmware в /lib/firmware/nouveau по рецепту с nouveau.freedesktop.org для vdpau различных форматов видео, прописал в параметры загрузки ядра (и в параметры загрузки модуля nouveau) nouveau.config=NvGrUseFW=1, однако, vdpauinfo выдаёт следующее:
Похоже, что nouveau просто не загружает/не загружает firmware. Есть ли пути решения этой проблемы? Использовать проприетарный блоб не предлагать.
Re: nouveau и firmware для vdpau
Также в dmesg проскакивает следующая ошибка:
[code[ 3.144263] nouveau 0000:01:00.0: DRM: failed to create encoder 0/1/0: -19
][/code]
[code[ 3.144263] nouveau 0000:01:00.0: DRM: failed to create encoder 0/1/0: -19
][/code]
Re: nouveau и firmware для vdpau
Выложите, пожалуйста, весь вывод dmesg (или, лучше, загрузите данные с помощью hw-probe).
C VDPAU при использовании nouveau я не разбирался, но если дело именно в том, что firmware не то или лежит не там, в логе это может быть видно.
C VDPAU при использовании nouveau я не разбирался, но если дело именно в том, что firmware не то или лежит не там, в логе это может быть видно.
Re: nouveau и firmware для vdpau
hw-probe
На данный момент запущено ядро 4.4.4 (проверял, не характерный ли это для ветки 4.1 баг) не из R7, но в использующемся там 4.1. та же ошибка касательно nouveau и та же ситуация с firmware.
hw-probe 4.1.19-nrj-desktop
На данный момент запущено ядро 4.4.4 (проверял, не характерный ли это для ветки 4.1 баг) не из R7, но в использующемся там 4.1. та же ошибка касательно nouveau и та же ситуация с firmware.
hw-probe 4.1.19-nrj-desktop
Re: nouveau и firmware для vdpau
В ходе поиска решения нашёл следующую проблему с va-api:
vainfo выдал следующие ошибки:
Решение:
После чего vainfo не выдаёт ошибок:
vainfo выдал следующие ошибки:
По адресу /usr/lib/dri/ нет симлинка nouveau_drv_video.so на библиотеку /usr/lib/dri/vdpau_drv_video.solibva info: Trying to open /usr/lib/dri/nouveau_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
Решение:
Код: Выделить всё
# ln -s /usr/lib/dri/vdpau_drv_video.so /usr/lib/dri/nouveau_drv_video.so
Но проблема с загрузкой firmware остаётся актуальной.$ vainfo
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/nouveau_drv_video.so
libva info: Found init function __vaDriverInit_0_35
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.1)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Baseline : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
Re: nouveau и firmware для vdpau
Странно то, что в dmesg вообще нет никаких упоминаний о загрузке nouveau firmware.euspectre писал(а):Выложите, пожалуйста, весь вывод dmesg

Хотя модуль работает с переданным ему параметром:
Код: Выделить всё
cat /sys/module/nouveau/parameters/* | grep FW
NvGrUseFW=1
myhost alex # dmesg | grep -i firmware
myhost alex #
Re: nouveau и firmware для vdpau
Тот баг для серии "Maxwell", если не ошибаюсь. Необх. firmware для них NVidia выпустила только недавно. Плюс, в nouveau поддержка такого firmware, кажется, в ядре 4.6 только появилась.Brainey писал(а): Также найден схожий баг на багтрекере, где сказано об ошибке загрузке firmware
Т.е. в Вашем случае явно что-то другое.
Re: nouveau и firmware для vdpau
Но с другой стороны это говорит о том, что nouveau поддерживает (или поддерживал) загрузку firmware в ROSA. В таком случае, я даже не знаю, куда копать в отедльно взятой установленной у меня системе.Тот баг для серии "Maxwell", если не ошибаюсь. Необх. firmware для них NVidia выпустила только недавно. Плюс, в nouveau поддержка такого firmware, кажется, в ядре 4.6 только появилась.
PS: если у кого-то нормально работает такая связка (nouveau + firmware), отпишитесь пожалуйста в теме, тогда буду точно знать, что проблема где-то в моей конфигурации.
Re: nouveau и firmware для vdpau
Да, для обычного firmware - поддерживает. А для такого - пока неясно.Brainey писал(а): Но с другой стороны это говорит о том, что nouveau поддерживает (или поддерживал) загрузку firmware в ROSA. В таком случае, я даже не знаю, куда копать в отедльно взятой установленной у меня системе.
Глянул сегодня по коду nouveau - что-то не понял сходу, где именно драйвер ищет это firmware. Но вроде бы должно выводиться "using external firmware". Возможно, сообщение просто как отладочное выводится, а они в лог по умолчанию не попадают.
Попробуйте при загрузке добавить ещё такие параметры ядру: drm.debug=0x06 log_buf_len=1M ignore_loglevel
Тогда отладочные сообщения ядра и драйверов должны быть видны в выводе dmesg.
Re: nouveau и firmware для vdpau
Спасибо, но вывод по nouveau не сильно увеличился:
А может, nouveau не виноват, а стоит как-то хитрО переконфигурить образ initramfs с помощью dracut? Вдруг это именно он не видит firmware (которое, кстати, отлично подгружалось на debian).
Код: Выделить всё
[ 4.051638] [drm:nouveau_display_options] Loading Nouveau with parameters:
[ 4.051640] [drm:nouveau_display_options] ... tv_disable : 0
[ 4.051641] [drm:nouveau_display_options] ... ignorelid : 0
[ 4.051642] [drm:nouveau_display_options] ... duallink : 1
[ 4.051643] [drm:nouveau_display_options] ... nofbaccel : 0
[ 4.051644] [drm:nouveau_display_options] ... config : NvGrUseFW=1
[ 4.051645] [drm:nouveau_display_options] ... debug : (null)
[ 4.051646] [drm:nouveau_display_options] ... noaccel : 0
[ 4.051647] [drm:nouveau_display_options] ... modeset : 1
[ 4.051648] [drm:nouveau_display_options] ... runpm : -1
[ 4.051649] [drm:nouveau_display_options] ... vram_pushbuf : 0
[ 4.051650] [drm:nouveau_display_options] ... pstate : 0
[ 4.051832] fb: switching to nouveaufb from VESA VGA
[ 5.927696] nouveau 0000:01:00.0: NVIDIA G94 (094100a1)
[ 6.066676] nouveau 0000:01:00.0: bios: version 62.94.3c.00.00
[ 6.067838] nouveau 0000:01:00.0: DRM: hdmi device not found 1 0 1
[ 6.088014] nouveau 0000:01:00.0: fb: 512 MiB GDDR3
[ 6.140574] nouveau 0000:01:00.0: DRM: VRAM: 512 MiB
[ 6.140582] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
[ 6.140593] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
[ 6.140601] nouveau 0000:01:00.0: DRM: DCB version 4.0
[ 6.140609] nouveau 0000:01:00.0: DRM: DCB outp 00: 02000300 00000028
[ 6.140618] nouveau 0000:01:00.0: DRM: DCB outp 01: 01000302 00020030
[ 6.140626] nouveau 0000:01:00.0: DRM: DCB outp 02: 04011310 00000028
[ 6.140634] nouveau 0000:01:00.0: DRM: DCB outp 03: 02011312 00000030
[ 6.140642] nouveau 0000:01:00.0: DRM: DCB outp 04: 010223f1 00c0c080
[ 6.140650] nouveau 0000:01:00.0: DRM: DCB conn 00: 00001030
[ 6.140658] nouveau 0000:01:00.0: DRM: DCB conn 01: 00002130
[ 6.140666] nouveau 0000:01:00.0: DRM: DCB conn 02: 00000210
[ 6.140673] nouveau 0000:01:00.0: DRM: DCB conn 03: 00000211
[ 6.140680] nouveau 0000:01:00.0: DRM: DCB conn 04: 00000213
[ 6.193961] nouveau 0000:01:00.0: DRM: failed to create encoder 0/1/0: -19
[ 6.193974] nouveau 0000:01:00.0: DRM: TV-1 has no encoders, removing
[ 6.275387] nouveau 0000:01:00.0: DRM: MM: using CRYPT for buffer copies
[ 6.327835] nouveau 0000:01:00.0: DRM: native mode from preferred
[ 6.364344] nouveau 0000:01:00.0: DRM: allocated 1280x1024 fb: 0x70000, bo f2e10c00
[ 6.364468] fbcon: nouveaufb (fb0) is primary device
[ 6.459993] nouveau 0000:01:00.0: DRM: native mode from preferred
[ 6.488501] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[ 6.493032] [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 0
[ 6.583725] nouveau 0000:01:00.0: DRM: native mode from preferred
[ 26.377846] nouveau 0000:01:00.0: DRM: native mode from preferred
[ 26.477411] nouveau 0000:01:00.0: DRM: native mode from preferred
[ 43.389546] nouveau 0000:01:00.0: DRM: native mode from preferred
[ 45.867570] nouveau 0000:01:00.0: DRM: native mode from preferred
[ 49.810034] nouveau 0000:01:00.0: DRM: native mode from preferred
Re: nouveau и firmware для vdpau
nouveau у нас в initrd не включен, так же, как и /lib/firmware. Драйвер грузится уже после. Т.е. вряд ли дело в initrd.Brainey писал(а):Спасибо, но вывод по nouveau не сильно увеличился:
А может, nouveau не виноват, а стоит как-то хитрО переконфигурить образ initramfs с помощью dracut? Вдруг это именно он не видит firmware (которое, кстати, отлично подгружалось на debian).
Если других идей ни у кого не появится, попробую воспроизвести всё же на наших тестовых системах. Но это - не раньше, чем через день-два: пока много других задач.
Re: nouveau и firmware для vdpau
Ещё пара вопросов:
1. Из какой именно версии проприетарного драйвера получили firmware?
2. Что сейчас в /lib/firmware/nouveau ? (ls -l /lib/firmware/nouveau)?
1. Из какой именно версии проприетарного драйвера получили firmware?
2. Что сейчас в /lib/firmware/nouveau ? (ls -l /lib/firmware/nouveau)?
Re: nouveau и firmware для vdpau
1. На данный момент (попробовал переделать всё с нуля) из версии драйвера 325.08, но до этого просто скопировал рабочий каталог из debian, где работал запуск firmware и из какой версии блоба я выковыривал firmware тогда, уже не помню, но всё это дело так и не заработало.
2.
2.
Re: nouveau и firmware для vdpau
Вот ещё один момент:
Интересно, не это ли корень проблемы, т.к. в описании опции сказано[00:47] [alex@myhost:~]$ cat /boot/config-`uname -r` | grep -i firmware
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
# Device Tree and Open Firmware support
# Altera FPGA firmware download module
CONFIG_HOSTAP_FIRMWARE=y
CONFIG_HOSTAP_FIRMWARE_NVRAM=y
CONFIG_RT2X00_LIB_FIRMWARE=y
CONFIG_CYPRESS_FIRMWARE=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_FIRMWARE_EDID=y
# Firmware Drivers
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_GOOGLE_FIRMWARE is not set
# EFI (Extensible Firmware Interface) Support
# CONFIG_TEST_FIRMWARE is not set
и в ядре Debian конфиг указан как "IS NOT SET", а не "y".The kernel source tree includes a number of firmware 'blobs' that are used by various drivers. The recommended way to use these is to run "make firmware_install", which, after converting ihex files to binary, copies all of the needed binary files in firmware/ to /lib/firmware/ on your system so that they can be loaded by userspace helpers on request.
Enabling this option will build each required firmware blob into the kernel directly, where request_firmware() will find them without having to call out to userspace. This may be useful if your root file system requires a device that uses such firmware and do not wish to use an initrd.
This single option controls the inclusion of firmware for every driver that uses request_firmware() and ships its firmware in the kernel source tree, which avoids a proliferation of 'Include firmware for xxx device' options.
Say 'N' and let firmware be loaded from userspace.
Последний раз редактировалось Brainey 02 апр 2016, 23:28, всего редактировалось 1 раз.
Re: nouveau и firmware для vdpau
Попробовал на GT 720 и firmware из пропр. драйвера версии 325.15, той, что указана на https://nouveau.freedesktop.org/wiki/VideoAcceleration/. Ядро - 4.1.19.
Nouveau явно попробовал загрузить firmware, но у него ничего не получилось, судя по dmesg:
vdpauinfo при этом у меня стал ругаться на отсутствие libvdpau_nvidia.so*, а когда я сделал соотв. симлинки на libvdpau_nouveau*, - просто вывел ошибку:
"Error creating VDPAU device: 23". Возможно, из-за отсутствия в системе подходящего firmware как раз.
Nouveau явно попробовал загрузить firmware, но у него ничего не получилось, судя по dmesg:
Для этой видеокарты, вероятно, нужно firmware поновее, но это отдельный вопрос. Для GeForce 9600 GT (VP2) firmware там вроде бы есть.[ 14.595036] nouveau [ PGRAPH][0000:04:00.0] using external firmware
[ 14.595065] nouveau 0000:04:00.0: Direct firmware load for nouveau/nv106_fuc409c failed with error -2
[ 14.595079] nouveau 0000:04:00.0: Direct firmware load for nouveau/fuc409c failed with error -2
[ 14.595087] nouveau E[ PGRAPH][0000:04:00.0] failed to load fuc409c
vdpauinfo при этом у меня стал ругаться на отсутствие libvdpau_nvidia.so*, а когда я сделал соотв. симлинки на libvdpau_nouveau*, - просто вывел ошибку:
"Error creating VDPAU device: 23". Возможно, из-за отсутствия в системе подходящего firmware как раз.
Re: nouveau и firmware для vdpau
А вот это уже интересно, т.к. у меня и до этого не доходит.euspectre писал(а): Nouveau явно попробовал загрузить firmware, но у него ничего не получилось, судя по dmesg:
[
Попробую переделать всё ещё раз.
Не получилось (использовалась та же версия с инструкции с wiki). Пока не понял, в чём дело, но по nouveau есть одна ошибка в выводе:
Может, загрузка firmware происходит уже как раз после создания этого декодера?[01:35] [alex@myhost:~]$ dmesg | grep -i fail
[ 0.232474] acpi PNP0A03:00: _OSC failed (AE_NOT_FOUND); disabling ASPM
[ 1.095759] Failed to find cpu0 device node
[ 3.080471] nouveau W[ DRM] failed to create encoder 0/1/0: -19
Re: nouveau и firmware для vdpau
Покажите пожалуйста на всякий случай вывод
и
Может, у меня чего-то не хватает?
Код: Выделить всё
rpm -qa *nouveau*
Код: Выделить всё
rpm -qa *vdpau*
myhost alex # rpm -qa *nouveau*
libdrm_nouveau2-2.4.65-1-rosa2014.1.i586
x11-driver-video-nouveau-1.0.11-2.20151117.2-rosa2014.1.i586
myhost alex # rpm -qa *vdpau*
libvdpau1-1.1.1-2-rosa2014.1.i586
gstreamer0.10-vdpau-0.10.23-6plf-plf2014.1.i586
vaapi-driver-vdpau-0.7.4-5-rosa2014.1.i586
vdpauinfo-1.0-1-rosa2014.1.i586
libvdpau_va_gl1-0.3.4-1-rosa2014.1.i586
libvdpau-trace-1.1.1-2-rosa2014.1.i586
myhost alex #
Re: nouveau и firmware для vdpau
Ещё такой момент. Я пробовал всё на 64-битной системе, а Вы - на 32-битной.$ rpm -qa *nouveau*
x11-driver-video-nouveau-1.0.11-2.20151117.2-rosa2014.1.x86_64
lib64drm_nouveau2-2.4.66-1-rosa2014.1.x86_64
libdrm_nouveau2-2.4.66-1-rosa2014.1.i586
$ rpm -qa *vdpau*
lib64vdpau1-1.1.1-2-rosa2014.1.x86_64
vdpauinfo-1.0-1-rosa2014.1.x86_64
У NVidia бывает так, что драйверы и пр. имеют несколько разные возможности, в зависимости от битности (напр., новая CUDA для 32-битных систем просто не поддерживается). Может, это тоже как-то влияет.
Если будет время на неделе, посмотрю, что будет на том же железе на 32-битной системе.
Re: nouveau и firmware для vdpau
Спасибо. А ядро на х86_64 собрано так же? Что скажет
?
Код: Выделить всё
cat /boot/config-`uname -r` | grep CONFIG_FIRMWARE_IN_KERNEL
Re: nouveau и firmware для vdpau
Да, на x86_64 тоже CONFIG_FIRMWARE_IN_KERNEL=y.Brainey писал(а):Спасибо. А ядро на х86_64 собрано так же? Что скажет?Код: Выделить всё
cat /boot/config-`uname -r` | grep CONFIG_FIRMWARE_IN_KERNEL
В Debian этот параметр не установлен, как я догадываюсь, по "идеологическим" причинам: firmware-файлы, как правило, идут не под GPL-совместимой лицензией.
Тем более, в состав ядра входят файлы firmware далеко не для всего. Драйверы, как правило, требуют firmware вполне определённых версий и эти файлы firmware загружаются из user space, из /lib/firmware, как обычно.
Собственно, вот, что есть в ядре: http://lxr.free-electrons.com/source/firmware/?v=4.1. Для nouveau там ничего не видно.
Re: nouveau и firmware для vdpau
Ну там я и не ожидал ничего увидеть. Обычно в дистрибутивах (типа arch, ubuntu, mandriva) firmware для nouveau идёт отдельным пакетом.
Re: nouveau и firmware для vdpau
Верно.Brainey писал(а):Ну там я и не ожидал ничего увидеть. Обычно в дистрибутивах (типа arch, ubuntu, mandriva) firmware для nouveau идёт отдельным пакетом.
CONFIG_FIRMWARE_IN_KERNEL касается только тех firmware-файлов, что лежат в том каталоге с исходниками ядра. Это не запрещает ядру загружать firmware извне.
Re: nouveau и firmware для vdpau
Из интереса пробовал вставлять 8600GT, но ничего не изменилось и с ней.
Re: nouveau и firmware для vdpau
Попробовал на днях на 32-битной Росе с тем же железом - всё аналогично тому, что там было на x64. Симптомы те же, ошибки те же.
Что-то явно "железоспецифичное". Тут уже, скорее, надо авторов nouveau спрашивать (https://lists.freedesktop.org/mailman/listinfo/nouveau).
Что-то явно "железоспецифичное". Тут уже, скорее, надо авторов nouveau спрашивать (https://lists.freedesktop.org/mailman/listinfo/nouveau).
Re: nouveau и firmware для vdpau
Ну в Debian оно работало нормально на версиях Mesa из stable, потом из backports. Может быть это косяк отдельно взятой попавшейся мне версии. Подождём апдейтов...
Re: nouveau и firmware для vdpau
Кстати, firmware подгружалось у вас во время старта системы или только при просмотре видео?
Re: nouveau и firmware для vdpau
При старте, как минимум, система пыталась его загрузить.