Устанавливаем Проприетарный драйвер 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_PATHLD_LIBRARY_PATH=/usr/lib sh ati-driver-installer-9-3-x86.x86_64.run --buildpkg Debian/lenny3.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 generated4. Добро пожаловать на четвертую стадию! В итоге у нас в папке /usr/src/ появится 4 деб пакета и файл changes, который следует удалить:
rm *.changes5. Выполняем установку драйверов: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
reboot8. Проверка производительности
Во-первых, скачаем пакет утилит 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.
Огромное спасибо за описание. Именно то, что нужно!
Только один вопрос. У меня Ubuntu 10.10, при сборке у вас написано Debian/lenny (Дэбиан), а для убунту, что писать нужно?