The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Настройка работы DRI в Linux с новым ATI fglrx драйвером (video dri notebook linux)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: video, dri, notebook, linux,  (найти похожие документы)
From: n1tro Newsgroups: http://www.n1tro.info Date: Mon, 28 Jan 2005 14:31:37 +0000 (UTC) Subject: Настройка работы DRI в Linux с новым ATI fglrx драйвером Оригинал: http://www.n1tro.info/dri.txt Итак, после 6 дней постоянных попыток заставить Direct Rendering (DRI) зупуститься - я-таки это СДЕЛАЛ! :) Эта статья будет полезна, в основном, обладателям видеокарты ATI Radeon 9000 Mobility и подобных... на самом деле, достаточно много карт схожи с архитектурой M9, поэтому не расстраивайтесь, возможно, решение вашей проблемы схоже с моим. Начнем с того, что я опишу свою систему: Часть I: моя система OS: Slackware Linux 10 Железо: Ноутбук IBM ThinkPad T41 ядро: 2.4.29 X-server: xorg-6.8.0 Карта: ATI Radeon Mobility 9000 M9 (ATI Technologies Inc Radeon R250 Lf [Radeon Mobility 9000 M9]) Драйвер: от ATI - fglrx (для X.Org 6.8, версия 8.8.25 от 1.17.05) В принципе, больше знать и не надо :) Сразу скажу, что я около 4 суток пытался поставить этот драйвер на X.org 6.8.1, но там у меня так и не вышло, хотя... сейчас уже можно попробовать, т.к. решение для 6.8.0 может подойти и для 6.8.1. Не буду утверждать, но МОЖЕТ БЫТЬ. В 6.8.1 проблема заключалась в том, что при загрузке Х-сервера fglrx[drm] не мог найти /dev/dri/card0 - соответственно, не мог запустить Direct Rendering. Вобщем, я решил поступить логично: раз на сайте АТИ драйвера для 6.8.0, а не для 6.8.1 - то логично будет поставить X.org 6.8.0, что я и сделал. Часть II: симптомы После установки атишных драйверов, правки xorg.conf и рестарта X-сервера - атишное DRI так и не запустилось. В логах (/var/log/Xorg.0.log) было вот что: (II) fglrx(0): UMM area: 0xe0501000 (size=0x01aff000) (II) fglrx(0): driver needs XFree86 version: 4.3.x (WW) fglrx(0): could not detect XFree86 version (query_status=-3) (II) Loading extension ATIFGLRXDRI (II) fglrx(0): doing DRIScreenInit drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed [drm] failed to load kernel module "fglrx" (II) fglrx(0): [drm] drmOpen failed (EE) fglrx(0): DRIScreenInit failed! (WW) fglrx(0): *********************************************** (WW) fglrx(0): * DRI initialization failed! * (WW) fglrx(0): * (maybe driver kernel module missing or bad) * (WW) fglrx(0): * 2D acceleraton available (MMIO) * (WW) fglrx(0): * no 3D acceleration available * (WW) fglrx(0): ********************************************* * (II) fglrx(0): FBADPhys: 0xe0000000 FBMappedSize: 0x02000000 (**) fglrx(0): Write-combining range (0xe0000000,0x2000000) (II) fglrx(0): FBMM initialized for area (0,0)-(1024,8191) (II) fglrx(0): FBMM auto alloc for area (0,0)-(1024,768) (front color buffer - assumption) После чего я начал думать - что fglrx-у не нравится... Особое внимание обратил на "(II) fglrx(0): driver needs XFree86 version: 4.3.x (WW) fglrx(0): could not detect XFree86 version (query_status=-3)". На ATI.com написано, что дрова именно для X.org, тогда непонятно -- почему он не может определить версию XFree86. Отсюда, собственно мысль -- видимо, криво встала динамическая библиотека: libGL.so.1.2, след-но надо её поставить руками, чтобы убедиться, что он действительно АТИшная, а не старая (из ядра). Часть III: ваша система Если у вас подобные проблемы и симптомы сходятся, то можете сразу переходить к IV части. Если же вы не особо хорошо разбираетесь в своей системе, то эта часть для вас. Сначала вам надо определить саму ошибку, по которой не запускается Direct Rendering. Для этого вам надо определить версию своего Х-сервера: набираем в консоли "X -version". После чего система вам может вывести два (как правило, варианта только 2) варианта: 1) # X -version XFree86 Version 4.3.0.1 (Debian 4.3.0.dfsg.1-10 20041215174925 [email protected]) Release Date: 15 August 2003 X Protocol Version 11, Revision 0, Release 6.6 [...] Это означает, что у вас XFree86. и файл логов лежит в /var/log/XFree86.0.log 2) # X -version X Window System Version 6.8.0 Release Date: 8 September 2004 X Protocol Version 11, Revision 0, Release 6.8 Если система выдала что-то вроде этого - значит у вас стоит X.org версии 6.8, отлично. Файл логов для этого Х-сервера: /var/log/Xorg.0.log Вы должны проверить логи вашего Х-сервера и убедиться, что ошибка похожая. Если ошибка другая - то советую почитать инструкции по установке на сайте ATI.com, впрочем далее все подробно опишу - как правильно установить драйвера. Часть IV: Правильная сборка ядра системы Как именно собирать ядро (linux-kernel), я расписывать не буду, благо об этом написано бешеное количество трактатов, манов, доков и туторов. Опишу лишь то, что надо сделать для правильной работы Direct Rendering-a с ATI-шными драйверами. В данной статье все манипуляци проводятся с ядром ветки 2.4, а конкретно - с 2.4.29, которое недавно вышло. Итак. Чтобы Х-сервер запустил АТИшный DRI - нам надо отключить DRI в ядре. Для этого в меню настройки ядра заходим в "Character devices --->", затем (далеко внизу) в "Direct Rendering Manager (XFree86 DRI support) --->". Там убираем галочку в самой верхней строчке "[ ] Direct Rendering Manager (XFree86 DRI support)". Отлично, теперь после пересборки, ядро будет использовать DRI из атишных драйверов. Теперь надо убедиться, что в ядре есть поддержка шины AGP, для этого мы выходим из настроек DRI и в тех же "Character devices --->" ищем строчку "< > /dev/agpgart (AGP Support)", жмем пробел, чтобы включить поддержку agpgart в виде модуля, т.е. конечный вариант будет - "<M> /dev/agpgart (AGP Support)", после этой строчки надо отметить ваш чипсет (если вы не знаете, какой у вас чипсет, лучше поставьте звездочки везде - до строчки "Direct Rendering Manager (XFree86 DRI support) --->"). Далее выходим из конфигуратора ядра с сохранением конфига и пересобираем ядро: make dep bzImage modules modules_install. Копируем ядро в /boot, настаиваем загрузчик... ну вобщем, как всегда. Теперь ваше ядро готово для работы с атишными драйверами. Часть V: установка fglrx Для начала надо убедиться в том, что у нас установлены kernel-headers для нашего ядра. Скачать их можно на ftp вашего дистрибутива, у меня это: kernel-headers-2.4.29-i386-1.tgz. Качаем и ставим. Далее, т.к. версия нашего Х-сервера 6.8.0, то и драйвера мы будем качать именно для этой версии иксов (логично, правда?). По ссылке: http://www.ati.com/support/drivers/linux/radeon-linux.html можно скачать драйвера для xorg 6.8 - http://www2.ati.com/drivers/linux/fglrx_6_8_0-8.8.25-1.i386.rpm версии 8.8.25. Т.к. у меня система Slackware - то я из этой рпмки сделал слаковский пакет: $ rpm2tgz fglrx_6_8_0-8.8.25-1.i386.rpm $ ls fglrx* fglrx_6_8_0-8.8.25-1.i386.rpm fglrx_6_8_0-8.8.25-1.i386.tgz Если ваша система "понимает" rpm-ки - вам не надо ничего преобразовывать. После этого я ставлю сам пакет самым обычным образом: installpkg fglrx_6_8_0-8.8.25-1.i386.tgz. * Установка пакета в вашей системе может отличаться, т.к. я показываю установку пакета именно для Слакваря. После этого вам надо сконфигурировать ваш Х-сервер, чтобы он начал использовать новый драйвер. Для этого под root набираем в командной строке: "fglrxconfig", после чего вам будет задано много вопросов по вашей системе. В конце будет вопрос - записать ли новый файл конфигурации XFree86-4.conf в папке /etc/X11/, на что отвечает "yes". Затем, в идеале, вам следует просто использовать этот новый файл конфигурации иксов (если вы используете X.org) - то этот файл надо переименовать в xorg.conf. Лично я не использую этот новый файл, а лишь копирую все, что касается видеокарты в мой старый конфиг, т.е. только следующие строчки: Section "Device" Identifier "ATI Graphics Adapter" Driver "fglrx" [... и так далее ...] EndSection Затем, как написано на атишном сайте, следует включить общую память для работы драйвера, для чего делаем следующее как root: 1) В файл /etc/fstab добавляем строчку: tmpfs /dev/shm tmpfs defaults 0 0 2) Монтируем эту штуковину: mount /dev/shm 3) Теперь проверяем, примаунтилось или нет: mount | grep "shm" Если примаунтилось, то должна появиться строка: tmpfs on /dev/shm type tmpfs (rw) Теперь, самое главное -- т.к. в иксовых логах нам открыто говорится, что мол драйвер не может определить версию иксов: (II) fglrx(0): driver needs XFree86 version: 4.3.x (WW) fglrx(0): could not detect XFree86 version (query_status=-3) Мы берем и РУЧКАМИ ставим библиотеку, т.е. распаковываем tgz-файл: tar zxvf fglrx_6_8_0-8.8.25-1.i386.tgz (распаковываем из под root в корень системы /), затем делаем следущее: # cd /lib/modules/fglrx/build_mod/ # sh make.sh # cd .. # sh make_install.sh Объясняю: сначала переходим в папку, куда распаковалась библиотека fglrx, затем вручную запускаем шелл-скрипт установки драйвера (сначала make.sh, а затем - make_install.sh, который находится выше уровнем). ВСЕ. Если скрипт выполнился без ошибок -- считайте, вы уже сидите на новых атишных дровах. После всех этих процедур просто перезагружаем Х-сервер (жмем Alt+Ctrl+Backspace). Часть VII: результат После ребута иксов проверяем новые драйвера, которые должны работать уже Direct Rendering: $ glxinfo | grep render direct rendering: Yes GLX_ATI_render_texture OpenGL renderer string: MOBILITY RADEON 9000 DDR Generic ЕСТЬ! $ fglrxinfo display: :0.0 screen: 0 OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: MOBILITY RADEON 9000 DDR Generic OpenGL version string: 1.3.4769 (X4.3.0-8.8.25) ЕСТЬ! $ glxgears 3737 frames in 5.0 seconds = 747.400 FPS 4553 frames in 5.0 seconds = 910.600 FPS 4553 frames in 5.0 seconds = 910.600 FPS 4553 frames in 5.0 seconds = 910.600 FPS 4553 frames in 5.0 seconds = 910.600 FPS 4553 frames in 5.0 seconds = 910.600 FPS 4553 frames in 5.0 seconds = 910.600 FPS 910.600 - стабильность -- наше кредо (с) :D Отлично! DRI работает! Обнимаемся, поднимаем бокалы, выпиваем, швыряем пустые бокалы в сторону Микро$офта. :) Для наглядности привожу конфиг своего Х-сервера: http://www.n1tro.info/xorg/xorg.conf Автор статьи: n1tro Дата: 30.01.2005 URL: http://www.n1tro.info

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Григорий (??), 12:41, 30/08/2005 [ответить]  
  • +/
    Настраивал радеон на acer aspire, вот результаты: http://grena.spb.ru/linux_ati.php
     
  • 2, helgi (?), 11:38, 07/02/2006 [ответить]  
  • +/
    бомба! сегодня попробую, а то уже которые сутки "...пылают станицы...", никак не мог найти доку по установке ati на slackware
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру