我正在使用Compaq 615,风扇很大。您对此无能为力,但我正在尝试使CPU / GPU尽可能保持凉爽。这是Powertop必须说的:
如果我将它们全部更改为“良好”,则所做的更改将无法在重新启动后保留下来。
我按照建议在 “ grub”文件中添加了这一行
如何使Powertop建议的“ Tunables”永久保存?
powertop
由于内部电池的重新校准,的测量值可能不准确。资料来源:askubuntu.com/questions/161774/…–
我正在使用Compaq 615,风扇很大。您对此无能为力,但我正在尝试使CPU / GPU尽可能保持凉爽。这是Powertop必须说的:
如果我将它们全部更改为“良好”,则所做的更改将无法在重新启动后保留下来。
我按照建议在 “ grub”文件中添加了这一行
如何使Powertop建议的“ Tunables”永久保存?
powertop
由于内部电池的重新校准,的测量值可能不准确。资料来源:askubuntu.com/questions/161774/…–
Answers:
如果您将所有参数都更改为良好,则只需使用以下命令
sudo powertop --auto-tune
在systemd
用作启动管理器的系统(例如Ubuntu)上,将其安装为服务:
cat << EOF | sudo tee /etc/systemd/system/powertop.service
[Unit]
Description=PowerTOP auto tune
[Service]
Type=idle
Environment="TERM=dumb"
ExecStart=/usr/sbin/powertop --auto-tune
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable powertop.service
在未使用的系统上systemd
,或者如果您想对/etc/rc.local
文件使用旧样式,请将此行添加到末尾/etc/rc.local
:
powertop --auto-tune
exit 0
注意:如果脚本已经包含该脚本,请exit 0
确保将所有命令放在该行之前,导致退出脚本
如果您想将所有设置都设为好而只有一行,则可以先自动调整,然后再用一条额外的行禁用一项设置,例如,如果要重新启用触摸屏设备(位于USB 2-7),请添加在此之前exit 0
:
powertop --auto-tune
echo 'on' > '/sys/bus/usb/devices/2-7/power/control'
exit 0
注意:在具有的Linux上systemd
,请确保在启动时由兼容性服务执行/etc/rc.local
systemctl status rc-local.service
powertop --auto-tune && echo 'on' > '/sys/bus/usb/devices/5-2/power/control'
,以使其在启动时在每个会话中都能正常工作。
inactive (dead)
。rc.local
重新启动后,通过运行sudo chmod + x /etc/rc.local 使可执行文件获得所需的结果。
这是使更改永久生效的方法:
sudo powertop --html
这将生成一个powertop-xxxxxxxxxx-xxxxxx.html
文件。
现在,要么在浏览器中打开它,然后将echo
命令从“ ...需要调优” 复制到/etc/rc.local
。
或使用类似以下的命令提取命令:
echo "grep 'echo ' powertop-20120805-125538.html | sed 's/.*\(echo.*\);.*/\1/g'"
如果rc.local
包含exit 0
,则需要确保将命令放在此行之前。
您需要下载并编译它,因为没有人拥有最新版本
下载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
安装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
您也可以使用-j2来表示要在./make .Replace -j2中使用多少个内核,以及要用于编译过程的CPU内核数量是多少。例如我用过./make -j8
安装了Powertop后,您可以拔出交流电源并可以运行
sudo powertop
但是,大多数设置不会保存,并且重启后会丢失。但是,您可以使用PowerTOP html报告中提供的命令使它们永久化。要生成HTML报告,请运行以下命令:webupd8.org
sudo powertop --html=powertop.html
在电池上实施Powertop建议,然后返回以最大化交流电源的性能
为此,您需要编写一个脚本,该脚本在电池上运行powertop建议并最大程度地提高交流电源的性能。
将其放在/etc/pm/power.d/中并赋予执行权
sudo gedit /etc/pm/power.d/power
将以下内容复制粘贴到电源文件中
#!/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
现在您需要分配超级脚本的执行权限
sudo chmod +x /etc/pm/power.d/power
现在,当您拔下电源时,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/
checkinstall
。它还将允许您创建一个.deb软件包,以后可以卸载/升级。您可以通过sudo apt-get install
make
和sudo checkinstall
。它按预期工作。自述文件需要对此进行更正。
这不是您要的答案,但是您可以尝试在中运行laptop-mode
。去做这个:
打开一个终端并输入:
gksu gedit /etc/default/acpi-support
输入密码,然后转到底部,并在谈论笔记本电脑模式的部分中输入true而不是false,关闭文档并保存
然后输入:
gksu gedit /etc/laptop-mode/laptop-mode.conf
这个文件有点长,但是这是我编辑我的方法。我在修改的默认行之前添加了#,如下所示:
# # 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,仅修改我修改的行。您可以在此处查看一些选项,并根据需要进行切换。当您关闭并保存时。
完成此操作后,您将要输入:
gksu gedit
现在,在文本编辑器中,单击“打开”,然后进入/etc/laptop-mode/conf.d/文件夹,其中包含各种文件,您可能对USB自动挂起,hda音频,iwl intel无线,intel sata和sched mc省电感兴趣。逐个打开这些文件并阅读,它们以完美的标准英语编写,并且很好地解释了所有内容。您会知道该怎么做,请记住,大多数情况下0代表关闭,1代表打开。
完成后,关闭并保存每个文件。
现在重新启动并欣赏笔记本电脑模式,然后:
sudo powertop
并检查功耗,如果您正确完成了所有操作,那么powertop就不会做出任何其他建议,因为您已经调整了所有要调整的内容(或多或少)。
资料来源:http : //ubuntuforums.org/showthread.php?t=1157408&p=7271995#post7271995(Axx83撰写)
使用udev规则永久节能可直接在源头配置设置,而无需创建脚本或依赖可能未安装的软件包。因此,一旦udev
您的设置添加了硬件,就会立即应用。
正确的udev
规则会使设置在硬件不存在时不适用,从而使配置更易于移植。您将进一步了解Linux内核的内部工作原理:-)。通过这种方式进行的配置在不依靠电池供电时也同样适用。
可调参数的示例Enable SATA link power Managmenet for host0
。建议是:
# echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy'`
这已经使您知道硬件在哪里:/ 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"
最好不要触摸/lib/udev/rules.d/中的系统udev规则,并在/etc/udev/rules.d/中大约60级创建自己的udev规则文件。例如,使用nano编辑器:
$ nano /etc/udev/rules.d/60-power.rules
其他一些示例编写如下规则:
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}="min_power"
我会说不要,仅在链接电源管理策略设置为max_performance时才应用它,从而使您的规则更加完善。看一下小的区别(寻找双方程符号):
KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}=="max_performance", ATTR{link_power_management_policy}="min_power"
测试您的规则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
我找不到应用规则的方法,因此在这种情况下,我重新启动以应用了新创建的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
保存单元文件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"
#...
powertop
位于中/usr/sbin
,不在中/usr/bin
。
我通过创建破折号脚本解决了这个问题/root/power_save.sh
:
#!/bin/dash
find /sys/devices/pci* -path "*power/control" -exec bash -c "echo auto > '{}'" \;
将其设置为可执行文件:
sudo chmod u+x /root/power_save.sh
并将其添加到根crontab中sudo crontab -e
:
@reboot /root/power_save.sh
这个链接谈论的是谈论同样的问题:
https://bbs.archlinux.org/viewtopic.php?pid=860406
我自己对解决方案感兴趣,请稍后再试。告诉我您是否可以实施该解决方案。
我无法使其运行,因为系统始终告诉我拒绝运行可执行文件的权限。
但是,这似乎可行:
http://philatwarrimoo.blogspot.com/2011/06/powertop-howto-enable-device-power.html
我使用了简短的命令,并使用sudo运行它。
作为半自动解决方案,我创建了一个启动器:
脚本如下:
有什么方法可以防止询问我的密码?
每rubo77的回答,我跑powertop --auto-tune
的/etc/rc.local
,然后撤消不需要的默认变化。
但是,由于我要禁用自动电源控制的设备是一个外部USB设备,可能会以其他/sys
树形设备编号出现,因此我做了一些脚本编写工作来动态识别它:
/usr/local/sbin/powertop --auto-tune
export VENDOR=aaaa
export PRODUCT=bbbb
for d in /sys/bus/usb/devices/*; do
if [ -f $d/idVendor ] && \
[ "$(cat $d/idVendor)" == "${VENDOR}" ] && \
[ -f $d/idProduct ] && \
[ "$(cat $d/idProduct)" == "${PRODUCT}" ]; then
echo 'on' > $d/power/control
fi
done
exit 0
其中VENDOR
和PRODUCT
设置为USB供应商和产品ID(小写十六进制)。
这些可以通过
在lsusb
输出中标识设备(ID以形式出现在其中aaaa:bbbb
),或
当您切换电源设置,转到设备的当前/sys/bus/usb/devices/*
目录并从当前文件idProduct
和idVendor
文件中获取值时,观察powertop运行的命令。
我遇到了类似的问题,在阅读了该网站上的问题后,发现“ powertop”程序显然更适合开发人员。
对于用户更有用的版本是在存储库中找到的“ powertop-1.13”。它显示节电建议以及执行建议所使用的命令。
这个Red Hat Docs网站提供了进一步的说明,以使这些更改永久生效。
特别:
为了帮助您使更改永久生效,PowerTOP将显示执行该优化所运行的确切命令。
/etc/rc.local
使用首选的文本编辑器将命令添加到文件中,以使该命令 在计算机每次启动时生效。
祝好运!
sudo
用于编辑文件的方式。