ATI (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
ATI
. Дата последней синхронизации: 13 июня 2025. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
AMDGPU (Русский)
Xorg (Русский)
Данная статья описывает открытый драйвер
radeon
, который поддерживает старые видеокарты AMD (ранее ATI).
Выбор правильного драйвера
Выберите правильный драйвер, соответствующий вашей видеокарте — смотрите раздел
Xorg (Русский)#AMD
. Данная статья описывает
ATI
.
Если не уверены, попробуйте сначала драйвер
AMDGPU
, который походит для большинства карт, выпущенных с 2015 года. Смотрите
таблицу возможностей
, чтобы узнать, что поддерживается драйвером
radeon
, и
таблицу
, сопоставляющую маркетинговые названия видеокарт (например, Radeon HD4330) с названиями чипов (например, R700).
Установка
Установите
пакет
mesa
, который предоставляет драйвер
DRI
для 3D-ускорения, а также драйверы VA-API/VDPAU для
аппаратного декодирования видео
, или
mesa-amber
для очень старых видеокарт (
R200
и более старые).
Для поддержки 32-битных приложений также установите пакет
lib32-mesa
(
lib32-mesa-amber
) из репозитория
multilib
.
Для драйвера
DDX
(который обеспечивает 2D-ускорение в
Xorg
) можно установить пакет
xf86-video-ati
, но это необязательно, так как стандартный драйвер modesetting обычно тоже работает без проблем.
Загрузка
Модуль ядра
radeon
должен загрузиться автоматически.
Если он не загружается:
убедитесь, что вы
не
используете
параметры ядра
nomodeset
или
vga=
, которые отключают
KMS
, так как он необходим для работы
radeon
;
убедитесь, что загрузка модуля
radeon
не запрещена
.
Настройка Xorg
Xorg
автоматически загрузит нужный драйвер и выставит правильное разрешение монитора по информации из EDID. Изменение конфигурации Xorg требуется лишь для тонкой настройки драйвера.
Для ручной настройки создайте такой файл:
/etc/X11/xorg.conf.d/20-radeon.conf
Section "OutputClass"
    Identifier "Radeon"
    MatchDriver "radeon"
    Driver "radeon"
EndSection
Информация о параметрах драйвера, которые можно менять в этой секции, доступна в документации:
radeon(4)
.
Настройка производительности
Аппаратное ускорение видео
Смотрите
Аппаратное ускорение видео#AMD/ATI
.
Графические инструменты
Radeon Profile
— Инструмент для чтения и изменения частот видеокарт AMD Radeon, использующий Qt 5.
https://github.com/emerge-e-world/radeon-profile
||
radeon-profile-git
AUR
CoreCtrl
— Инструмент для разгона с графическим интерфейсом, похожим на WattMan, с поддержкой профилей для отдельных приложений.
https://gitlab.com/corectrl/corectrl
||
corectrl
Параметры драйвера
Эти параметры задаются в файле
/etc/X11/xorg.conf.d/20-radeon.conf
.
Перед их изменением прочитайте
radeon(4)
и
RadeonFeature
.
Метод ускорения
; Glamor (реализует ускорение 2D с помощью OpenGL) используется
по умолчанию
для R600 (Radeon HD2000 series) и более новых видеокарт. Для старых видеокарт используется EXA.
Option "AccelMethod" "glamor"
DRI3
включен по умолчанию
начиная с xf86-video-ati 7.8.0
.
TearFree
предотвращает горизонтальные разрывы изображения (тиринг) с помощью аппаратного механизма переключения страниц:
Option "TearFree" "on"
ColorTiling
и
ColorTiling2D
должны быть включены по умолчанию. Плиточный режим может обеспечить значительный прирост производительности в 3D-приложениях. Он отключается, если модуль DRM слишком старый или если текущая конфигурация дисплея его не поддерживает. KMS ColorTiling2D поддерживается только на R600 (Radeon HD2000 series) и более новых чипах:
Option "ColorTiling" "on"
Option "ColorTiling2D" "on"
При использовании метода ускорения Glamor можно включить
ShadowPrimary
, который позволяет использовать так называемый «shadow primary» буфер для быстрого доступа процессора к пиксельным данным, а также отдельные scanout-буферы для каждого контроллера дисплея (CRTC). Это может повысить производительность для некоторых 2D-нагрузок, но потенциально за счёт других (например, 3D, видео) нагрузок. Имейте в виду, что включение этого параметра в настоящее время отключает Option "EnablePageFlip":
Option "ShadowPrimary" "on"
EXAVSync
доступен только при использовании метода ускорения EXA и может быть включен для предотвращения тиринга путём приостановки работы движка до тех пор, пока контроллер дисплея не пройдёт регион назначения. Это уменьшает разрывы ценой снижения производительности и, как известно, может привести к нестабильности на некоторых чипах:
Option "EXAVSync" "yes"
Пример файла настроек
/etc/X11/xorg.conf.d/20-radeon.conf
:
Section "OutputClass"
  Identifier "Radeon"
  MatchDriver "radeon"
  Driver "radeon"
  Option "AccelMethod" "glamor"
  Option "DRI" "3"
  Option "TearFree" "on"
  Option "ColorTiling" "on"
  Option "ColorTiling2D" "on"
EndSection
Параметры ядра
Совет
Для отладки параметров можно использовать
systool
как описано в разделе
Модуль ядра#Получение информации
.
Если значение
gartsize
не определилось автоматически, можно задать его вручную, добавив
параметр ядра
radeon.gartsize=32
.
Примечание
Для современных видеокарт AMD указывать этот параметр скорее всего не нужно:
[drm] Detected VRAM RAM=2048M, BAR=256M
[drm] radeon: 2048M of VRAM memory ready
[drm] radeon: 2048M of GTT memory ready.
Перезагрузитесь для применения изменений.
Отключение PCIe 2.0
Начиная с версии ядра 3.6, в драйвере
radeon
включено по умолчанию использование PCI Express 2.0.
На некоторых материнских платах это приводит к проблемам. Для отключения добавьте
параметр ядра
radeon.pcie_gen2=0
.
Смотрите
статью на Phoronix
для более подробной информации.
Оверлей Gallium
Драйвер
radeon
позволяет включить оверлей (heads-up display, HUD), который может рисовать прозрачные графики и текст поверх приложений, выполняющих рендеринг, например игр. Эти графики могут показывать такие значения, как текущая частота кадров или загрузка процессора (средняя или по ядрам). Оверлей управляется
переменной окружения
GALLIUM_HUD
, в которой можно указать желаемые графики через запятую или точку с запятой. Некоторые из доступных графиков:
fps
— текущая частота кадров в секунду
cpu
— средняя загрузка процессора
cpu0
— загрузка первого ядра процессора
cpu0+cpu1
— загрузка первых двух ядер процессора
draw-calls
— сколько раз каждый материал объекта отрисовывается на экране
requested-VRAM
— сколько используется видеопамяти
samples-passed
— сколько пикселей отрисовывается
Чтобы увидеть полный список параметров, а также некоторые заметки по работе с
GALLIUM_HUD
, можно указать параметр
help
, запустить какое-нибудь простое приложение вроде
glxgears
и посмотреть вывод в терминале:
$ GALLIUM_HUD="help" glxgears
Более подробная информация есть в
этом письме
и в
этой статье
.
Гибридная графика/AMD Dynamic Switchable Graphics
Эта технология используется в последних моделях ноутбуков, оснащённых двумя графическими процессорами: энергоэффективным (как правило, встроенная графика Intel) и более мощным и требовательным к питанию (как правило, дискретная графика Radeon или NVIDIA). Есть два способа работать с ними:
Если запускать нагружающие видеокарту приложения не требуется, можно отключить дискретную графику (смотрите
Ubuntu wiki
):
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
PRIME
: Является правильным способом использования гибридной графики в Linux, но требует некоторого ручного вмешательства со стороны пользователя.
Энергосбережение
Примечание
Управление питанием поддерживается на всех чипах, которые содержат соответствующие таблицы состояния питания в vbios (R1xx и новее). «dpm» поддерживается только на чипах R6xx и более новых.
Есть три метода управления питанием на выбор:
dpm
(по умолчанию с версии ядра 3.13)
dynpm
profile
Подробнее:
https://www.x.org/wiki/RadeonFeature/#index3h2
Динамическое управление питанием
Начиная с версии ядра 3.13, DPM включен по умолчанию для
большого количества видеокарт AMD Radeon
. Если вы хотите отключить его и использовать другой метод, добавьте
параметр ядра
radeon.dpm=0
.
Совет
DPM работает на видеокартах R6xx, но по умолчанию не включен (только для R7xx и новее). Добавьте
параметр ядра
radeon.dpm=1
, чтобы включить dpm.
В отличие от
dynpm
, метод dpm использует аппаратные методы для динамического изменения частот и напряжений в зависимости от нагрузки на видеокарту. Он также позволяет регулировать тактовую частоту и мощность.
Доступны 3 режима работы:
battery
— минимальное энергопотребление
balanced
— разумные параметры по умолчанию
performance
— максимальная производительность
Изменить режим можно через sysfs:
# echo battery > /sys/class/drm/card0/device/power_dpm_state
Для тестирования или отладки можно заставить видеокарту работать в заданном режиме производительности:
auto
— по умолчанию; использует все доступные уровни
low
— минимальный уровень производительности
high
— максимальный уровень производительности
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level
Консольные инструменты
radcard
- скрипт для переключения режимов DPM
Старые методы
Динамическое переключение частоты
Этот метод динамически изменяет частоту в зависимости от нагрузки на видеокарту, поэтому производительность повышается при работе приложений, интенсивно использующих видеокарту, и снижается при бездействии. Момент изменения частоты пытается подстраиваться под вертикальную синхронизацию, но из-за особенностей работы успевает не всегда, что может приводить к мерцанию изображения на экране. В связи с этим динамическое управление питанием работает только если активен один монитор.
Включить этот метод можно командой:
# echo dynpm > /sys/class/drm/card0/device/power_method
Переключение частоты с помощью профилей
Этот метод позволяет выбрать один из пяти профилей. Профили в основном меняют частоты и напряжения видеокарты. Этот метод не такой агрессивный, но более стабильный, без мерцания и работает с несколькими мониторами.
Включить этот метод можно командой:
# echo profile > /sys/class/drm/card0/device/power_method
Доступные профили:
default
— использует частоты по умолчанию и не изменяет состояние питания. Это поведение по умолчанию.
auto
— выбирает между средним и максимальным энергопотреблением в зависимости от того, работает ли система от батареи или нет.
low
— минимальное энергопотребление. На некоторых ноутбуках приводит к проблемам с изображением, поэтому профиль
auto
переключается на минимальное энергопотребление только когда все мониторы выключены. Выбирается в других профилях, когда мониторы находятся в состоянии
DPMS
-off.
mid
— среднее энергопотребление.
high
— максимальное энергопотребление.
Включить определённый профиль (например
low
) можно командой:
# echo low > /sys/class/drm/card0/device/power_profile
Постоянная конфигурация
Изменения параметров питания не сохраняются и сбрасываются после перезагрузки. Чтобы сделать изменения постоянными, можно создать правило
udev
для их применения. Пример, настраивающий
#Переключение частоты с помощью профилей
:
/etc/udev/rules.d/30-radeon-pm.rules
KERNEL=="card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"
Пример, настраивающий
#Динамическое управление питанием
на определённый режим производительности:
/etc/udev/rules.d/30-radeon-pm.rules
KERNEL=="card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_dpm_force_performance_level}="high"
Примечания
Посмотреть текущие частоты видеокарты можно командой:
# cat /sys/kernel/debug/dri/0/radeon_pm_info
state: PM_STATE_ENABLED
default engine clock: 300000 kHz
current engine clock: 300720 kHz
default memory clock: 200000 kHz
Список доступных параметров зависит от модели видеокарты и версии ядра.
Термодатчики реализуются через внешние чипы i2c или через внутренний термодатчик (только для rv6xx-evergreen). Чтобы получить температуру на asics с чипами i2c нужно загрузить соответствующий драйвер hwmon для датчика, используемого на вашей плате (lm63, lm64 и т. д.). drm попытается загрузить соответствующий драйвер hwmon. На платах, использующих внутренний термодатчик, drm настроит интерфейс hwmon автоматически. Когда соответствующий драйвер загружен, доступ к температурам можно получить с помощью
lm_sensors
или через sysfs в
/sys/class/hwmon
.
Скорость вентилятора
Хотя описанные выше функции энергосбережения должны достаточно хорошо справляться со скоростью вращения вентиляторов, некоторые карты всё же могут быть слишком шумными при бездействии. В этом случае можно изменить скорость вращения вентиляторов вручную, если видеокарта поддерживает это.
Важно
После изменения скорости вращения вентиляторов на фиксированное значение она не будет подстраиваться под текущую нагрузку, что может привести к перегреву при большой нагрузке.
При установки скорости ниже стандартной контролируйте температуру видеокарты.
Управление вентиляторами видеокарты описано в разделе
Fan speed control#AMDGPU sysfs fan control
(драйверы amdgpu и radeon имеют одинаковый интерфейс управления).
Сделать изменения постоянными можно как описано в разделе
#Постоянная конфигурация
.
Если фиксированное значение нежелательно, можно придумать свою кривую управления вентиляторами, например, написав скрипт, в котором скорость вентиляторов устанавливается в зависимости от текущей температуры (узнать её можно из файла
/sys/class/drm/card0/device/hwmon/hwmon0/temp1_input
).
radeon-profile-git
AUR
предоставляет графический интерфейс.
ТВ-выход
Проверить наличие вывода S-Video можно командой
xrandr
, которая должна вывести что-то вроде:
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200
...
S-video disconnected (normal left inverted right x axis y axis)
Уведомляем Xorg, что он подключен:
xrandr --output S-video --set "load detection" 1
Изменение используемого ТВ-стандарта:
xrandr --output S-video --set "tv standard" ntsc
Добавление режима (на данный момент поддерживается только 800x600):
xrandr --addmode S-video 800x600
Включение дублирования изображения из основного монитора на S-Video:
xrandr --output S-video --same-as VGA-0
Выбор режима:
xrandr --output S-video --mode 800x600
После этого на телевизоре, подключенному к выводу S-Video, вы должны увидеть рабочий стол компьютера в пониженном разрешении.
Отключение вывода:
xrandr --output S-video --off
Включение ТВ-выхода через KMS
Через
параметр ядра
video=
можно задавать видеорежим в таком формате (подробнее в статье
Kernel mode setting (Русский)
):
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]
Например:
video=DVI-I-1:1280x1024-24@60e
Параметры с пробелами должны быть внутри кавычек:
"video=9-pin DIN-1:1024x768-24@60e"
Получить список доступных видеовыводов можно командой:
$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-
Звук HDMI
Звук HDMI поддерживается в видеодрайвере
xf86-video-ati
. Для отключения добавьте
параметр ядра
radeon.audio=0
.
Если после загрузки нет видео, то опция драйвера должна быть отключена.
Примечание
Если после установки драйвера звук HDMI не работает, проверьте параметры как описано в разделе
Advanced Linux Sound Architecture/Troubleshooting#HDMI output does not work
.
Если звук в PulseAudio искажённый, попробуйте использовать
tsched=0
как описано в разделе
PulseAudio/Решение проблем#Глюки, пропуски или потрескивания
и убедитесь, что демон
rtkit
запущен.
Ваша звуковая карта может использовать тот же модуль, поскольку HDA-совместимое оборудование довольно распространено. Смотрите
Advanced Linux Sound Architecture#Set the default sound card
.
Несколько мониторов
С использованием RandR
Смотрите
Multihead#RandR
.
Независимые экраны X
Независимые установки с двумя мониторами можно настроить обычным способом. Однако вам стоит знать, что в драйвере radeon есть опция
"ZaphodHeads"
, которая позволяет привязать определённую секцию Device к выводу по вашему выбору:
/etc/X11/xorg.conf.d/20-radeon.conf
Section "Device"
  Identifier "Device0"
  Driver "radeon"
  Option "ZaphodHeads" "VGA-0"
  VendorName "ATI"
  BusID "PCI:1:0:0"
  Screen 0
EndSection
Это может оказаться полезным при использовании видеокарт, имеющих более двух выходов. Например, один выход HDMI, один DVI, один VGA, будут выбираться и использоваться только выходы HDMI+DVI для двухмониторной установки, если вы явно не укажете
"ZaphodHeads" "VGA-0"
.
Отключение вертикальной синхронизации
С драйвером radeon вертикальная синхронизация, вероятно, включена по умолчанию. Для отключения запускайте программу с
переменной окружения
vblank_mode=0
. Другой вариант — создать или отредактировать файл
~/.drirc
:
~/.drirc
<driconf>
    <device screen="0" driver="dri2">
        <application name="Default">
            <option name="vblank_mode" value="0" />
        </application>
    </device>
    ...
</driconf>
Примечание
Значение driver должно быть именно
dri2
независимо от видеокарты, драйвера или параметров.
Если это не срабатывает, попробуйте отключить вертикальную синхронизацию через настройки Xorg как описано в разделе
#Параметры драйвера
.
Решение проблем
Проблемы с производительностью или артефакты при использовании EXA
Примечание
Это относится только к видеокартам старше R600 (Radeon X1000 series и более старые). На новых видеокартах вместо EXA стоит использовать Glamor.
Если есть проблемы с производительностью 2D, например медленная прокрутка в терминале или веб-браузере, добавление
Option "MigrationHeuristic" "greedy"
в настройках Xorg может решить проблему.
Кроме того, отключение EXAPixmaps может решить проблемы с артефактами, хотя в целом это не рекомендуется и может вызвать другие проблемы.
/etc/X11/xorg.conf.d/20-radeon.conf
Section "OutputClass"
    Identifier "Radeon"
    MatchDriver "radeon"
    Option "AccelMethod" "exa"
    Option "MigrationHeuristic" "greedy"
    #Option "EXAPixmaps" "off"
EndSection
Добавление новых видеорежимов
Смотрите раздел
xrandr (Русский)#Добавление новых видеорежимов
.
Чёрная граница вокруг изображения
Примечание
Сперва убедитесь, что сам телевизор настроен правильно.
При подключении телевизора через HDMI он может отображать размытую картинку с границей в пару сантиметров вокруг неё. Это защита от
вылетов развёртки
(overscan), отключить её можно командой:
xrandr --output HDMI-0 --set underscan off
Черный экран и нет консоли, но X работает в KMS
При использовании двух или более видеокарт ATI на одном компьютере консоль может пропасть. Например, такая проблема наблюдается на ноутбуке Fujitsu Siemens Amilo PA 3553. Это происходит из-за того, что драйвер консоли fbcon работает не на том фреймбуфере. Для решения добавьте
параметр ядра
:
fbcon=map:1
Таким образом fbcon будет работать на
/dev/fb1
вместо
/dev/fb0
. Если это не помогло, попробуйте наоборот указать
fbcon=map:0
вместо этого.
Чёрные окна в приложениях 3D на ATI X1600 (RV530 series)
Есть три возможных решения:
попробуйте добавить
параметр ядра
pci=nomsi
;
если это не помогает, попробуйте добавить
noapic
вместо
pci=nomsi
;
если это тоже не помогает, попробуйте переключить вертикальную синхронизацию, запустив приложение командой вида
vblank_mode=0 glxgears
или наоборот
vblank_mode=1 glxgears
. Если это поможет, сделайте изменение постоянным как описано в разделе
#Отключение вертикальной синхронизации
.
Повреждение курсора после пробуждения из сна
Если курсор оказывается повреждённым (например, его изображение повторяется по вертикали), добавьте
Option "SWCursor" "True"
в настройках Xorg.
DisplayPort остаётся чёрным в многомониторном режиме
Попробуйте добавить
параметр ядра
radeon.audio=0
.
Низкая производительность и/или нестабильность на R9-390
Проблемы с прошивкой карт серии R9-390 включают низкую производительность и сбои (часто вызванные играми или использованием Google Maps), возможно, связанные с DPM. К сообщению об ошибке был оставлен
комментарий
с инструкциями по исправлению.
Поддержка QHD / UHD / 4K на старых видеокартах Radeon
У старых видеокарт тактовая частота пикселей ограничена 165 МГц для HDMI. Как следствие, они поддерживают QHD или 4K только через dual-link DVI, но не через HDMI.
В качестве обходного пути можно
снизить частоту обновления
, например, до 30 Гц.
Другой вариант — пропатчить ядро, убрав ограничение тактовой частоты пикселей, но это может повредить карту!
Баг-репорт с патчем для ядра 4.8:
https://bugzilla.kernel.org/show_bug.cgi?id=172421
Патч вводит новый параметр ядра
radeon.hdmimhz
, который позволяет изменить тактовую частоту пикселей.
Обязательно используйте высокоскоростной HDMI-кабель.
Периодическое горизонтальное мерцание при выводе 4K на DP на 390X
Если вы используете 390X (или, возможно, аналогичные модели) и вывод 4K через DP, вы можете наблюдать периодические горизонтальные артефакты / мерцание (то есть примерно каждые полчаса появляется горизонтальная полоса пикселей высотой ~100 пикселей по всей ширине экрана и дрожит вверх и вниз в течение нескольких секунд). Возможно, это ошибка драйвера radeon. Переход на
AMDGPU
, похоже, исправляет ситуацию.
Смотрите также
Тест производительности
, показывающий, что открытый драйвер находится по производительности на одном уровне с проприетарным драйвером для многих видеокарт.