LINUX.ORG.RU

VLC: undefined symbol drmGetDevices2

 , ,


0

1

Привет, народ

После очередной перезагрузки отказался включаться vlc, и стало крашиться воспроизведение видео с аппаратным ускорением в Firefox.

~$ uname -a
Linux sweethome-server 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

~$ vlc -I qt -vvv
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)

core interface debug: looking for interface module matching "qt": 19 candidates
core interface warning: cannot load module `/usr/lib/vlc/plugins/gui/libqt4_plugin.so' (/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1: undefined symbol: drmGetDevices2)
core interface error: corrupt module: /usr/lib/vlc/plugins/gui/libqt4_plugin.so
core interface debug: no interface modules matched
core interface error: no suitable interface module
core libvlc error: interface "default" initialization failed

Отсутствует процедура drmGetDevices2 в libGL. Куда она делась, интересно?

Ошибка гуглится с лета этого года, в качестве обходного варианта предлагается не использовать libdrm.so.2, но не переписывать же vlc из-за этого.

Intel i3-5005U, встроенная видеокарта.

но не переписывать же vlc из-за этого.

может стоит нормальный дистрибутив начать использовать где всё просто работает?

grep name /proc/cpuinfo -m 1 && lspci|grep -i vga && glxinfo|grep -i open && rpm -qa vlc libdrm && ls -l /usr/lib64/libdrm.so.2
model name	: Intel(R) Core(TM) i3-5005U CPU @ 2.00GHz
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
    Vendor: Intel Open Source Technology Center (0x8086)
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2) 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.2.4
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 17.2.4
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.2.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
vlc-3.0.0-0.44.git20171215rc2.fc27.x86_64
libdrm-2.4.89-1.fc27.x86_64
lrwxrwxrwx 1 root root 15 дек 18 04:50 /usr/lib64/libdrm.so.2 -> libdrm.so.2.4.0

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

всё просто работает?

МакОС?

glxinfo не запускается с похожей ошибкой... Версия libdrm у вас новее, что мне лично непонятно. Попробую впихнуть свежий мануально.

dpkg -S libGL.so.1
libgl1-mesa-glx:i386: /usr/lib/i386-linux-gnu/mesa/libGL.so.1
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
libgl1-mesa-glx:i386: /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0


$ dpkg -s libdrm2 libgl1-mesa-glx | grep Ver
Version: 2.4.83-1~16.04.1
Version: 17.2.4-0ubuntu1~16.04.2

$ glxinfo
name of display: :0.0
glxinfo: symbol lookup error: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1: undefined symbol: drmGetDevice2
Postscripter ()
Ответ на: комментарий от Vsevolod-linuxoid

Vsevolod,

Выбрать что-то в настройках не получится, плеер не запускается от слова вообще.

novitchok,

Вкорячил чисто по приколу libdrm 2.4.89-1, ничего не поменялось... это странно. Функции, которые libGL: не может найти, в Libdrm, есть:

nm -D /usr/lib64/libdrm.so | grep GetDev
0000000000008630 T drmGetDevice
0000000000008110 T drmGetDeviceNameFromFd
00000000000089a0 T drmGetDevices
Postscripter ()
Ответ на: комментарий от novitchok

Я, кстати, написал свой бинарник, который пробует загрузить ту либу. Правда, динамически. Загрузил без ошибок.. вызвал указанные функции, получил результат.. всё работает, блин..

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

Спасибо всем сочувствующим, проблема больше неактуальна в связи с отказом от Ubuntu в роли настольной системы и переходом на проверенный дистр, который «просто работает»))

Postscripter ()