Как включить функцию динамического управления питанием Radeon?

16

Так недавно были выпущены RC ядра Linux 3.11. Как вы, возможно, знаете, это новое ядро ​​поставляется с динамическим управлением питанием для пользователей драйвера Radeon с открытым исходным кодом. Так как у меня есть проблемы с управлением питанием со стандартным ядром Ubuntu 13.04, я хотел попробовать это.

Кто-нибудь знает, как включить эту новую функцию после того, как я скачал и установил последнее ядро ​​RC из PPA тестирования ядра?

РЕДАКТИРОВАТЬ: более конкретно, я говорю об этом: http://www.phoronix.com/scan.php?page=news_item&px=MTM5NjE

Gladen
источник
3.11 еще не выпущен, а у Ubuntu уже есть официальное зеркало? Это новое Возможно, вы имеете в виду тестирование ядра PPA ?
независимо от того,
Да, это то, что я имею в виду! Я скачал последнюю версию RC (RC2 на момент написания) оттуда.
Глейден
1
@mikewhothing: отредактировал вопрос, чтобы сделать его более понятным. По моему мнению, этот вопрос вообще не является темой, я говорю об установке нового ядра в CURRENT Ubuntu версии (13.04). Может кто-нибудь уточнить, почему этот вопрос закрыт?
Глейден
1
Вы правы, это нужно открыть заново. Извинения за поспешное (неправильное) голосование, чтобы закрыть.
Том Броссман
@Gladen - ты имеешь ввиду tlp? Обычно это включает управление питанием для ноутбуков, а также управление потреблением энергии.
dschinn1001

Ответы:

14

Обновление (8-05-2014): Как и ожидалось, в Ubuntu 14.04 DPM по умолчанию включен для всех современных графических процессоров AMD (серии HD 4000– HD 7000). Если вы используете этот выпуск вместе с поддерживаемой видеокартой, вам не нужно ничего делать, чтобы использовать эту функцию.

Обновление (28-11-2013): Ubuntu 13.10 поставляется с ядром 3.11 по умолчанию. Поэтому, если вы используете этот выпуск, все, что вам нужно сделать, это добавить параметр в ядро ​​Linux. Я обновил руководство соответственно. Кроме того, похоже, что в Ubuntu 14.04 DPM будет включен по умолчанию, так что, надеюсь, это руководство к тому времени устареет! ;)

Хорошо, в последние несколько дней я немного поэкспериментировал и включил его! На самом деле это действительно легко, когда вы узнали, как это сделать. Для людей, которые также хотят попробовать это, я объясню каждый шаг. Начиная с установки нового ядра.

Прежде всего несколько моментов для рассмотрения. Поддержка Radeon DPM доступна только для видеокарт серии Radeon HD 2000 (R600) и новее. Если вы используете действительно старую видеокарту ATI Radeon, поддержка управления питанием уже включена в драйвер с открытым исходным кодом.

Шаги только для Ubuntu 13.04 или ниже:

Чтобы использовать Radeon DPM, вам нужно ядро ​​Linux 3.11 или новее. Вы можете использовать PPA ядра Ubuntu mainline и загрузить последний стабильный образ ядра 3.11 Linux из этого каталога kernel.ubuntu.com . Все будущие обновления ядра тоже подойдут, и их также можно найти в этом каталоге.

Использование функции динамического управления питанием требует обновления прошивки для графической карты. Последний микрокод / ​​прошивку Radeon можно загрузить из этого каталога . Вам нужны файлы * _smc.bin с июня. Если вы не уверены, какое именно кодовое имя у вашей графической карты, вы можете найти его по выводу lspci -v | меньше ... Файл (ы) должны быть помещены в / lib / firmware / radeon . Если вы попытаетесь использовать Radeon DPM без прошивки, ускорение будет отключено для графического процессора. Вы также должны убедиться, что у вас есть обновленная прошивка в / lib / firmware / radeon перед установкой ядра> 3.11 - она ​​будет автоматически загружена в установленный образ.

Ubuntu 13.10 или ниже или пользователи Radeon HD 3000 или ниже:

Поддержка Radeon DPM не включена по умолчанию ниже ядра Linux 3.13 или для более старых графических процессоров. Вы должны добавить параметр radeon.dpm = 1 в ядро ​​Linux, чтобы включить его в этих случаях. Чтобы узнать, как это сделать в Ubuntu, смотрите Ubuntu Wiki о различных способах.

С новым установленным ядром, обновленной прошивкой и включенным параметром ядра вы должны быть в порядке. Теперь вы должны перезагрузить систему и проверить, все ли после этого работает, выполнив

cat / sys / kernel / debug / dri / 64 / radeon_pm_info

Примечание: @ luca992 указал, что файл radeon_pm_info может находиться в другом каталоге (например, в / sys / kernel / debug / dri / 1 / вместо dri / 64 /). Если вы абсолютно уверены, что выполнили все шаги правильно, вы можете проверить, может ли это быть в вашей ситуации.

Вы должны увидеть что-то вроде этого:

uvd    vclk: 0 dclk: 0
power level 0    sclk: 22000 mclk: 25000 vddc: 900

Вы можете дополнительно настроить DPM, открыв /etc/rc.local и добавив следующую строку:

echo parameter > /sys/class/drm/card0/device/power_dpm_state

Где «параметр» может быть:

  • батарея (набор уровней производительности, предназначенных для оптимальной работы от батареи)
  • сбалансированный (набор уровней производительности, предназначенных для оптимального ежедневного использования)
  • производительность (набор уровней производительности, нацеленных на максимальную производительность графического процессора)

Источники: http://www.botchco.com/agd5f/?p=57.

Gladen
источник
1
Должен сказать, что время автономной работы моего ноутбука теперь так же хорошо, как и у проприетарных драйверов. Кроме того, производительность должна быть немного лучше, поскольку побочным эффектом является возможность повторной записи на более высокие скорости при более высоких нагрузках. Я впечатлен результатами!
Глейден
Если ты получишь command not found: glxinfo. Тогда это не установлено. Для установки сделайте sudo apt-get install mesa-utils.
меш
Какое имя пакета apt нужно установить?
Entea
«Если вы используете этот выпуск вместе с поддерживаемой видеокартой, вам не нужно ничего делать, чтобы использовать эту функцию». - За исключением того, что настройка по умолчанию «сбалансированная», поэтому вы можете переключиться на «батарею», если хотите минимизировать энергопотребление.
Отус
В 15.04 (Radeon HD 4850) /sys/class/drm/card0/device/power_methodговорит profileи не примет, dynamicесли только не включен в командной строке ядра.
Сэм Брайтман
6

Хорошо, я собираюсь расстаться с предположением, что у вас уже есть ядро ​​3.11-GIT и у вас карта ATI r6xx-SI или новее. С этого момента, вам просто нужно добавитьradeom.dpm=1 в качестве параметра модуля ядра и DPM должен быть активирован.

Это может быть либо в параметре GRUB, в /etc/default/grubфайле записи

GRUB_CMDLINE_LINUX_DEFAULT="quiet radeon.dpm=1"
sudo update-grub

Или в .confфайле в вашем /etc/modprobeкаталоге:

sudo su -
touch /etc/modprobe.d/radeon-dpm.conf
echo options radeon dpm=1 > /etc/modprobe.d/radeon-dpm.conf 
cat /etc/modprobe.d/radeon-dpm.conf 
# will output "options radeon dpm=1"

Цитата из источников:

Драйвер AMD Radeon наконец-то имеет динамическую поддержку управления питанием! Для графических процессоров Radeon тактовая частота ядра и тактовая частота памяти будут динамически настраиваться (вместе с напряжениями) в зависимости от нагрузки, это работает для конфигураций с несколькими мониторами, и оно практически соответствует паритету функций, предоставляемых PowerPlay и функциям драйвера AMD Catalyst. Это большой выигрыш для экономии энергии / батареи при использовании драйвера Radeon Linux с открытым исходным кодом, а также повышение производительности для новых графических процессоров с тактовой частотой загрузки ниже, чем их номинальные частоты. Эта поддержка восходит к графическим процессорам Radeon HD 2000 (R600), но в настоящее время не включена по умолчанию, но требует установки radeon.dpm = 1.

Источники:

Braiam
источник
не забывайте: 'sudo update-grub' после выполнения 'GRUB_CMDLINE_LINUX_DEFAULT = "quiet radeon.dpm = 1"'
Фрэнк
чувак, ты не представляешь, как мне было полезно починить видеокарту ATI HD 4890 на Manjaro. СПАСИБО.
TheFrack
1

Если tlp отвечает вашим намерениям:

sudo add-apt-repository ppa: linrunner / tlp

sudo apt-get update

sudo apt-get установить tlp tlp-rdw

Для ThinkPad это:

sudo apt-get установить tp-smapi-dkms acpi-call-tools

Когда я не ошибаюсь - tlp не зависит напрямую от версии ядра - это зависит больше от оборудования. Между ядром 3.11 и ядром 3.10 различий нет.

В статье phoronix указано о новых изменениях в Kernel 3.11:

http://www.phoronix.com/scan.php?page=news_item&px=MTQwODk

Но в 3.11 нет никаких изменений в управлении питанием в целом.

Я думаю, что динамические изменения энергопотребления для Radeon влияют только на поддержку питания графической карты.

После установки tlp начинается с:

sudo tlp start

dschinn1001
источник
1
Спасибо за ответ! Но это не совсем то, что я имею в виду. На самом деле есть управление питанием, о чем вы можете прочитать в этой статье о Phoronix: phoronix.com/scan.php?page=news_item&px=MTM5NjE
Gladen
1

В дополнение к ответу Глэйдена, я подумал, что сделаю дополнительный коммит на проверку того, работает ли dpm, чтобы спасти других от разочарования.

В моем случае

cat /sys/kernel/debug/dri/64/radeon_pm_info

не существует, поэтому я думал, что dpm не работает.

Однако, видимо, этот файл находится в разных папках для меня.

cat /sys/kernel/debug/dri/65/radeon_pm_info

или

cat /sys/kernel/debug/dri/1/radeon_pm_info

оба существуют и содержат одну и ту же информацию.

luca992
источник
это сейчас/sys/kernel/debug/dri/0/amdgpu_pm_info
brauliobo
0

Следуя ответу @Gladen, я обнаружил, что

echo parameter > /sys/class/drm/card0/device/power_dpm_state

не работал Беглый ls -l /sys/class/drm/вывод показал, что card0 относится к встроенной карте, а card1 - к дискретной карте. Так что у меня на карточке работает следующее:

$ sudo -i

# cat /sys/class/drm/card1/device/power_dpm_state
balanced
# cat /sys/class/drm/card1/device/power_dpm_force_performance_level  
auto
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
#
# echo "battery" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
#
# echo "low" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# echo "performance" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# echo "high" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
-bash: echo: write error: Invalid argument
# # Not sure why the above happened!?
#
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 2    sclk: 75000 mclk: 80000 vddc: 1120 vddci: 0
# echo "high" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
#
# echo "battery" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# 
Danimal
источник