Для Arch Linux имеется 2 версии драйвера для карт ATI:

  • xf86-video-ati - открытая и свободная версия, находится в репозитории Extra,
  • catalyst - проприетарная версия от компании AMD, располагается на сайте компании.

Отличия драйверов сведены в таблицу 1)

Параметр xf86-video-ati Catalyst
Код, лицензия открытый, своя закрытый, своя
поддержка 2D-графики аппаратно, для моделей карт X1xxx и HD 2xxx - полная аппаратно, полная
поддержка OpenGL 3D-графики достаточное для работы Compiz и KWin;
для моделей карт X1xxx - полная;
для HD 5xxx (R800 и выше) - не поддерживает
полная поддержка
поддержка "двухголовых" карт есть есть
поддержка карт по моделям Radeon до модели HD 4xxx (чипсет до R700) и до модели HD 5xxx (чипсет до R800), смотрите на сайте AMD

Открытая версия подойдёт для большинства задач, решаемых на компьютере. Если есть желание играть в 3D-игры, в этом случае нужно ставить версию драйвера от AMD. Разработчики пакетов в сообществе Arch Linux не советуют ставить драйвер AMD, взятый непосредственно с сайта компании. На это есть причины - драйвер "ломает" зависимости в установленной системе и корректное обновление может не сработать. Для решения этой проблемы, в репозитории AUR есть пакеты преднастройки драйвера (патчи). С помощью них и будет проводиться установка.

Установка прориетарного драйвера

Дано: компьютер с PCI-E видеокартой ATi Radeon HD4650, установлена ОС Arch Linux, установлен открытый драйвер xf86-video-ati, графическое окружение GNOME, доступ в сеть Интернет, терпение.
Надо: поставить на существующую конфигурацию проприетарный драйвер для поддержки полного аппаратного ускорения.
Уровень пользователя: выше среднего.
Решение:

В двух словах, вся процедура установки будет выглядеть так:

  • скачивание пакетов catalyst и catalyst-utils с репозитория AUR,
  • просмотр требований для их сборки и установки,
  • при необходимости - откат до старых версий пакетов xorg и других, установленных в системе,
  • распаковка и сборка пакетов catalyst и catalyst-utils
  • конфигурирование Xorg,
  • проверка.

Процесс:
Предполагается, что доступ в сеть Интернет настроен и система обновления пакетов настроена и функционирует. На подготовительном этапе, работа производится в графическом режиме (в иксах). В момент процесса даунгрейда или переустановки, работа будет возможна только в чистой консоли, поэтому, если Вы не продвинутый пользователь, заранее поставьте файловый менеджер Midnight Commander и распечатайте, сохраните в тексте (или html) это руководство.

Установка дополнительного ПО

Так как пакеты придётся брать с репозитория AUR, необходимо установить программное обеспечение для их сборки.

 # pacman -S makepkg

pacman предложит на выбор установку каждого средства по отдельности. По умолчанию (без ввода цифры выбора) ставятся все средства. Ставим всё.

Скачивание пакетов с репозитория AUR

Теперь идём на сайт AUR. В поле Search Criteria вводим catalyst. Выйдет обширный список пакетов, из которых надо будет скачать последние стабильные версии catalyst и catalyst-utils и положить их в какой-нибудь каталог, в который будет просто попасть, работая в консольном режиме (без иксов). Для примера это будет /var/temp .

Рис. 1. Страница поиска пакетов в репозитории AUR

Не спешите скачивать всё подряд. Сначала ищем в списке catalyst. На рис. 1 это catalyst 11.3-1 (самая верхняя строка). Кликаем по названию пакета и попадаем на страницу информации о пакете.

Рис. 2. Страница информации о пакете в репозитории AUR

Внимательно смотрим зависимости - строка Dependencies. Для версии catalyst 11.3-1 требуется:

  • пакет catalyst-utils версии 11.3
  • ядро версии выше 2.6.29 , но ниже 2.6.39

Нажимаем на Tarball и начнёт скачиваться пакет для сборки catalyst 11.3-1 ; сохраняем его в /var/temp

На этой же странице нажимаем на catalyst-utils=11.3 в строке Dependencies, попадаем на страницу пакета catalyst 11.3-2. Снова нажимаем на Tarball и сохраняем пакет в /var/temp

Разрешение зависимостей

Снова смотрим строку Dependencies и проверяем версии установленных в системе пакетов. Желательно сохранить эту строку в тексте, чтобы потом читать в консоли. При необходимости нужно выполнить переход на более ранние версии пакетов. У автора, на момент установки драйвера, работал xorg-10.1.0, поэтому пришлось вернуться на версию 9.xx.x. Возможно драйвер в скором времени будет адаптирован для 10.1, но пока, пришлось всё же вернуться.

Автор воспользовался логом pacman, формируемым в процессе операций с пакетами. Файл лога: /var/log/pacman.log
Вот фрагмент лога, когда производился апгрейд системы:

[2011-04-12 09:57] upgraded xf86-input-acecad (1.4.0-4 -> 1.4.99_git20110318-1)
[2011-04-12 09:57] upgraded xf86-input-aiptek (1.3.1-2 -> 1.3.99_git20110318-1)
[2011-04-12 09:57] upgraded xf86-input-evdev (2.6.0-2 -> 2.6.0-3)
[2011-04-12 09:57] upgraded xf86-input-joystick (1.5.0-5 -> 1.5.99_git20110318-1)
[2011-04-12 09:57] upgraded xf86-input-keyboard (1.6.0-1 -> 1.6.0-2)
[2011-04-12 09:57] upgraded xf86-input-mouse (1.7.0-1 -> 1.7.0-2)
[2011-04-12 09:57] upgraded xf86-input-synaptics (1.4.0-1 -> 1.4.0-2)
[2011-04-12 09:57] upgraded xf86-input-vmmouse (12.7.0-1 -> 12.7.0-2)
[2011-04-12 09:57] upgraded xf86-input-void (1.3.1-1 -> 1.3.1.99_git20110318-1)
[2011-04-12 09:57] upgraded xf86-video-ati (6.14.0-2 -> 6.14.1-1)
[2011-04-12 09:57] upgraded xf86-video-vesa (2.3.0-4 -> 2.3.0-5)
[2011-04-12 09:57] upgraded xfce4-panel (4.8.2-1 -> 4.8.3-1)
[2011-04-12 09:57] upgraded xfce4-session (4.8.1-1 -> 4.8.1-2)
[2011-04-12 09:58] upgraded xkeyboard-config (2.1-1 -> 2.2.1-1)
[2011-04-12 09:58] upgraded xorg-server-common (1.9.4.901-1 -> 1.10.0.902-1)
[2011-04-12 09:58] upgraded xorg-server (1.9.4.901-1 -> 1.10.0.902-1)
[2011-04-12 09:58] upgraded xorg-xrdb (1.0.8-2 -> 1.0.9-1)

Здесь видно, что версия xorg 1.9.4.901-1 обновилась до 1.10.0.902-1

Пакеты старых версий были в кэше системы и даунгрейд выглядел так:

  • выход из графической системы в консоль с остановкой иксов, с этого момента, все действия - только в консоли.
  • удаление пакетов:
 # pacman -R xorg-server      # удаление собственно сервера xorg
 # xorg-server-common         # удаление дополнительных файлов сервера xorg
 # pacman -R xf86-video-ati   # удаление открытого драйвера
  • установка старого сервера:
 # cd /var/cache/pacman       # переход в каталог кэша
 # pacman -U xorg-server-1.9.4.901-1-i686.pkg.tar.xz   # непосредственная установка пакета

* тут оказалось, что новые пакеты с названием xf86-input-* конфликтуют со старой версией xorg, поэтому пришлось удалять все эти пакеты вручную:

 # pacman -R xf86-input-acecad
 # pacman -R xf86-input-aiptek
 # pacman -R xf86-input-evdev
 # pacman -R xf86-input-joystick
 # pacman -R xf86-input-keyboard
 # pacman -R xf86-input-mouse
 # pacman -R xf86-input-synaptics
 # pacman -R xf86-input-vmmouse
 # pacman -R xf86-input-void
 # pacman -R xf86-video-vesa

* и ставить предыдущие версии:

 # pacman -U xf86-input-acecad-1.4.0-4-i686.pkg.tar.xz 
 # pacman -U xf86-input-aiptek-1.3.1-2-i686.pkg.tar.xz 
 # pacman -U xf86-input-evdev-2.6.0-2-i686.pkg.tar.xz 
 # pacman -U xf86-input-joystick-1.5.0-5-i686.pkg.tar.xz 
 # pacman -U xf86-input-keyboard-1.6.0-1-i686.pkg.tar.xz 
 # pacman -U xf86-input-mouse-1.7.0-1-i686.pkg.tar.xz 
 # pacman -U xf86-input-synaptics-1.4.0-1-i686.pkg.tar.xz 
 # pacman -U xf86-input-vmmouse-12.7.0-1-i686.pkg.tar.xz 
 # pacman -U xf86-input-void-1.3.1-1-i686.pkg.tar.xz 

Примечание 1: xf86-video-vesa не устанавливался.
Примечание 2: В теории, pacman, при установке старой версии xorg должен был проверить зависимости и автоматом доустановить старые пакеты, но у автора это не сработало, поэтому все действия пришлось делать вручную.

После даунгрейда, возвращаемся к пакетам catalyst`ам.
Дополнительно, для разрешения зависимостей для пакетов драйверов пришлось доустановить пакет netkit-bsd-finger, остальные пакеты уже присутствовали в системе :

 # pacman -S netkit-bsd-finger

Сборка и установка catalyst-utils и catalyst

Приступаем к сборке утилит и драйверов catalyst. Сперва нужно скомпилировать и установить catalyst-utils, а затем catalyst.
Переходим в каталог, куда скачались пакеты и распаковываем их:

 $ cd /var/temp
 $ ls
   catalyst.tar.gz catalyst-utils.tar.gz 
 $ tar -zxvf catalyst.tar.gz
 $ tar -zxvf catalyst-utils.tar.gz

Переходим в каталог catalyst-utils и начинаем сборку:

 $ cd ../catalyst-utils
 $ makepkg -c

Если не все зависимости разрешены, процесс сборки остановится и будет выдано сообщение о необходимости что-то доустановить. После разрешения зависимостей, снова нужно запустить makepkg -c.

О драйвере ATI

Вы можете дождаться, пока пакет с драйвером не скачается, а можно, выяснив его имя (оно показывается во время работы makepkg), прервать процесс (через Ctrl+C) и скачать (получить) файл другим способом, а затем скопировать в каталог сборки и снова запустить:
makepkg -c.

makepkg , перед тем как начать компиляцию, начнёт скачивать версию драйвера с сайта AMD и сохранит её в текущем каталоге, после чего скомпилирует модули и библиотеки. В итоге получится пакет tar.xz-пакет, который устаналивается с помощью pacman. В данном случае это файл catalyst-utils-11.3-1-i686.pkg.tar.xz.

Устанавливаем catalyst-utils:

 # pacman -U catalyst-utils-11.3-1-i686.pkg.tar.xz

Теперь переходим к компиляции и установке catalyst.
Копируем файл драйверов ati-driver-installer-11-3-x86.x86_64.run в catalyst-utils, иначе makepkg снова будет его качать:

 $ cp ati-driver-installer-11-3-x86.x86_64.run ../catalyst

Далее проделываем тоже самое что и для catalyst - заходим в каталог, начинаем сборку и при необходимости разрешаем зависимости: В итоге, должен получиться файл catalyst-11.3-2-i686.pkg.tar.xz или что-то tar.xz-подобное:

 $ cd catalyst
 $ makepkg -c
 # pacman -U catalyst-11.3-1-i686.pkg.tar.xz

Пакет установит модули fglrx для ядра. Возможен вариант, что pacman сматерится на libgl и попросит его удалить для разрешения конфликта. Автору пришлось использовать такой метод:

 # pacman -f -d -U catalyst-11.3-1-i686.pkg.tar.xz

Дополнительные опции нужны для установки "в наглую": -d - не обрабатывать зависимости, -f - не обрабатывать конфликты.

Далее правим файл /boot/grub/menu.lst. Находим секцию нормальной загрузки ядра и добавляем опцию nomodeset:
Фрагмент файла /boot/grub/menu.lst

  ...
  # (0) Arch Linux
  title  Arch Linux
  root   (hd0,1)
  kernel /vmlinuz26 root=/dev/sda1 ro nomodeset
  initrd /kernel26.img
  ...

Перезагружаем машину. Теперь создадим базовый xorg.conf:

 # aticonfig --initial

Если в системе работает "двухголовая" видеокарта и подключено 2 монитора, то базовый xorg.conf создаётся так:

 # aticonfig --initial=dual-head

В /etc/X11 должен создаться файл xorg.conf с базовыми настройками. Осталось запустить иксы из-под учётной записи обычного пользователя и проверить работоспособность иксов, графики и ускорения.

 $ startx

На этом установка завершена. Для двухмониторной конфигурации, если получилось так, что нужно поменять местами мониторы - открываем xorg.conf в редакторе и правим строки блока:

 Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "aticonfig-Screen[0]-0" 0 0}}                          # задаёт основной монитор
	Screen         "aticonfig-Screen[0]-1" LeftOf "aticonfig-Screen[0]-0" # задаёт дополнительный монитор и его расположение
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
 EndSection

Параметр LeftOf может быть заменён на RightOf.

В случае проблем, смотрим лог xorg: /var/log/Xorg.0.log

  • Если необходим дополнительный функционал, связанный с драйверами ATI, почитайте оригинальные статьи в вики-разделе на сайте сообщества Arch Linux.
  • Если нужно настроить русскую раскладку клавиатуры средствами иксов, читаем статью "Настройка переключения раскладки клавиатуры в Xorg".
Смотрите также
Примечания
1) Данные от 12 апреля 2011 года
Печать/экспорт