我在 Compaq 615 上,它的风扇声音很大。您对此无能为力,但我正在努力使 CPU/GPU 尽可能保持凉爽。Powertop 是这么说的:
如果我将它们全部更改为“良好”,则这些更改将无法重新启动。
我按照此处的建议将该行添加到“grub”文件中
如何使 Powertop 建议的“可调参数”永久生效?
rub*_*o77 74
如果您无论如何都将它们全部更改为良好,则可以简单地使用命令
sudo powertop --auto-tune
Run Code Online (Sandbox Code Playgroud)
在systemd
用作启动管理器的系统(如 Ubuntu)上将其安装为服务:
cat << EOF | sudo tee /etc/systemd/system/powertop.service
[Unit]
Description=PowerTOP auto tune
[Service]
Type=oneshot
Environment="TERM=dumb"
RemainAfterExit=true
ExecStart=/usr/sbin/powertop --auto-tune
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable powertop.service
Run Code Online (Sandbox Code Playgroud)
在不使用 的系统上systemd
,或者如果您想对/etc/rc.local
文件使用旧样式,请在末尾添加以下行/etc/rc.local
:
powertop --auto-tune
exit 0
Run Code Online (Sandbox Code Playgroud)
注意:如果脚本已经包含,请exit 0
确保将所有命令放在该行之前,导致退出脚本
如果您想将所有设置都设置为良好但只有一行,您可以首先自动调整,然后使用额外的行禁用一项设置,例如,如果您想重新启用触摸屏设备(在 USB 2-7),请添加这之前exit 0
:
powertop --auto-tune
echo 'on' > '/sys/bus/usb/devices/2-7/power/control'
exit 0
Run Code Online (Sandbox Code Playgroud)
注意:在带有 的 Linux 上systemd
,确保兼容性服务在启动时执行 /etc/rc.local
systemctl status rc-local.service
Run Code Online (Sandbox Code Playgroud)
小智 24
以下是使更改永久化的方法:
sudo powertop --html
Run Code Online (Sandbox Code Playgroud)
这将生成一个powertop-xxxxxxxxxx-xxxxxx.html
文件。
现在要么在浏览器中打开它,然后将echo
命令从“... in need of Tuning”复制到/etc/rc.local
.
或者使用以下内容提取命令:
echo "grep 'echo ' powertop-20120805-125538.html | sed 's/.*\(echo.*\);.*/\1/g'"
Run Code Online (Sandbox Code Playgroud)
如果rc.local
包含exit 0
您需要确保将命令放在此行之前。
Qas*_*sim 15
您需要下载并编译它,因为没有人有最新版本
下载 powertop https://01.org/powertop/downloads/2013/powertop-v2.3
powertop-2.3.tar.gz < < < 点击下载我
编译前需要安装依赖
安装依赖项(只需复制粘贴以下命令)
sudo apt-get install libtool autoconf libnl-dev ncurses-dev pciutils-dev build-essential -y
Run Code Online (Sandbox Code Playgroud)
安装 Powertop
要构建和安装 PowerTOP,请键入以下命令,
cd Downloads/powertop* # assuming that you have downloaded in Downloads folder in you home directory
configure
make # use -j option if you want to see details below
make install
Run Code Online (Sandbox Code Playgroud)
您还可以使用-j2你有多少个核要使用./make .Replace -j2您要使用的编译过程无论CPU核心数量。例如我使用了./make -j8
Powertop已安装,您可以拔掉交流电源并可以运行
sudo powertop
Run Code Online (Sandbox Code Playgroud)
但是,大多数设置不会保存,并且在重新启动后会丢失。但是,您可以使用 PowerTOP html 报告中提供的命令使它们永久化。要生成 HTML 报告,请运行以下命令:webupd8.org
sudo powertop --html=powertop.html
Run Code Online (Sandbox Code Playgroud)
对电池实施 Powertop 建议并返回以最大限度地提高交流电源的性能
为此,您需要制作一个脚本,在电池上运行 powertop 建议并最大限度地提高交流电源的性能
把它放在/etc/pm/power.d/并赋予执行权限
sudo gedit /etc/pm/power.d/power
Run Code Online (Sandbox Code Playgroud)
将以下内容复制粘贴到电源文件中
#!/bin/sh
# Shell script to reduce energy consumption when running battery. Place
# it in /etc/pm/power.d/ and give execution rights.
if on_ac_power; then
# Start AC powered settings --------------------------------------------#
# Disable laptop mode
echo 0 > /proc/sys/vm/laptop_mode
#NMI watchdog should be turned on
for foo in /proc/sys/kernel/nmi_watchdog;
do echo 1 > $foo;
done
# Set SATA channel: max performance
for foo in /sys/class/scsi_host/host*/link_power_management_policy;
do echo max_performance > $foo;
done
# CPU Governor: Performance
for foo in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
do echo performance > $foo;
done
# Disable USB autosuspend
for foo in /sys/bus/usb/devices/*/power/level;
do echo on > $foo;
done
# Disable PCI autosuspend
for foo in /sys/bus/pci/devices/*/power/control;
do echo on > $foo;
done
# Disabile audio_card power saving
echo 0 > /sys/module/snd_hda_intel/parameters/power_save_controller
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
# End AC powered settings ----------------------------------------------#
else
# Start battery powered settings ---------------------------------------#
# Enable Laptop-Mode disk writing
echo 5 > /proc/sys/vm/laptop_mode
#NMI watchdog should be turned on
for foo in /proc/sys/kernel/nmi_watchdog;
do echo 0 > $foo;
done
# Set SATA channel to power saving
for foo in /sys/class/scsi_host/host*/link_power_management_policy;
do echo min_power > $foo;
done
# Select Ondemand CPU Governor
for foo in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
do echo ondemand > $foo;
done
# Activate USB autosuspend
for foo in /sys/bus/usb/devices/*/power/level;
do echo auto > $foo;
done
# Activate PCI autosuspend
for foo in /sys/bus/pci/devices/*/power/control;
do echo auto > $foo;
done
# Activate audio card power saving
# (sounds shorter than 5 seconds will not be played)
echo 5 > /sys/module/snd_hda_intel/parameters/power_save
echo 1 > /sys/module/snd_hda_intel/parameters/power_save_controller
# End battery powered settings -----------------------------------------#
fi
Run Code Online (Sandbox Code Playgroud)
现在您需要分配电源脚本的执行权限
sudo chmod +x /etc/pm/power.d/power
Run Code Online (Sandbox Code Playgroud)
现在,当您拔下电源时,Powertop 建议将接管并最大限度地延长电池寿命,而您插入交流电源时,您将拥有最大性能。
有用的链接
http://ubuntuforums.org/showthread.php?t=1855126&page=3 http://www.webupd8.org/2012/08/install-powertop-21-in-ubuntu-1204.html
对于 -j 选项http://dnscrypt.org/
这不是您要的答案,但您可以尝试运行laptop-mode
. 去做这个:
打开终端并输入:
Run Code Online (Sandbox Code Playgroud)gksu gedit /etc/default/acpi-support
输入密码,然后转到底部,在它谈论笔记本电脑模式的部分写真而不是假,当然关闭文档并保存
然后输入:
Run Code Online (Sandbox Code Playgroud)gksu gedit /etc/laptop-mode/laptop-mode.conf
这个文件有点长,但这是我编辑我的。我在我修改的那些行的默认行之前添加了 # ,如下所示:
Run Code Online (Sandbox Code Playgroud)# # Should laptop mode tools add the "noatime" option to the mount options when # laptop mode is enabled? # #CONTROL_NOATIME=0 CONTROL_NOATIME=1
默认是 0,我把它变成 1,只修改我修改的行。此处有几个选项,您需要查看并根据需要进行切换。当你关闭并保存时。
完成此操作后,您需要键入:
Run Code Online (Sandbox Code Playgroud)gksu gedit
现在在文本编辑器中单击打开并进入 /etc/laptop-mode/conf.d/ 文件夹,有各种文件,您可能对 usb autosuspend、hda audio、iwl intel wireless、intel sata 和 sched mc power Saving 感兴趣。一个一个打开这些文件并阅读它们,它们是用完美的标准英语编写的,并且很好地解释了所有内容。您会知道该怎么做,请记住,大多数情况下 0 代表关闭,1 代表开启。
完成后关闭并保存每个文件。
现在重新启动并欣赏笔记本电脑模式的运行,然后:
Run Code Online (Sandbox Code Playgroud)sudo powertop
并检查功耗,如果您已正确完成所有操作,powertop 将不会提出任何额外建议,因为您已经调整了所有要调整的内容(或多或少)。
来源:http : //ubuntuforums.org/showthread.php?t=1157408&p=7271995#post7271995 (by Axx83 )
为了永久节能,直接在源配置设置,而不是创建脚本或依赖可能未安装的包。因此,只要您的设置添加了硬件,就会应用。udev
一个正确的 udev
规则使设置在硬件不存在时不适用,从而使配置更具可移植性。并且您将了解有关 Linux 内核内部工作原理的更多信息:-)。以这种方式进行的配置,在不使用电池运行时也适用。
可调参数的示例Enable SATA link power Managmenet for host0
。建议是:
# echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy'`
Run Code Online (Sandbox Code Playgroud)
这已经让您知道硬件在哪里:在 /sys/class/scsi_host 中。您可以通过以下方式验证:
# udevadm info -a -p /sys/class/scsi_host/host?
…
looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0':
KERNEL=="host0"
SUBSYSTEM=="scsi_host"
…
ATTR{eh_deadline}=="0"
ATTR{link_power_management_policy}=="max_performance"
ATTR{host_busy}=="0"
Run Code Online (Sandbox Code Playgroud)
最好不要触及 /lib/udev/rules.d/ 中的系统 udev 规则,并在 /etc/udev/rules.d/ 中大致在级别 60 处创建自己的 udev 规则文件。例如使用 nano 编辑器:
$ nano /etc/udev/rules.d/60-power.rules
Run Code Online (Sandbox Code Playgroud)
其他一些示例编写规则,例如:
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}="min_power"
Run Code Online (Sandbox Code Playgroud)
我会说不要通过仅在链接电源管理策略设置为 max_performance 时应用它来使您的规则更好。看看细微的差别(寻找双等式符号):
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}=="max_performance", ATTR{link_power_management_policy}="min_power"
Run Code Online (Sandbox Code Playgroud)
测试你的规则udevadm test /devices/…
:
# udevadm test /devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy
calling: test
version 204
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.
=== trie on-disk ===
tool version: 204
file size: 5660180 bytes
header size 80 bytes
strings 1265196 bytes
nodes 4394904 bytes
load module index
read rules file: /lib/udev/rules.d/40-crda.rules
read rules file: /lib/udev/rules.d/40-gnupg.rules
read rules file: /lib/udev/rules.d/40-hyperv-hotadd.rules
read rules file: /lib/udev/rules.d/42-usb-hid-pm.rules
read rules file: /lib/udev/rules.d/50-firmware.rules
read rules file: /lib/udev/rules.d/50-udev-default.rules
read rules file: /lib/udev/rules.d/55-dm.rules
read rules file: /lib/udev/rules.d/60-cdrom_id.rules
read rules file: /lib/udev/rules.d/60-keyboard.rules
read rules file: /lib/udev/rules.d/60-persistent-alsa.rules
read rules file: /lib/udev/rules.d/60-persistent-input.rules
read rules file: /lib/udev/rules.d/60-persistent-serial.rules
read rules file: /lib/udev/rules.d/60-persistent-storage-dm.rules
read rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
read rules file: /lib/udev/rules.d/60-persistent-storage.rules
read rules file: /lib/udev/rules.d/60-persistent-v4l.rules
read rules file: /etc/udev/rules.d/60-power.rules
read rules file: /lib/udev/rules.d/61-accelerometer.rules
read rules file: /lib/udev/rules.d/64-btrfs.rules
read rules file: /etc/udev/rules.d/70-persistent-net.rules
read rules file: /lib/udev/rules.d/70-power-switch.rules
read rules file: /lib/udev/rules.d/70-uaccess.rules
read rules file: /lib/udev/rules.d/71-biosdevname.rules
read rules file: /lib/udev/rules.d/71-seat.rules
read rules file: /lib/udev/rules.d/73-idrac.rules
read rules file: /lib/udev/rules.d/73-seat-late.rules
read rules file: /lib/udev/rules.d/75-net-description.rules
read rules file: /lib/udev/rules.d/75-persistent-net-generator.rules
read rules file: /lib/udev/rules.d/75-probe_mtd.rules
read rules file: /lib/udev/rules.d/75-tty-description.rules
read rules file: /lib/udev/rules.d/78-graphics-card.rules
read rules file: /lib/udev/rules.d/78-sound-card.rules
read rules file: /lib/udev/rules.d/80-drivers.rules
read rules file: /lib/udev/rules.d/85-hdparm.rules
read rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
read rules file: /lib/udev/rules.d/85-regulatory.rules
read rules file: /lib/udev/rules.d/95-udev-late.rules
rules contain 24576 bytes tokens (2048 * 12 bytes), 11335 bytes strings
1814 strings (22027 bytes), 1179 de-duplicated (11328 bytes), 636 trie nodes used
ATTR '/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy' writing 'min_power' /etc/udev/rules.d/60-power.rules:1
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0
SUBSYSTEM=scsi_host
USEC_INITIALIZED=1203444595
unload module index
Run Code Online (Sandbox Code Playgroud)
我找不到应用规则的方法,因此在这种情况下,我重新启动以应用新创建的 udev 规则。
systemd让一切变得简单:
# /etc/systemd/system/powertop-autotune.service
[Unit]
Description=Auto-tune power savings (oneshot)
[Service]
Type=oneshot
ExecStart=/usr/bin/powertop --auto-tune
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
保存单元文件kill -HUP 1
,systemctl enable --now powertop-autotune.service
,完成了!
PS如果您需要任何例外--auto-tune
,只需添加更多ExecStart
行来设置您自己的设置。
#...
ExecStart=/usr/bin/powertop --auto-tune
ExecStart=/bin/sh -c "echo on > /sys/bus/usb/devices/2-7/power/control"
#...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
105936 次 |
最近记录: |