因此,最近发布了Linux Kernel 3.11 RC。您可能知道,这个新内核为开源Radeon驱动程序的用户提供了动态电源管理。由于我的Ubuntu 13.04默认内核存在电源管理问题,因此我想尝试一下。
在我从内核测试PPA下载并安装了最新的内核RC之后,有人知道如何启用此新功能吗?
编辑:更具体地说,我在谈论这个:http ://www.phoronix.com/scan.php?page=news_item&px =MTM5NjE
因此,最近发布了Linux Kernel 3.11 RC。您可能知道,这个新内核为开源Radeon驱动程序的用户提供了动态电源管理。由于我的Ubuntu 13.04默认内核存在电源管理问题,因此我想尝试一下。
在我从内核测试PPA下载并安装了最新的内核RC之后,有人知道如何启用此新功能吗?
编辑:更具体地说,我在谈论这个:http ://www.phoronix.com/scan.php?page=news_item&px =MTM5NjE
Answers:
更新(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
哪里 “参数”可以是:
资料来源: http : //www.botchco.com/agd5f/? p= 57
command not found: glxinfo
。然后它没有安装。要安装,请执行sudo apt-get install mesa-utils
。
/sys/class/drm/card0/device/power_method
说profile
,dynamic
除非在内核命令行上也启用,否则不接受。
好的,我要假设您已经拥有内核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。
资料来源:
如果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开始
除了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
跟随@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
#