Перерабтанный вариант статьи про установку драйвера ATI в Linux. По просьбам пользователей некоторые моменты были объяснены подробнее. Ссылки обновлены. Добавлены некоторые способы решения возникающих проблем.
Качаем дрова с Внутреннего липецкого FTP:
Для видеокарт серии x2xxx - Скачать (Эти дрова дают очень ощутимый прирост в скорости, но часто глючат с более старыми видяхами)
Для видеокарт старее x2xxx - Скачать
ВНИМАНИЕ!!! Недавно ATI сравняла версии драйверов в Windows и Linux. Последний на текущий момент драйвер имеет версию 7.11. По ссылкам выше расположены более старые версии. Для установки на видеокарты с чипом меньше R600 ИМХО лучше ставить версию 8.39.4 или ниже (Хотя у меня более-менее стабильно работают 7.11 с чипом R350).
Примечание: Если в системе уже установлен проприетарный драйвер, то перекомпиляцию ядра можно попробовать пропустить.
Берем исходники ядра (есть в дистрибутиве, но можно поставить новее)
Как поставить ядро?
Для Mandriva, Fedora, RHEL: urpmi kernel-source
Для SuSe: zypper install linux-source
Для Debian, Ubuntu: apt-get install linux-sourceВсе команды должны выполнятся от имени пользователя root.
,перекомпилируем ядро (боле подробное описание процесса тут),
cd /usr/src/linux make menuconfig
отключаем в нем поддержку DRI (Переходим в Device Drivers -> Character Device -> Direct Rendering Manager), больше ничего желательно не трогать :)
make bzImage make modules make modules_install make install
перезагружаем компьютер с этим ядром, переходим в каталог с драйвером
cd /path/to/driver
Естественно вместо /path/to/driver вам придется подставить Ваш путь к драйверу.
запускаем скачанный установщик:
# sh ati-driver-installer-8.39.4-x86.x86_64.run
Драйвер установлен, идем дальше.
В /etc/fstab добавляем строчку
tmpfs /dev/shm tmpfs size=256m 0 0
Теперь надо настроить /etc/X11/xorg.conf. Проще всего сделать это используя aticonfig
aticonfig --initial
Но иногда это не срабатывает, тогда лезем ручками и правим xorg.conf/
Должно получится примерно следующее:
Section "ServerLayout" Identifier "Monitor layout" InputDevice "Keyboard1" "CoreKeyboard" InputDevice "Mouse1" "CorePointer" Screen 0 "Screen 0" EndSection Section "Files" FontPath "unix/:-1" FontPath "/usr/share/fonts/misc:unscaled" EndSection Section "dri" Mode 0666 EndSection Section "Extensions" Option "Composite" EndSection Section "ServerFlags" Option "AIGLX" "off" # AIGLX не работает с видеокартами АТИ, если версия драйвера < 8.42.3 # соответственно его можно отключить. AllowMouseOpenFail # allows the server to start up even if the mouse does not work EndSection Section "Module" Load "dbe" # Double-Buffering Extension Load "v4l" # Video for Linux Load "extmod" Load "type1" Load "freetype" Load "glx" # 3D layer Load "dri" # direct rendering EndSection Section "InputDevice" Identifier "Keyboard1" Driver "kbd" Option "XkbModel" "pc104" Option "XkbLayout" "us,ru(winkeys)" Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll,compose:rwin" # Переключение раскладки. Оставьте свое значение EndSection Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "ExplorerPS/2" Option "Device" "/dev/mouse" EndSection Section "Monitor" Identifier "monitor1" VendorName "Samsung" ModelName "SyncMaster 710n" HorizSync 30-81 VertRefresh 50-60 Option "DPMS" EndSection Section "Device" Identifier "Primary" VendorName "ATI Technologies Inc." BoardName "ATI Radeon (fglrx)" Driver "fglrx" BusID "PCI:01:00:00" # Оставьте то, что есть. Если ничего нет, то ничего и не пишите. # Данный параметр описывает нахождение карточки. Формат таков: "PCI:bus:device:function".То что # написано в статье подходит только для карт AGP, для обладателей карт PCIE должно быть # "PCI:5:0:0" или "PCI:5:0:1".Существует еще два варианта: # 1. Опустить данный параметр для автоопределения. # 2. Запустить Иксы с параметром -scanpci и посмотреть какой параметр для данной системы. EndSection Section "Screen" Identifier "Screen 0" Device "Primary" Monitor "monitor1" DefaultColorDepth 24 Subsection "Display" Depth 24 Modes "1280x1024" # Измените разрешение на оптимальное для Вашего монитора EndSubsection EndSection
Запускаем иксы командой
startx
Для теста запускаем: fgl_glxgears. Если все работает - радуемся :)
А если не работает, читаем дальше.
Во первых, если что-то работает не так, нужно узнать что это. Для этого даем такую команду
grep "EE" /var/log/Xorg.0.log
И видим что-то типа:
(WW) warning, (EE) error, (NI) not implemented, (??) unknown. (II) Loading extension MIT-SCREEN-SAVER (EE) fglrx(0): incompatible kernel module detected - HW accelerated OpenGL will not work
Строчка, начинающаяся с (EE) и есть искомая ошибка
1. (EE) AIGLX error: dlsym for __driCreateNewScreen_20050727 failed (/usr/lib64/dri/fglrx_dri.so: undefined symbol:
Не фатальная ошибка. Вылазит из-за отсутствия поддержки AIGLX в драйверах ATI до версии 8.42.3
Пути решения:
В секцию ServerFlags добавить Option "AIGLX" "off". Получится примерно следующее
Section "ServerFlags" Option "AIGLX" "off" EndSection
2. (EE) AIGLX error: fglrx exports no extensions (/usr/lib64/dri/fglrx_dri.so: undefined symbol: __driDriverExtensions)
(EE) AIGLX: reverting to software rendering
В секцию ServerFlags добавить Option "AIGLX" "on".
3. (EE) fglrx(0): incompatible kernel module detected - HW accelerated OpenGL will not work
Причина: Новый модуль скомпилировался, но старый остался в памяти и используется.
Решение:
Закрыть иксы и выполнить от root
modprobe -r fglrx
Запустить иксы снова.
Причина: Новый модуль не скомпилировался, вместо него работает старый.
Решение:
rm -rf /lib/modules/fglrx/
И установка драйвера снова. Если снова драйвер не работает с такой-же ошибкой, закиньте файл /usr/share/ati/fglrx-install.log
на наш фтп и идите задавать вопрос на форум :)
Удачи.
Материал дополнили: BSD, smoomik, AleksK.