Для Arch Linux имеется 2 версии драйвера для карт ATI:
Отличия драйверов сведены в таблицу 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, доступ в сеть Интернет, терпение.
Надо: поставить на существующую конфигурацию проприетарный драйвер для поддержки полного аппаратного ускорения.
Уровень пользователя: выше среднего.
Решение:
В двух словах, вся процедура установки будет выглядеть так:
Процесс:
Предполагается, что доступ в сеть Интернет настроен и система обновления пакетов настроена и функционирует. На подготовительном этапе, работа производится в графическом режиме (в иксах). В момент процесса даунгрейда или переустановки, работа будет возможна только в чистой консоли, поэтому, если Вы не продвинутый пользователь, заранее поставьте файловый менеджер Midnight Commander и распечатайте, сохраните в тексте (или html) это руководство.
Так как пакеты придётся брать с репозитория AUR, необходимо установить программное обеспечение для их сборки.
# pacman -S makepkg
pacman предложит на выбор установку каждого средства по отдельности. По умолчанию (без ввода цифры выбора) ставятся все средства. Ставим всё.
Теперь идём на сайт AUR. В поле Search Criteria вводим catalyst. Выйдет обширный список пакетов, из которых надо будет скачать последние стабильные версии catalyst и catalyst-utils и положить их в какой-нибудь каталог, в который будет просто попасть, работая в консольном режиме (без иксов). Для примера это будет /var/temp .
Не спешите скачивать всё подряд. Сначала ищем в списке catalyst. На рис. 1 это catalyst 11.3-1 (самая верхняя строка). Кликаем по названию пакета и попадаем на страницу информации о пакете.
Внимательно смотрим зависимости - строка Dependencies. Для версии catalyst 11.3-1 требуется:
Нажимаем на 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. Сперва нужно скомпилировать и установить 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.
<box 25% right round #f2f2f2 #fff #f2f2f2 #aaaaaa| О драйвере ATI >Вы можете дождаться, пока пакет с драйвером не скачается, а можно, выяснив его имя (оно показывается во время работы makepkg), прервать процесс (через Ctrl+C) и скачать (получить) файл другим способом, а затем скопировать в каталог сборки и снова запустить:
makepkg -c.
</box>
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