如何启用Radeon动态电源管理function?
最近,Linux内核3.11的RC发布了。 您可能知道,这个新内核为开源Radeon驱动程序的用户提供动态电源管理。 由于我对Ubuntu 13.04的默认内核存在电源管理问题,我想尝试一下。
在我从内核测试PPA下载并安装了最新的内核RC后,有人知道如何启用这个新function吗?
编辑:更具体地说,我在谈论这个: http ://www.phoronix.com/scan.php?page = news_item&px = MTM5NjE
更新(8-05-2014): 正如预期的那样,在Ubuntu 14.04中默认启用所有现代AMD GPU(HD 4000到HD 7000系列)的DPM。 如果您与支持的图形卡一起运行此版本,则无需执行任何操作即可使用此function。
更新(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内核或更新版本。 您可以使用Ubuntu主线内核PPA并从此kernel.ubuntu.com目录下载最新的稳定3.11 Linux内核映像。 任何未来的内核更新都很好,然后也可以在此目录中找到。
使用动态电源管理function需要更新显卡固件。 可以从此目录下载最新的Radeon微码/固件。 您需要6月份的* _smc.bin文件。 如果您不确定您的特定显卡代号,通常可以通过查看lspci -v的输出来找到它。 less …文件需要放在/ 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了解不同的方法。
安装新内核,更新固件并启用内核参数后,您应该很高兴。 您现在必须重新启动系统,然后通过执行操作检查一切是否正常
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
您可以通过打开/etc/rc.local并添加以下行来进一步配置DPM:
echo parameter > /sys/class/drm/card0/device/power_dpm_state
“参数”可以是:
- 电池 (一组针对电池优化操作的性能水平)
- 平衡 (一组针对最佳日常使用的性能水平)
- 性能 (针对最高GPU性能的一组性能级别)
资料来源: http : //www.botchco.com/agd5f/? p = 57
好吧,我将从你已经拥有内核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
或者在/etc/modprobe
目录下的.conf
文件中:
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提供的function和AMD Catalyst驱动程序中的function相近。 在使用开源Radeon Linux驱动程序时,这是节省电源/电池的一大胜利,同时为启动时钟速度低于其额定频率的新GPU提供更好的性能。 此支持可追溯到Radeon HD 2000(R600)GPU,但默认情况下当前未启用,但需要设置radeon.dpm = 1。
资料来源:
如果tlp符合您的意图:
sudo add-apt-repository ppa:linrunner / tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw
对于thinkpads,它是:
sudo apt-get install tp-smapi-dkms acpi-call-tools
什么时候没有错 – tlp不是立即依赖于内核版本 – 它更多地依赖于硬件。 在内核3.11和内核3.10之间没有明显的差异。
在文章中列出了关于内核3.11中的新变化的phoronix:
http://www.phoronix.com/scan.php?page=news_item&px=MTQwODk
但在3.11中,电源管理一般没有变化。
我认为Radeon的动态电源管理变化只会影响显卡供电的支持。
安装完成后,tlp将以:
sudo tlp start
除了Gladen的回答之外我还以为我会另外提交一份关于validationdpm的工作是为了拯救他人一些挫败感。
在我的情况下
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
两者都存在并列出相同的信息。
根据@Gladen的回答,我发现了
echo parameter > /sys/class/drm/card0/device/power_dpm_state
没用。 快速ls -l /sys/class/drm/
告诉我,card0指的是集成卡和卡1到离散卡。 所以以下内容适用于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 #