Даунгрейд Xorg-server и DRI
Добрый день, господа!
Нужен ваш совет ибо запутался в конец.
Есть у меня "игрушка" (Samsung Q1 Ultra) давно и успешно использовал на ней xorg-server-1.5.3-r6 + драйвер evtouch (для тачскрина eGalax):
UMPC ~ # lsusb Bus 003 Device 002: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
И черт меня дернул обновиться до xorg-server-1.6.3-901-r2.. Обновившись настроить тачскин лично у меня не получилось ни средствами evdev ни с помощью родного драйвера eGalax. (долгая история - уйдет в другой пост).
В результате для экономии времени решил вернуться на xorg-server-1.5.3-r6.
К сожалению не запомнил все пакеты какие были обновлены, по сему использовал следующие записи в package.mask для возврата на предыдущую версию:
UMPC ~ # cat /etc/portage/package.mask >x11-base/xorg-server-1.5.3-r6 >x11-drivers/xf86-input-keyboard-1.3.2 >x11-drivers/xf86-input-evdev-2.1.3 >x11-proto/printproto-1.0.4 >x11-proto/renderproto-0.9.3 >=x11-drivers/xf86-video-intel-2.8.1 >x11-libs/libXrender-0.9.4
В результате в целом иксы запускаются. проблем нет НО пропала возможность использовать эффекты рабочего стола предоставляемые ныне kwin'ом. (KDE-4.3.3)
Полез смотреть логи Xorg'а.
Насторожили следующие строки:
UMPC ~ # cat /var/log/Xorg.0.log |grep dri
X.Org XInput driver : 2.1
(II) "dri" will be loaded. This was enabled by default and also specified in the config file.
(II) LoadModule: "dri"
(WW) Warning, couldn't open module dri
(II) UnloadModule: "dri"
(EE) Failed to load module "dri" (module does not exist, 0)
(II) Loading /usr/lib/xorg/modules/drivers//intel_drv.so
ABI class: X.Org XInput driver, version 2.1
ABI class: X.Org XInput driver, version 2.1
ABI class: X.Org XInput driver, version 2.1
ABI class: X.Org XInput driver, version 2.1
(II) Loading sub module "dri"
(II) LoadModule: "dri"
(WW) Warning, couldn't open module dri
(II) UnloadModule: "dri"
(EE) intel: Failed to load module "dri" (module does not exist, 0)
(EE) intel(0): [dri] I830CheckDRIAvailable failed: dri not loaded
(II) AIGLX: Loaded and initialized /usr/lib/dri/swrast_dri.so
Полез смотреть. Действительно, в /usr/lib/xorg/modules/extensions файл libdri.so отсутствует.
Видимо из-за этого не работают OpenGL эффекты kwin'а.
Но, как ни странно, glxinfo говорит что direct rendering=yes
Пересборка xf86-video-intel самого xorg-server и остальных пакетов указанных выше ничего не дает.. libdri.so отсутствует.
А теперь собственно вопрос господа.
Как мне собственно вернуть это чертово DRI? Что я в силу своих не самых прямых рук и скудной памяти не учел?
Буду раз любым вариантам, Заранее благодарен.
- Для комментирования войдите или зарегистрируйтесь
Дак ведь dri библиотеки
Дак ведь dri библиотеки больше нету в портеже. Нужно использовать ядерный.
Не путай DRI и DRM. Эти
Не путай DRI и DRM.
Эти библиотеки вообще от mesa
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
ойй. точно (
ойй. точно (
Вот в этом то и вопрос... и
Вот в этом то и вопрос...
и mesa и xorg-server и libdrm я пересобирал... причем в разных комбинациях версий..
самой библиотеки libdri.so в системе не создается. Вопрос в том почему это происходит? Может еще какие-то пакеты, помимо описанных в первом моем посте нужно откатить назад?
Честно сказать уже устал.. весь день с этой ерундой маюсь...
С другой стороны достаточно сделать emerge =xorg-server-1.6.3 и все эффекты работают как надо, соотвтетсвенно и библиотека появляется. Но обновиться до текущей стабильной версии xorg-server мешает отказывающейся с ней работать тачскрин :-(
eselect opengl
А eselect opengl set 1 не поможет?
к сожалению нет. Если бы было
к сожалению нет.
Если бы было все так банально я бы и не спрашивал. :-(
Жалоб нет но и проблему не решает.
Ребят, я совсем запутался..
Ребят, я совсем запутался.. %-)
Сменил ревизию пакета. Вместо стабильного xorg-1.5.3-r6 собрал xorg-1.5.3-r7 но с флагом -hal (тем более что фактически я его и не использую, по-моему xorg.conf все же удобнее)
Остальные пакеты не трогал. Библиотека libdri.so появилась.
Вот что говорит лог:
Ошибок нет. DRI подгрузилось корректно.
Вот что говорит glxgears:
Т.е. если я все верно понимаю к ускорению больше претензий нет? Вроде как все работает...
На ядре 2.6.31 glxgears дают приблизительно 750-800 FPS (не знаю нормально это или нет для Intel GMA, если есть возможность - проясните).
Единственно при запуске glxgears жалуются на
Xlib: extension "Generic Event Extension" is missing on display :0.0
не знаю насколько это важно.
А теперь главное НО:
KWIN как не хотел работать в режиме OpenGL так и продолжает отказываться.
Елки палки, что я еще мог упустить? Может сам kwin пересобрать?
а если из консоли kwin
а если из консоли kwin --replace запустить, он что говорит? может все же compiz поставить он как-то лучше работает ;)
- дело не в ядре и не в -hal
- дело не в ядре и не в -hal либа dri и dri2 собирается из пакета x11-base/xorg-server (возможно при указании ключа sdl - ето не проверял), но вот почему её нет по заказаному пути в /usr/lib64/xorg/modules/extensions/ - небольшая загадка, которая легко разрешима..
- ети либы ложатся (в моем случае x64_86) в /usr/lib64/opengl/xorg-x11/extensions
- создав пару ссылок на них получаем рабочий вариант
ln -s /usr/lib64/opengl/xorg-x11/extensions/libdri.so /usr/lib64/xorg/modules/extensions/libdri.so
ln -s /usr/lib64/opengl/xorg-x11/extensions/libdri2.so /usr/lib64/xorg/modules/extensions/libdri2.so
- как результат в логе
(II) Loading /usr/lib64/xorg/modules/extensions//libdri.so
(II) Module dri: vendor="X.Org Foundation"
compiled for 1.6.5, module version = 1.0.0
ABI class: X.Org Server Extension, version 2.0
(II) Loading extension XFree86-DRI
(II) LoadModule: "dri2"
(II) Loading /usr/lib64/xorg/modules/extensions//libdri2.so
(II) Module dri2: vendor="X.Org Foundation"
compiled for 1.6.5, module version = 1.1.0
ABI class: X.Org Server Extension, version 2.0
(II) Loading extension DRI2
Но, что еще веселее, после следующей "удачной" загрузки символические ссылки отсуцтвуют (чем то удаляются)
- долго не думая над решением вопроса прописал в /etc/init.d/xdm в конец функции setup_dm()
if ! [ /usr/lib64/opengl/xorg-x11/extensions/libdri.so ] ; then
ln -s /usr/lib64/opengl/xorg-x11/extensions/libdri.so /usr/lib64/xorg/modules/extensions/libdri.so
fi
if ! [ /usr/lib64/opengl/xorg-x11/extensions/libdri2.so ] ; then
ln -s /usr/lib64/opengl/xorg-x11/extensions/libdri2.so /usr/lib64/xorg/modules/extensions/libdri2.so
fi
если натупил - исправте)