установка видеодрайверов ati на opensuse 10.0, 10.1, 10.2

advertisement
Установка видеодрайверов ATI на OpenSuSE 10.0, 10.1, 10.2
( перевод с http://opensuse.org/ATI )
Легкий путь.
Преимущество легкого пути в том что вам не придется перекомпилировать kernel при каждом его обновлении.
Шаг 1. Добавление репозитория.
Добавьте репозиторий в YaST:
10.2 - http://www2.ati.com/suse/10.2
10.1 - http://www2.ati.com/suse/sle10
Шаг 2. Версия kernel
Узнайте какая у вас версия kernel, выполнив следующую команду:
$ uname – r
Шаг 3. Установка пакетов
В зависимости от версии вашего дистрибутива установите один из следующих пакетов:
10.2 - x11-video-fglrxG01 ati-fglrxG01-kmp-<версия kernel>
10.1 - x11-video-fglrx ati-fglrx-kmp-<версия kernel>
Шаг 4 - SaX2
В терминале в режиме супер-пользователя выполните следующую команду:
#sax2 –r
Шаг 5 – Перезапустить X
Теперь перезапустите Иксы( Нажав Ctrl+Alt+Backspace )
Шаг 6. Проверьте работает ли…
Найдите игру xmoto в меню и попробуйте ее запустить. Или выполните команду в терминале:
$ glxgears
Сложный путь.
Преимущество сложного пути в том, что вы получите последнюю версию драйвера.
Для 32-х битовых систем.
Перед тем как что либо устанавливать, проверьте установлены ли у вас следующие пакеты:
• kernel-sourse
• qt3
• compat
• compat-libstdc++
• libstdc++
• libstdc++-devel
• libgcc
• xorg-x11-libs
• xorg-x11-devel
• Mesa
• Mesa-devel
• fontconfig
• fontconfig-devel
• expat
• freetype
• freetype2
• freetype2-devel
• zlib
• zlib-devel
• gcc
Примечание : версия libdrm должна быть 2.3.
Через YaST проверьте версию Kernel-default и Kernel-source пакетов. Оба должны быть одинаковыми. Если они разные, загрузите обновления kernel
через YaST.
Для 64-х битовых систем.
Перед тем как что либо устанавливать проверьте установлены ли у вас следующие 32-х битовые пакеты, так же как 64-х битовые «коллеги»
пакетов перечисленных выше в секции «для 32-х битовых систем» :
• kernel-source
• compat-32bit
• qt3-32bit
• libstdc++
• libgcc
• xorg-x11-libs-32bit
• xorg-x11-devel-32bit
• Mesa-32bit
• Mesa-devel-32bit
• Fontconfig-32bit
• expat-32bit
• freetype2-32bit
• zlib-32bit
• gcc
Примечание : версия libdrm должна быть 2.3
Опционально: Установка Xorg 7.2 Final
Если у вас OpenSuSE 10.2 или если вы хотите обновить версию X к 7.2 выполнте следующие действия:
OpenSuSE 10.2 поставляется с Xorg 7.2 RC2. Вы можете оставить текущую версию, но большинство людеq предпочитают иметь последний релиз. Итак
здесь написано как получить последнюю версию.
Примечание : Самые новые драйвера ATI не поддерживают Xorg 7.2. Только 7.11 и ниже.
Примечание : Самыая новая версия драйвера ( по крайней мере 64-х битовый драйвер ) не появляется на главной странице загрузки драйверов ATI
linux ( http://ati.amd.com/support/drivers/linux64...x64-firegl.html ). Самая
последняя версия драйвера может быть найдена на странице «предыдущие версии»: http://ati.amd.com/support/drivers/linux64...us-linux64.html. В мае был
выпущен очередной драйвер, и в установочных инструкциях было написано что драйвер должен работать с «XOrg 6.7, 6.8, 6.9, 7.0, 7.1 или 7.2;». Тем
не менее пока что это не совсем так...
Via YaST
В YaST просто добавьте репозиторий к источникам установки:
type: http (если не работает попробуйте ftp)
server: ftp.skynet.be
directory: /pub/software.opensuse.org/xorg72/openSUSE_10.2/
Теперь запустите программу Install Software(установка пакетов) и выберите Установить из Источника и выберите только что добавленный источник.
Обновите все. Или обновите только Xorg пакеты.
Via Zypper
Шаг 1. Добавить источник
# zypper service-add
http://ftp.skynet.be/pub/software.opensuse.../openSUSE_10.2/
Xorg72 Determining
http://ftp.skynet.be/pub/software.opensuse.../openSUSE_10.2/
source type...
http://ftp.skynet.be/pub/software.opensuse.../openSUSE_10.2/
is type YUM
Added Installation Sources:
[x]* Xorg72
(http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/)
Шаг 2. Обновить исходники
# zypper refresh
...
...
...
Refreshing Xorg72
URI: http://ftp.skynet.be/pub/software.opensuse.../openSUSE_10.2/
DONE
...
...
...
Шаг 3. Обновить систему
Примечание: это обновит все системные пакеты для которых есть обновления
# zypper update --type=package --no-confirm --skip-interactive
Примечание: С 5/5/2007, официальные ATI драйвера не поддерживают Xorg 7.2 и выше (версия драйвера – 8.36.5)(исходник?) Файл
изменений(change log) показывает поддержку с версии 8.33.6
Примечание: это обновление установит ранее упоминаемую libdrm.
Рекомендовано. Подготовить kernel к установке новых драйверов.
Этот шаг не обязателен, но желателен. Если вы уже пытались установить ATI драйвера выполните этот шаг. Откройте консоль и выполните
следуюющие команды:
# su
password
# cd /usr/src/linux
# make mrproper
# make cloneconfig
# make modules_prepare
# make clean
Если вы раньше уже пытались устанавливать драйвера, выполните следующую команду, если нет, двигайтесь дальше. Удалите предыдущие
драйвера выполнив команду:
# rpm -e $(rpm -qa | grep fglrx)
Загрузка и установка ATI драйверов.
Шаг 1. Загрузка последнего драйвера.
Скачайте на сайте ATI последний драйвер (8.39.4 на момент написания статьи)
Шаг 2. Генерация драйвера для вашего дистрибутива.
В режиме супер-пользователя запустите инсталятор выполнив команду:
# sh ati-driver-installer-8.37.6-x86.x86_64.run –listpkg
Будет выведен список дистрибутивов для которых можно сгенерировать драйвер:
SuSE/NLD9-IA32
SuSE/SLES9-IA32
SuSE/SUSE91-IA32
SuSE/NLD9-AMD64
SuSE/SLES9-AMD64
SuSE/SUSE91-AMD64
SuSE/SUSE100-IA32
SuSE/SUSE92-IA32
SuSE/SUSE93-IA32
SuSE/SUSE100-AMD64
SuSE/SUSE92-AMD64
SuSE/SUSE93-AMD64
SuSE/SLED10-IA32
SuSE/SLES10-IA32
SuSE/SUSE101-IA32
SuSE/SLED10-AMD64
SuSE/SLES10-AMD64
SuSE/SUSE101-AMD64
SuSE/SUSE102-IA32
SuSE/SUSE102-AMD64
Теперь выполните следующую команду добавив имя вашего дистрибутива в конце:
# sh ati*.run --buildpkg SuSE/SUSE102-IA32 ( для 32х битовой OpenSuSE 10.2 )
или
# sh ati*.run --buildpkg SuSE/SUSE102-AMD64 ( для 64х битовой OpenSuSE 10.2)
Сгенерированный драйвер будет помещен в:
/usr/src/packages/RPMS/i386 (для 32х битовых систем)
/usr/src/packages/RPMS/x86_64 (для 64х битовых систем)
Шаг 3. Установка драйвера.
Если вы на 5 уровне выполнения (runlevel 5), переключитесь на уровень выполнения 3 написав следующую команду в консоли( в режиме
супер-пользователя):
# init 3
Это выгрузит X(иксы) и вернет вас к TTY 1. Авторизуйтесь как суперпользователь, и переместитесь в директорию содержащую драйвер:
# cd /usr/src/packages/RPMS/i386
или:
# cd /usr/src/packages/RPMS/x86_64 ( для 64х битовых систем)
Установите драйвер выполнив команду:
# rpm –Uvh fgl*.rpm
После того, как установка завершится, необходимо запустить утилиту aticonfig:
# ldconfig
# aticonfig --initial --input=/etc/X11/xorg.conf
Примечание( для тех кто уже пытался устанавливать драйвера): команда rmp –e не всегда удаляет установленные файлы. В этом случае вам
необходимо вручную удалить их или ввести полное имя, в другом случае у вас возникнут ошибки с конфликтующими файлами.
Опционально: Шаг 4. Настройка установленного драйвера
Выполните команду:
# sax2 –r –m 0=fglrx
Это заставит SaX2 использовать fglrx драйвер. Установите необходимое разрешение экрана сохранитесь и закройте программу.
Внимание: если SaX2 не работает(это касается некоторых х1000 карточек (х1400, х1600, х1600 pro), выполните следующие действия, ели это не
поможет, следуйте инструкциям из секции «Устранение проблем».
Итак, если SaX2 останавливается во время загрузки драйвера, в файле /var/log/SaX.log вы можете найти что-то вроде:
(EE) fglrx(0): PreInitDAL failed
(EE) fglrx(0): PreInit failed
Для устранения проблемы необходимо отключить framebuffer в консоли. Откройте файл /boot/grub/menu.lst и удалите выражение vga=xxx
из строки kernel. (смотрите http://bugzilla.novell.com/show_bug.cgi?id=222993 ) SaX2 будет запускать свою конфигурационную программу в Х. Здесь у вас
будет больше настроек, чем в ATI Control Center, но это ваш выбор, что использовать…
От себя добавлю, что лучше не использовать SaX2, если у вас несколько мониторов, т. к. возникает много ошибок. SaX2 пишет что подключен 1 монитор, а
ATI Control Center видит два, отключаю, перегружаюсь, ни один монитор не работает... Если в SaX2 добавить один монитор, та же история - после
перезагрузки не работает ни один монитор.
3D Акселерация.
Включенная по умолчанию опция «составные расширения»(Composite Extensions) отключает поддержку DRI и 3D акселерацию в некоторых случаях.
Внимание: если вы планируете использовать Beryl пропустите этот шаг(конфигурирование Beryl описано в конце данной статьи).
Итак, чтобы отключить составные расширения, подредактируйте/добавьте следующие строчки в файл /etc/X11/xorg.conf :
Section “Extensions”
Option “Composite” “false”
EndSection
Другие важные опции в xorg.conf
Для наиболее стабильной работы fglrx драйвера установите следующие опции в секции “Device” в файле xorg.conf:
Option "BlockSignalsOnLock" "on"
Option "KernelModuleParm" "locked-userpages=0"
Option "OpenGLOverlay" "off"
Option "UseFastTLS" "2"
Option "UseInternalAGPGART" "no"
Option "VideoOverlay" "on"
Option "mtrr" "off"
Option "no_accel" "no"
Option "no_dri" "no"
Option "EnablePrivateBackZ" "no"
Option "backingstore" "true"
Шаг 5. Перезагрузка.
Наконец перезагрузите вашу систему, и у вас должна появится 3d акселерация
# shutdown –r now
Тестирование.
Чтобы удостоверится в том, что у вас работает 3d акселерация, выполните команду:
$ glxinfo
если появится что-то вроде:
...
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON X850 PRO Generic
OpenGL version string: 2.0.6286 (8.33.6)
...
значит все получилось, если же:
...
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.5.1)
...
тогда не вышло... читайте секцию «Устранение проблем»
Еще одна команда для проверки:
$ fglrxingo
чтобы протестировать 3D выполните:
$ fgl_glxgears
Мои результаты(OpenSuSE 10.2, Xorg 7.2, Ati Radeon x1600 pro 256 mb, driver - 8.39):
1618 frames in 5.0 seconds = 323.600 FPS
2810 frames in 5.0 seconds = 562.000 FPS
2036 frames in 5.0 seconds = 407.200 FPS
Не густо...
Поздравляю, вам удалось установить видеодрайвер. Если что-то не вышло, читайте секцию «устранение проблем».
Устранение проблем
Если SaX2 зависает, или в строке OpenGL vendor написано Mesa следуйте инструкциям ниже:
Убедитесь, что вы обновили libdrm к версии 2.3. Сначала посмотрите log файл расположенный в /var/log/SaX.log чтобы увидеть какие ошибки
повлекли за собой зависание. Также посмотрите Xorg log файлы на наличие ошибок по поводу fglrx модуля в /var/log/Xorg.0.log :
$ cat /var/log/Xorg.0.log | grep "(EE)"
Устранение проблем. Шаг 1.
Переключитесь на уровень выполнения 3 (runlevel 3) ( $ init 3 ) и выполните следующие команды:
# cd /usr/src/linux
# make mrproper
# make cloneconfig
# make modules_prepare
# make clean
Удалите предыдущие драйвера выполнив следующую команду:
# rpm –e $(rpm –qa | grep fglrx)
Устранение проблем. Шаг 2.
Переустановите драйвер выполнив:
# rpm –Uvh –force fgl*.rpm
Устранение проблем. Шаг 3.
Используйте ldconfig и aticonfig чтобы настроить xorg.conf :
# ldconfig
# aticonfig --initial --input=/etc/X11/xorg.conf
После этого проверьте другие важные опции в xorg.conf (описано выше)
После переключитесь на уровень выполнения 3. ( # init 3 );
Устранение проблем. Шаг 4.
Теперь нам нужно удостоверится что модули kernel на месте:
# fglrx-kernel-build.sh
# sax2 –r –m 0=fglrx –b /usr/share/doc/packages/fglrx/sax2-profile
Если не работает попробуйте:
# sax2 –r –m 0=fglrx
[u]Внимание: если и после этого SaX2 виснет, попробуйте обновить sax2. После этого попробуйте запустить SaX2 опять.
Примечание: для того чтобы изменения вступили в силу, необходимо перезагрузится.[/u]
type: http
server: ftp-linux.cc.gatech.edu
directory: /pub/suse/suse/update/10.2
Устранение проблем ++.
Эти инструкции были взяты с уже удаленной страницы драйверов ATI:
3D не работает, даже если fglrx загружен.
Симптомы: Когда запускается тест в SaX2, он виснет и log файл содержит ошибку:
Error: No screens found
Эта проблема вызвана несовместимостью между драйверами OSS Radeon и fglrx. Выполните:
lsmod | grep radeon
lsmod | grep fglrx
Если оба модуля kernel загружены, вам необходимо удалить модуль radeon :
# modprobe –r radeon
После этого перезагрузитесь.
3D не работает для обычного пользователя, но работает для супер-пользователя(root)
Проблема возникала на драйвере 8.36.5-1.i386, OpenSuSE 10.2, Radeon X1300
Для пользователей bash:
LIBGL_DEBUG=verbose glxinfo
посмотрите на предмет ошибки:
undefined symbol: __glXFindDRIScreen
Удалите libGL.so файлы из /usr/lib и замените их символическими ссылками из /usr/X11R6/lib :
ln -s /usr/X11R6/lib/libGL.so libGL.so
ln -s /usr/X11R6/lib/libGL.so.1 libGL.so.1
ln -s /usr/X11R6/lib/libGL.so.1.2 libGL.so.1.2
Возможно вам также понадобится включить POSIX shared memory.
[fglrx] API ERROR: could not register entrypoit for…
Загрузите файл http://www.ground-impact.com/libGL.so.1.2
Замените оригинальный libGL.so.1.2 в /usr/X11R6/lib
[fgl_glxgears] Пишет “Permission denied” в режиме обычного пользователя
При выполнении команды # fgl_glxgears выводятся следующие данные:
Using GLX_SGIX_pbuffer
FGLTexMgr: open of shared memory object failed (Permission denied)
FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!!
FGLTexMgr: open of shared memory object failed (Permission denied)
FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!!
FGLTexMgr: open of shared memory object failed (Permission denied)
FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!!
FGLTexMgr: open of shared memory object failed (Permission denied)
FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!!
FGLTexMgr: open of shared memory object failed (Permission denied)
FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!!
FGLTexMgr: open of shared memory object failed (Permission denied)
FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!!
FGLTexMgr: open of shared memory object failed (Permission denied)
...
Решение: Включить POSIX shared memory
добавьте следующую строчку в /etc/fstab :
tmpfs /dev/shm tmpfs defaults 0 0
после смонтируйте командой:
mount /dev/shm
Примечание: эта строка может выглядеть отличной от других, но это правильное решение.
Video Output Driver Xv не проигрывает видео
Решение: использовать в качестве Video Output драйвер gl2
Mplayer:
mplayer -vo gl2 <file>
GMplayer:
echo "vo_driver = \"gl2\"" >> .mplayer/gui.conf
Xine:
echo "video.driver:opengl" >> .xine/config
AIGLX error __driCreateNewScreen
ATI драйверы не поддерживают AIGLX (исключение если у вас старая ATI карта (pre-r300)) в данный момент, значит нужно «приклеится» к Xorg или Xgl.
Если в xorg.0.log есть ошибка, что-то вроде:
(EE) AIGLX error: dlsym for __driCreateNewScreen_20050727 failed
(/usr/lib/dri/fglrx_dri.so: undefined symbol: __driCreateNewScreen_20050727)
(EE) AIGLX: reverting to software rendering
добавьте следующие строчки в /etc/X11/xorg.conf :
Section “ServerFlags”
Option “AIGLX” “off”
EndSection
cp: missing destionation file operand
Когда вы запускаете:
./ati-driver-installer-8.xx.xx-i386.run –buildpkg SuSE/SUSE100-IA32
может появится что-то вроде:
cp: missing destination file operand after
Вам нужно выполнить LC_ALL=C перед выполнением команды чтобы решить проблему
# LC_ALL=C ./ati-driver-installer-8.xx.xx-i386.run –buildpkg SuSE/SUSE100-IA32
ATI + Beryl + XGL + OpenSuSE 10.2
Примечание: убедитесь вы выполнили все необходимые действия описанные выше, перед тем как устанавливать Beryl
Шаг 1. Установка Beryl
В YaST просто добавте репозиторий к источникам установки.
type: http (если не работает измените на ftp)
server: ftp.skynet.be
directory: /pub/software.opensuse.org/X11:/XGL/openSUSE_10.2/
Установите следующее:
aquamarine-snapshot
beryl-core-snapshot
beryl-manager-snapshot
beryl-plugins-snapshot
beryl-settings-snapshot
beryl-vidcap-snapshot
emerald-snapshot
emerald-themes-snapshot
Также вы должны удалить все compiz пакеты игнорируя зависимости с XGL
Шаг 2. Конфигурация
Если вы используете несколько мониторов, вам необходимо добавить «Xinerama» к файлу xorg.conf чтобы предотвратить баги.
Откройте xorg.conf ( /etc/X11/xorg.conf ) и добавьте следующие строчки:
Section "ServerLayout"
Option "Xinerama" "on"
EndSection
Выполните следующую команду( как обычный пользователь, не root! ) чтобы запустить Beryl-manager :
$ beryl-manager
В менеджер задач будет добавлена иконка, похожая на рубин, кликните на ней правой кнопкой мыши, убедитесь, что вдополнительных(advanced)
опциях включены следующие:
Composite Overlay Window -> "Don't use COW" или "use COW" или "Automatic"
(проверьте что работает лучше)
Rendering platform -> Force XGL
Binding -> XGL Binding
Rendering -> XGL Rendering
Теперь добавьте Beryl в KDE
Если запущен другой составной менеджер
По всей вероятности KDE управляет собственными эффектами ( используя kompmgr), и из-за этого Beryl не может запустится. Чтобы отменить
эффекты окон KDE, откройте центр управления и отмените эффекты полупрозрачности(translucency) K Menu -> Configure Desktop (Personal Settings).
Переместитесь к Desktop -> Window Behaviour. Переместитесь на послендюю вкладку, «Полупрозрачность», и снимите галочку «Использовать
полупрозрачность/тени». Теперь можете запустить beryl-manager снова, все должно работать…
Автозапуск Beryl
Для КDE просто выполните команды(как обычный пользователь, не root):
ln -s /usr/bin/beryl-manager ~/.kde/Autostart/beryl-manager
ln -s /usr/bin/beryl ~/.kde/Autostart/beryl
Для Gnome :
Откройте центр управления -> Сессии(Control Center -> Sessions). Переместитесь на последнюю вкладку «Программы автозагрузки»(Startup Programs).
Здесь, добавьте 2 элемента:
beryl-manager
beryl
Шаг 3. Включить XGL и перезагрузится.
Из YaST переместитесь к System и запустите редактор sysconfig
Sysconfig Editor -> Desktop -> Display Manager -> DISPLAYMANAGER_XSERVER.
Измените XSERVER из Xorg на Xgl. После этого нажмите finish и перезагрузитесь или Просто откройте консоль, в режиме суперпользователя выполните:
# rcxdm restart
Или если вы используете gdm
# rcgdm restart
Beryl должен автоматически загрузится и вы должны увидеть иконку в панели задач. Нажмите на ней, выберите Select Window Manager и нажмите на
Beryl. Вы должны увидеть анимацию, это значит что Beryl работает. Если Beryl настроить не удалось поищите возможное решение на сайт Beryl.
Для пользователей GNOME c XGL:
Если после того как gdm загружается у вас возникают проблемы с X сервером, и появляется сообщение «X Server is already running…» вам нужно
подредактировать файл /etc/opt/gnome/gdm/custom.conf. Найдите следующее и измените при необходимости:
[daemon]
GdmXserverTimeout=30 #Нужно вставить или модифицировать к 30
[servers]
0=inactive #вставте или модифицируйте 0 к inactive
1=Xgl #вставте или модифицируйте 1 к Xgl
[server-Standard] #модифицируйте стандартный сервер к этому:
name=Xgl
command=/usr/bin/Xgl :1 -ac -accel glx=pbuffer -accel xv=pbuffer
chooser=false
handled=true
flexible=true
priority=0
Фу, справился Может не очень грамотно...
Пишите замечания, подредактирую.
Если после установки дров команда glxinfo от рута выдает OpenGL Vendor: Ati а от пользователя та же команда первой строчкой ругается на DRI: operation
not permitted (или что то подобное) то нужно подправить xorg.conf В этом файле есть секция Section "DRI" ищем строчку Mode 0660 и меняем цифру на
0666 И еще проверяем Section "Module" там должно быть Load "dri" После перезагруза все будет пахать как надо. А то я вчера впервые столкнулся с этим на
32 битном дистрибе весь вечер мучался )) В 64 битном такого не наблюдал...
Download