Установка проприетарных драйверов ATI в Linux
Перерабтанный вариант статьи про установку драйвера 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.
- Страница для печати
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
