Драйвери ATI та openSUSE
З драйверами для відеокарт в openSUSE бувають проблеми. Приміром, я волію використовувати пропрієтарні драйвери від виробника, оскільки вони досі більш функціональні, ніж відповідні вільні. Однак, політика випуску драйверів у виробників, всупереч уявленням, поширеним у бізнес-середовищі, суттєво більш мінлива, ніж політика випуску відкритих драйверів співтовариством розробників FOSS. Через це під час оновлення улюбленого дистрибутива Лінукса до більш нової версії можна отримати проблеми з відеодрайвером на рівному місці.
В openSUSE такі проблеми з’являються регулярно, тому пере оновленням слід вигуглювати і читати матеріали на opensuse.org, присвячені драйверам відеокарт.
У мене чергові проблеми виникли при переході до openSUSE 12.1. Перш за все, зникла можливість брати драйвер прямо з ati.com; тепер доводиться додавати репозиторій з адресою geeko.ioda.net (подробиці). По-друге, хоча драйвер нормально поставився, і я міг налаштовувати свою відеокарту в графічному AMD Catalyst Control Center, пропало прискорення 3D. А це означає, що перестали працювати всі 3D-ігри. Наявність чи відсутність прискорення 3D завжди можна перевірити, ввівши в командному рядку команду
glxinfo |
і пошукавши на початку отриманого виводу рядок «direct rendering». Якщо шукати зовсім ліньки, можна одразу ввести команду
glxinfo | grep render |
У мене вона показала «direct rendering: No» і трохи нижче попередження: «WARNING: Direct Rendering is NOT enabled».
Деякий час гугління нічого не давало, аж ось, нарешті, розв’язання знайшлося. Виявляється, проблема в тому, що система попри поставлений драйвер fglrx від AMD/ATI продовжує використовувати бібліотеку libGL.so, належну не збірці з цим драйвером, а пакунку відеодрайверів Mesa. Виправити це просто: слід просто замінити джерела деяких символьних посилань, щоб вони вели до правильної версії бібліотеки. А саме, слід
- Переконатися, що каталог /usr/lib64/dri має ось таке посилання на себе: /usr/X11R6/lib64/modules/dri (у мене таке посилання вже було).
- З бібліотеки /usr/X11R6/lib64/fglrx/fglrx-libGL.so.1.2 зробити лінки (посилання)
- /usr/X11R6/lib64/libGL.so
- /usr/X11R6/lib64/libGL.so.1
- /usr/X11R6/lib64/libGL.so.1.2
Оскільки ці три файли вже напевне існують, слід просто виправити в них адресу, на яку вони посилаються. Зробити це можна в Midnight Commander.
- З перелічених вище лінків зробити вторинні лінки у
- /usr/lib64/libGL.so
- /usr/lib64/libGL.so.1
- /usr/lib64/libGL.so.1.2
а якщо вони вже існують, то виправити в них адреси.
Це і все. Можна запускати ігри. Не треба перезавантажувати ні систему, ні сервер X, адже все, що ми зробили — це вказали правильну версію вже встановленої бібліотеки. Можемо перевірити наявність прискорення тривимірної графіки в консолі. У мене, приміром, вона показує:
~> glxinfo | grep render direct rendering: Yes OpenGL renderer string: ATI Radeon HD 4250 |
Є тільки одна біда. Оновлення деяких програм можуть перезаписати якийсь із виправлених вручну лінків. Тоді виправляти доведеться знову. Але, в будь-якому разі, якщо ігри знову не запускатимуться, буде зрозуміло, що саме слід виправити.
- блоґ campana
- Щоб додати коментар, увійдіть