Я являюсь счастливым обладателем карточек ATI Radeon X1200 / Radeon HD 2100 дома и на работе соответственно. Как известно Radeon под Linux - это полная жопа в настройке и эксплуатации.
Взбрело мне в голову настроить KMS - начиная с ядра 2.6.33 оно якобы включено по умолчанию. Но я привык не доверять автомату и решил подстраховаться - форсировать KMS руками.
Далее идет описание как это все делалось и какие грабли были встречены на конкретном примере - Arch Linux :)
Настройка вкратце: форсирование KMS, обновление пакетов из AUR, настройка xorg.conf
Часть 1 - Форсирование KMS
Для форсирования KMS нужно:
- Добавить параметр загрузки ядра:
radeon.modeset=1
- Включить загрузку модуля ядра по имени radeon при старте системы.
Приведу пример для ArchLinux с initrd.
Все это было сделано довольно быстро, и руки чесались запустить наконец-то иксы с поддержкой KMS :)
Часть 2 - Обновление пакетов для xorg
Не суждено было восцарить KMS - при запуске xinit я словил сегфолт касаемо атишных дров dri.
Поигравшись с настройками xorg, я смог только настроить работу двух мониторов в режиме дублирования изображения. Но это явно не комфортно для работы! Зачем мне дублирование?
Прогуглившись, нашел грамотное решение для Слаквари.
Суть проста как два пальца: собрать из git последнии ревизии пакетов:
ati-dri, dri2proto, glproto, libdrm-git, libgl, mesa, xf86-video-ati
- Перед установкой новых пакетов вам придется снести старые:
ati-dri dri2proto glproto libdrm libgl mesa xf86-video-ati
-
Слакваристы будут билдить все руками, мы же с вами воспользуемся AUR-овскими пакетами:
dri2proto-git glproto-git libdrm-git libgl-git mesa-git xf86-video-ati-git
-
Учтите, что рекомендуется собрать libdrm-git руками с опцией для configure
--enable-radeon-experimental-api
Итак, пакеты собраны. Перезапускаем иксы и... все запускается с двумя мониторами!
Часть 3 - Финальная настройка
Радость была недолгой - при очередном переключении на виртуальный терминал tty1-5 экраны мониторов погасли и не подавали признаков жизни. Опять разочарование :(
Решение не находилось где-то с неделю, пока не решил окончательно прикрутить KMS на ноут с Radeon X1200. На ноуте KMS заработа без приколов с tty, но я невольно закричал FFFFFFFUUUUU, когда иксы без весомой причины вылетели во время работы. В логах были сегфолты, похожие на те, которые я созерцал на работе с Radeon HD 2100.
Мне повезло локализовать причину ошибки. Оказалось виноватым расширение AIGLX - то самое, которое используется в композитных менеджерах KDE и CompizFusion. Оно то и глючило при активации KMS.
Отключается довольно просто в xorg.conf:
Section "ServerLayout"
option "AIGLX" "false"
...............
EndSection
Сегфотлы ушли, но стали наблюдаться глюки с проигрыванием видео.
Решилось все дело таким конфигом видеоадаптера в xorg.conf:
Section "Device"
Option "EnableDepthMoves" "True"
Option "EnablePageFlip" "True"
Option "DMAForXv" "True"
Option "ColorTiling" "True"
Option "EXAPixmaps" "True"
Identifier "Card0"
Driver "radeon"
EndSection
Это заработало и на Radeon X1200, и на HD2100 одинаково хорошо.
Послесловие
Да. Compiz и эффекты KDE работать не будут. Но кому они нужны, правда ;) ?