如何启用Radeon动态电源管理功能?


16

因此,最近发布了Linux Kernel 3.11 RC。您可能知道,这个新内核为开源Radeon驱动程序的用户提供了动态电源管理。由于我的Ubuntu 13.04默认内核存在电源管理问题,因此我想尝试一下。

在我从内核测试PPA下载并安装了最新的内核RC之后,有人知道如何启用此新功能吗?

编辑:更具体地说,我在谈论这个:http ://www.phoronix.com/scan.php?page=news_item&px =MTM5NjE


3.11尚未发布,而Ubuntu已经有了正式的镜像?那是新的。也许您是说要测试PPA内核
mikewhatever

是的,这就是我的意思!我从那里下载了最新的RC(在撰写本文时为rc2)。
Gladen

1
@mikewhatever:编辑了问题以使其更清楚。我认为这个问题根本不是题外话,我说的是在CURRENT Ubuntu版本(13.04)中安装新内核。有人可以澄清为什么关闭此问题吗?
Gladen 2013年

1
您是对的,应该重新打开它。仓促(不正确)投票表示歉意。
汤姆·布鲁斯曼

@Gladen-您是说TLP吗?这通常涉及对笔记本电脑的电源管理,并且它也在处理电源的使用。
dschinn1001 2013年

Answers:


14

更新(8-05-2014): 与预期的一样,在Ubuntu 14.04中,默认情况下,所有现代AMD GPU(HD 4000至HD 7000系列)均启用DPM。如果与支持的图形卡一起运行此版本,则无需执行任何操作即可使用此功能。

更新(2013年11月28日): 默认情况下,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内核或更高版本。您可以使用Ubuntu主线内核PPA并从该kernel.ubuntu.com目录下载最新的稳定的3.11 Linux内核映像。任何将来的内核更新也都可以,并且也可以在此目录中找到。

使用动态电源管理功能需要更新图形卡的固件。可以从该目录下载最新的Radeon微代码/固件。你需要从六月开始 * _smc.bin文件。如果不确定特定的图形卡代号,通常可以通过查看lspci -v |输出来找到它更少 ...文件需要放在/ lib / firmware / radeon中。如果您尝试在不使用固件的情况下使用Radeon DPM,则最终会导致GPU禁用加速。安装> 3.11内核之前,您还需要确保/ lib / firmware / radeon中 具有更新的固件-它会被自动地拉入已安装的映像中。

Ubuntu 13.10或更低版本,或Radeon HD 3000或更低版本的用户:

在Linux内核3.13或更高版本的GPU下,默认情况下未启用Radeon DPM支持。在这些情况下,必须将radeon.dpm = 1参数添加到Linux内核才能启用它。有关在Ubuntu上执行此操作的步骤,请参阅Ubuntu Wiki中有关不同方法的信息。

安装了新的内核,更新了固件并启用了Kernel参数后,您就可以开始使用了。现在,您必须重新启动系统,然后通过执行以下操作来检查一切是否正常

猫/ 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

您可以通过打开/etc/rc.local进一步配置DPM。并添加以下行:

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

哪里 “参数”可以是:

  • 电池(一组性能级别,旨在实现电池的最佳运行)
  • 均衡(针对每天最佳使用的一组性能水平)
  • 性能(针对最高GPU性能的一组性能级别)

资料来源: http : //www.botchco.com/agd5f/? p= 57


1
可以说..我的笔记本电脑上的电池寿命现在与专有驱动程序一样好。另外,由于在重负载下能够恢复到更高的速度,因此性能应该会更好一些。结果给我留下了深刻的印象!
Gladen 2013年

如果得到command not found: glxinfo。然后它没有安装。要安装,请执行sudo apt-get install mesa-utils
2013年

需要安装的apt软件包的名称是什么?
Entea 2014年

“如果与支持的图形卡一起运行此版本,则无需执行任何操作即可使用此功能。” –除了默认设置为“ balanced”(平衡)之外,因此,如果要最大程度地降低功耗,可能需要切换到“ battery”。
otus 2014年

在15.04(Radeon HD 4850)中/sys/class/drm/card0/device/power_methodprofiledynamic除非在内核命令行上也启用,否则不接受。
山姆·布莱曼

6

好的,我要假设您已经拥有内核3.11-GIT并拥有r6xx-SI或更新的ATI卡。从那里开始,您只需要添加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 GPU,核心时钟和内存时钟将根据负载动态调整(以及电压),这适用于多显示器配置,并且与PowerPlay和AMD Catalyst驱动程序的功能几乎具有同等的功能。当使用开源Radeon Linux驱动程序时,这是节省电源/电池的巨大胜利,同时为启动时钟速度低于其额定频率的新型GPU提供更好的性能。此支持可以追溯到Radeon HD 2000(R600)GPU,但当前默认情况下未启用,但需要设置 radeon.dpm = 1。

资料来源:


不要忘了:做完'GRUB_CMDLINE_LINUX_DEFAULT =“ quiet radeon.dpm = 1”之后的'sudo update-grub'–
Frank

老兄,您不知道这对我在Manjaro上修复ATI HD 4890显卡有多大帮助。谢谢。
TheFrack 2015年

1

如果tlp符合您的意图:

sudo add-apt-repository ppa:linrunner / tlp

sudo apt-get更新

须藤apt-get install tlp tlp-rdw

对于ThinkPad,它是:

须藤apt-get install tp-smapi-dkms acpi-call-tools

没错的时候-tlp并不直接依赖于内核版本-它更多地依赖于硬件。内核3.11和内核3.10之间没有明显差异。

在phoronix的文章中列出了有关内核3.11的新更改:

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

但是在3.11中,电源管理总体上没有变化。

我认为Radeon的动态电源管理更改只会影响图形卡电源的支持。

安装后,tlp将从以下内容开始:

sudo tlp开始


1
感谢您的回复!但这不完全是我的意思。实际上,您可以在Phoronix上的这篇文章中阅读到电源管理:phoronix.com/scan.php?
page=news_item&px

1

除了Gladen的回答外,我还想证明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

两者都存在并列出相同的信息。


现在是了/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指的是离散卡。所以以下对我来说适用于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
# 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.