Как стать автором
Обновить

Установка драйвера ATI на Debian GNU/Linux

Время на прочтение3 мин
Количество просмотров18K

Intro


Давным давно, когда я начал пользоваться Linux, я перепробовал несколько дистрибутивов и остановился на Debian. Так как игры я особо не играю, GNOME-вский десктоп мне сразу понравился своей простотой и удобностью, и работала система шустрее Windows. После установки системы все устройства определиль, кроме видеокарты — на тот момент у меня была ATI Radeon 9800 SE.

Установка драйвера как в Windows потерпела фиаско сразу после того как я с удивлением обнаружил, что в интерфейсе к установщику нет Debian, а если выбирать Ubuntu — то все умирает.

Тогда я потратил около недели на установку 8.6 версии. С тех пор я поменял компьютер, однако я поклонник AMD и следующей видеокартой которую я взял была — Radeon HD4850.


Приступая к работе


Во первый для установки понадобится сам драйвер. На данный момент последняя версия — 10.5. После того как он будет загружен распаковываем содержимое в каталог fglrx:

./ati-driver-installer-10-5-x86.x86_64.run --extract fglrx

Примечание: драйвер с пост фиксом «x86.x86_64» подходит как для 32-х так и для 64-х битных систем.

Во-первых необходимо изменить скрипт ati-packager.sh. Для lenny:

cp ./fglrx/packages/Debian/ati-packager.sh ./ati-packager.sh
cat ./ati-packager.sh | sed -e 's/X_DIR=x710; X_NAME=lenny/X_DIR=x690; X_NAME=lenny/' > ./fglrx/packages/Debian/ati-packager.sh


Для squeeze:

cp ./fglrx/packages/Debian/ati-packager.sh ./ati-packager.sh
cat ./ati-packager.sh | sed -e 's/X_DIR=x710; X_NAME=lenny/X_DIR=x750; X_NAME=lenny/' > ./fglrx/packages/Debian/ati-packager.sh


Таким образом указание на несуществующую в дистрибутиве версию X-ов будет изменено на версию поддерживаемую системой.

Во-вторых необходимо изменить скрипт rules, изменения одинаковы для lenny и squeeze:

cp ./Desktop/fglrx/packages/Debian/dists/lenny/rules rules
cat ./rules | sed -e 's/^\tdh_shlibdeps$/#\tdh_shlibdeps/' > ./fglrx/packages/Debian/dists/lenny/rules


Примечание: без этого при сборке пакетов будет вылететь ошибка о том что нет библиотеки libatiuki.so.1. Есть мнение, что если создать ссылку на эту библиотеку то все соберется без проблем. У меня это не сработало. Также есть мнение что изменение переменной окружения LD_LIBRARY_PATH может помочь, однако у меня это также не работало.

Теперь необходимо скопировать необходимую библиотеку в /usr/lib/:

Для 32-х бит:

cp ./fglrx/arch/x86/usr/lib/libatiuki.so.1.0 /usr/lib/libatiuki.so.1

Для 64-х бит:

cp ./fglrx/arch/x86_64/usr/lib64/libatiuki.so.1.0 /usr/lib/libatiuki.so.1

Подготовка к сборке закончена.

Сборка пакетов


Теперь необходимо установить следующие пакеты:

aptitude install debhelper module-assistant

Далее module-assistant подтянет все необходимые пакеты, в том числе исходники ядра:

module-assistant prepare

Также для последних драйверов необходим libqtcore4. Далее сборка пакетов должна пройти без ошибок:

./ati-installer.sh 10.5 --buildpkg Debian/lenny

После чего должны появиться пакеты:
  • fglrx-amdcccle
  • fglrx-driver
  • fglrx-driver-dev
  • fglrx-kernel-src

Установить их можно так:

dpkg --install —force-all *.deb

Примечание: также есть утилита gdebi, позволяющая поставить пакеты с зависимостями. Я по привычке пользуюсь dpkg.

Сборка модуля


Собирается модуль в одну команду:

module-assistant auto-install fglrx

После перезагрузки имеем:
image

Заключение


Писал по памяти, так как последний раз ставил Debian пару месяцев назад на приобретенный ноутбук ASUS K40AB. Описанным способом драйвера поставились на ура, недавнее обновление свободного драйвера radeonhd вызвало конфликт, который был устранен за пару минут. Проверял установку на Debian lenny и squeeze на 32-х и 64-х битных системах.

P.S.: Писал по памяти так что возможны ошибки, однако суть такая.
Теги:
Хабы:
+1
Комментарии6

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн