Устанавливаем Проприетарный драйвер ATI Catalyst 9.3 на Debian/lenny amd64

Опубликовано: Комментариев: 1

Темой сегодняшней статьи будет Правильная настройка проприетроного драйвера ATI на Debian Lenny с архитектурой amd64. Инструкция так же подойдет и для настройки 32х битной системы. Все дело в том, что как я понял из поисков по Google на забугорных форумах дистрибутивы 32х битных и 64х битных систем имеют некоторые различия в библиотеках, и ATI Catalyst больше ориентирован на 32х битную систему, в результате чего с настройкой ее под 64х битную систему у меня возникли небольшие трудности, но все же спустя пару бессонных ночей я добился результата и выкладываю свою последовательность действий. 1. Для начала скачайте драйвер с официального сайта ATI для своей при любимой видеокарты, убедитесь что в скачиваемой вами версии включена поддержка всего арсенала возможностей вашей видео-карты, и что данная версия драйвера пойдет на вашем ядре и с вашими исками. У меня стоит Debian Lenny, и поэтому вот какое у меня ядро и Иксы(xorg): uname -a Linux debian 2.6.26-2-amd64 #1 SMP Sun Jun 20 20:16:30 UTC 2010 x86_64 GNU/Linux dpkg -l xorg ii xorg 1:7.3+20 X.Org X Window System Моя видеокарта ATI x1250: lspci |grep VGA 01:05.0 VGA compatible controller: ATI Technologies Inc RS690M [Radeon X1200 Series] Я скачал себе драйвер ati-driver-installer-9-3-x86.x86_64.run поскольку в более поздних версиях ATI x1250 занесена в список legacy, другими словами под нее fglrx драйвера поддерживающего 3D ускорение уже не будет, т.е. фиг я в игры поиграю когда приспичит. Так-с..., вот что я имел при установке, как видите у меня 64битная система, и из-за этого в процессе установки Ati Catalyst на ноутбук Asus A7u у меня будет куча ошибок, опишу их вместе с решениями, надеюсь Вас это спасет от многих бессонных ночей в гугле :) 2. Второй простенький шаг - это установка необходимых пакетов, сегодня нашей фабрике компиляторов, цеху Атишников понадобятся следующие пакеты: apt-get install module-assistant build-essential fakeroot dh-make debconf libstdc++5 linux-headers-$(uname -r) 3. Собираем пакеты для нашего дистрибутива sh ati-driver-installer-9-3-x86.x86_64.run --buildpkg Debian/lenny возможна следующая ошибка: dpkg-shlibdeps: failure: couldn't find library libXext.so.6 needed by debian/fglrx-driver/emul/ia32-linux/usr/lib/libGL.so.1.2 (its RPATH is ''). Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file. To help dpkg-shlibdeps find private libraries, you might need to set LD_LIBRARY_PATH. dh_shlibdeps: command returned error code 512 make: *** [binary] Error 1 dpkg-buildpackage: failure: debian/rules binary gave error exit status 2 Removing temporary directory: fglrx-install.lbEBzV на 32битных версиях может помочь указания адреса к искомой библиотеке, в таком случае делаем поиск где-же нужная библиотека, и указываем к ней путь. В случае с libXext - она лежит в /ust/lib, что б это проверить можно написать: ls /usr/lib |grep libXext libXext.a libXext.so libXext.so.6 libXext.so.6.4.0 и потом снова пробуем запустить ati installer, но уже с параметром LD_LIBRARY_PATH LD_LIBRARY_PATH=/usr/lib sh ati-driver-installer-9-3-x86.x86_64.run --buildpkg Debian/lenny 3.2 Для 64битных систем необходимо скачать библиотеку ia32-libs, собираем и устанавливаем ее в три шага 1) удовлетворим зависимости 2) сконфигурируем 3) построим deb пакет и установим: apt-get install grep-dctrl lib32gcc1 lib32z1 lib32stdc++6 lib32stdc++6 lib32asound2 lib32ncurses5 lsb-release cd /usr/src/ tar -xvvzf ia32-libs_2.7.tar.gz cd ./ia32-libs_2.7 dh_make -e exemple@exemple.com -f ../ia32-libs_2.7.tar.gz dpkg-buildpackage dpkg -i /usr/src/ia32-libs_2.7_amd64.deb При вводе команды dh_make выберете S - single binary. Если все правильно сделали - то в итоге у нас будет debian пакет с набором необходимых для компиляции проприетарных драйверов на 64х битной системе библиотек. Теперь снова попробуйте написать команду из шага 3. Вполне возможна ошибка: dpkg-shlibdeps: failure: couldn't find library libfglrx_gamma.so.1 needed by debian/fglrx-driver/usr/bin/fglrx_xgamma (its RPATH is ''). В таком случае распакуем архив, и сосздадим ссылки на отсутствующие файлы внутри пакета ati catalyst: sh ati-driver-installer-9-3-x86.x86_64.run --extract fglrx cd ./fglrx И нужно создать теперь ссылки на библиотеку libfglrx_gamma.so.1, честно говоря я не помню, для какого именно файла я делал симлинк, так что давайте просто по очереди напишем следующее, чтоб на 100% уже система не возмужалась: cd /usr/src/fglrx/arch/x86/usr/X11R6/lib ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so.1 cd /usr/src/fglrx/arch/x86_64/usr/X11R6/lib64 ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so.1 После чего снова пытаемся запустить процесс, однако уже теперь не run файла, а в нашей разложенной папке стартуем сборку deb пакетов: sh ati-installer.sh ./packages/Debian/ati-installer.sh --buildpkg Debian/lenny В случае успеха вы получите приятное извещение такого рода: Generating package: Debian/lenny Package /usr/src/fglrx-driver_8.593-1_amd64.deb has been successfully generated Package /usr/src/fglrx-driver-dev_8.593-1_amd64.deb has been successfully generated Package /usr/src/fglrx-kernel-src_8.593-1_amd64.deb has been successfully generated Package /usr/src/fglrx-amdcccle_8.593-1_amd64.deb has been successfully generated 4. Добро пожаловать на четвертую стадию! В итоге у нас в папке /usr/src/ появится 4 деб пакета и файл changes, который следует удалить: rm *.changes 5. Выполняем установку драйверов: dpkg -i fglrx* Тут никаких проблем не будет как в i386 так и в amd64 архитектурах. 6. Собираем и устанавливаем модуль ядра для 32х битных систем m-a prepare m-a a-i fglrx После чего добавим модуль fglrx, желательно бы перед эйтим выйти из исков в консоль, и заглушить иксы. modprobe -v glrx Если возникает ошибка, вне зависимости от архитектуры: modprobe -v fglrx FATAL: Error inserting fglrx (/lib/modules/2.6.22-3-686/misc/fglrx.ko): Operation not permitted Выйдем из X и напишем modprobe -r radeon modprobe -v fglrx 6.2 Собираем и устанавливаем модуль ядра для 64х битных систем все дело в том, что если вы пойдете обычным путем, как в пункте 6, то в итоге получите такой неприятный вывод: modprobe -v fglrx FATAL: Error inserting fglrx (/lib/modules/2.6.26-2-amd64/misc/fglrx.ko): Unknown symbol in module, or unknown parameter (see dmesg) dmesg |tail [2842.216384] fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel. [2842.216384] fglrx: Unknown symbol flush_tlb_page Гугл поиск привел к ответу, что в версии ядра 2.6.25 убрали tlb из smp_[32|64].c и одновременно с этим добавили отдельные файлы для tlb: tlb_32.c b и tlb_64.c. Чтобы добавить fglrx нам следует пересобрать ядро, предварительно пропатчив его. Патч качаем по этой ссылке Чтобы пропатчить ядро мы заходим в каталог с исходным кодом ядра и копируем сюда наш kernel-patch.diff после чего пишем: $ patch -i kernel-patch.diff И когда видим в терминале строку File to patch:, просто пишем путь файла ./arch/x86/kernel/tlb_64.c И всех делов-то! Внимание! Этот патч я подправил для ядра 2.6.26, если вы патчите другое, то просто руками замените строки, которые меняет наш патч. После чего смело запускаем копиляцию и установку нового ядра. После установки нового ядра перейдем снова в нашу папку /usr/src/ и попробуем повторить установку проприетарного драйвера fglrx: m-a prepare m-a a-i fglrx modprobe -v fglrx 7. И на последок теперь уже, когда все предыдущие шаги выполнены успешно, делаем окончательный штрих aticonfig --initial -f dpkg-reconfigure xserver-xorg reboot 8. Проверка производительности Во-первых, скачаем пакет утилит Mesa: apt-get install mesa-utils Для опредления есть ли у Вас теперь 3D ускорение, выполняем команду: glxinfo | grep render Вывод должен быть: direct rendering: Yes Вот мои показатели от Видеокарты ATI x1250 на ноутбуке Asus A7u: $ fglrxinfo display: :0.0 screen: 0 OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: ATI Radeon X1200 Series OpenGL version string: 2.1.8543 Release $ glxinfo |grep render direct rendering: Yes OpenGL renderer string: ATI Radeon X1200 Series $ glxgears 2062 frames in 5.0 seconds = 411.897 FPS 1861 frames in 5.0 seconds = 372.132 FPS 1862 frames in 5.0 seconds = 372.1334 FPS 2227 frames in 5.0 seconds = 445.375 FPS При запуске 3D приложений все работает корректно, никаких тормозов или миганий экрана не наблюдается.   От спонсора: Стильный телефон nokia 701 всегда радовал своей надёжностью. Мобильное устройство поддерживает национальный режим радиосвязи и отвечает требованиям законодательства касательно качества и безопасности. Nokia 701 оснащёна множеством современных функций. Купить Nokia 701 рекомендуется тем, кто хочет видеть в своём телефоне стильный дизайн, соединённый с простотой управления и надёжностью от Nokia.