Энергосбережение на ноутбуке

Предлагаю обсудить какие приёмы стоит использовать при установке Gentoo на ноутбуки.

Своё текущее решение описал в руководстве https://nikoli.msk.ru/ru/node/417

Итересно,

Итересно, спасибо!

На своем Dell Inspiron 1501 пока ограничился лишь cpufreq с conservative гувернером, после чего время работы с максимальной яркостью матрицы увеличилось до 3...3.5 часов, при минимальной около 4-х.

З.Ы. Кстати при закрытии крышки матрица у меня гасится автоматом, без малейшей настройки с моей стороны.

Quote: З.Ы. Кстати

Цитата:
З.Ы. Кстати при закрытии крышки матрица у меня гасится автоматом, без малейшей настройки с моей стороны.

Она у всех ноутов гасится, аппаратно реализованно.

С регулировкой частоты процессора в зависимости от уймы параметром справляется замечательно - cpufreqd (причём есть профили настройки).

По поводу swap - когда у меня появился первый ноут с гигом памяти, я перестал выделять отдельный свап раздел. В последнем, при двух гигах ОЗУ свап раздел есть на всякий случай, включаю руками при крайней необходимости только (за полгода последние ни разу не понадобился).

За яркостью следить надо внимательнее, это главнейший источник потребления энергии. При встроенных видюхах - klaptopdaemon очень хорошо справляется с этой задачей (там поддрежка профилей яркости есть).

На ноутах ещё неплохо помагает - выключать wifi & bloetooth если не используются.

Также можно выключить питание на сидюк (через /sys/class/... ).

Из аппаратных фишек экономящих питание - поставить хард с одним блином (почти все объёмом до 120 гигов).

И конечно же индикатор загруженности проца на экране держать, чтобы видеть если что-то злобное проц хавать начинает.

Ноутбук Toshiba A110-293 матрица гасится программно

developer написал(а):
Цитата:
З.Ы. Кстати при закрытии крышки матрица у меня гасится автоматом, без малейшей настройки с моей стороны.

Она у всех ноутов гасится, аппаратно реализованно.

Ноутбук Toshiba A110-293 матрица гасится программно, IMHO, т. к. если не настроить что-либо вроде acpid или powersave ничего не происходит :(

Цитата:
По поводу swap - когда у меня появился первый ноут с гигом памяти, я перестал выделять отдельный свап раздел. В последнем, при двух гигах ОЗУ свап раздел есть на всякий случай, включаю руками при крайней необходимости только (за полгода последние ни разу не понадобился).

Я понимаю, можно делать suspend-to-disk в отдельный файл, но в чём тогда смысл отказываться от swap, конечно, если не отказаться от suspend-to-disk как такового.

Quote: Ноутбук

Цитата:
Ноутбук Toshiba A110-293 матрица гасится программно

хм.. а как ты проверял? просто она гасится иногда буквально на последнем миллиметре до полностью закрытой крышки.. и создаётся впечатление, что не выключается.

Цитата:
Я понимаю, можно делать suspend-to-disk в отдельный файл, но в чём тогда смысл отказываться от swap, конечно, если не отказаться от suspend-to-disk как такового.

Кому как, по вкусу конечно, меня полностью suspend-to-ram устраивает. Ноут несколько дней в таком состоянии находиться может, а мне больше от одной точки подзарядки до другой времени не нужно.

Извините, погорячился :)

developer написал(а):
Цитата:
Ноутбук Toshiba A110-293 матрица гасится программно

хм.. а как ты проверял? просто она гасится иногда буквально на последнем миллиметре до полностью закрытой крышки.. и создаётся впечатление, что не выключается.

Да, видимо ошибся, сейчас проверил, опуская крышку по миллиметру и выключив acpid, точно гаснет :)

А на НР 550 - ваще крышка не

А на НР 550 - ваще крышка не гаснет ((( так что не всегда это аппаратно реализовано

Подсветка

Подсветка железно гасится не у всех. Проверял.

Для беспроводной связи настроил в БИОСе железную включалку сбоку ноута - весьма удобно.

Не вижу смысла использовать дополнительные службы и проги, если ядро умеет само менять частоту ЦПУ в зависимости от нагрузки.

Отключить подкачку может быть весьма полезно, но в моём случае это не позволяют сделать tmpfs разделы на 1,5 гига.

После

После прочтения вашего руководства возникли некоторые вопросы:
- у меня нет /sys/devices/system/cpu/sched_mc_power_savings файла, возможно из-за того, что у меня однопроцессорная и одноядерная система? Так я понял из данного здесь описания.
- с чем связано отсутствие файлов /sys/class/scsi_host/host*/link_power_management_policy не знаю, хотя, судя по написанному здесь они должны присутствовать.
- чем вызван выбор опции -B 128 для hdparm при работе от батареи.
В man hdparm сказано:
Set Advanced Power Management feature, if the drive supports it. A low value means aggressive
power management and a high value means better performance. Possible settings range from values 1
through 127 (which permit spin-down), and values 128 through 254 (which do not permit spin-down).
The highest degree of power management is attained with a setting of 1, and the highest I/O per-
formance with a setting of 254. A value of 255 tells hdparm to disable Advanced Power Management
altogether on the drive (not all drives support disabling it, but most do).

Сделано ли это сознательно, если да, объясните, пожалуйста, с какой целью?

/sys/devices/system/cpu/sched

/sys/devices/system/cpu/sched_mc_power_savings эта настройка есть только у многоядерных ЦПУ

/sys/class/scsi_host/host*/link_power_management_policy что-то в железе не поддерживает такое энергосбережение. какие винты, чипсет, pata, sata?

-B 128 использую осознанно. Не люблю звук просыпающегося винта. Если он не раздражает, можно ставить хоть -B 1 . Возможно нужно ещё подкрутить настройки и сделать обращения к диску ещё реже.

Жёсткий

Цитата:
/sys/class/scsi_host/host*/link_power_management_policy что-то в железе не поддерживает такое энергосбережение. какие винты, чипсет, pata, sata?

Жёсткий диск

#hdparm -i /dev/sda
/dev/sda:

Model=HTS541080G9SA00 , FwRev=MB4OC60R, SerialNo= MPBDLAXNG34Z8G
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=DualPortCache, BuffSize=7538kB, MaxMultSect=16, MultSect=?16?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=156301488
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled
Drive conforms to: ATA/ATAPI-7 T13 1532D revision 1: ATA/ATAPI-2,3,4,5,6,7


#lspci | grep IDE
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)

Не могли бы вы "на пальцах"

Nikoli написал(а):
-B 128 использую осознанно. Не люблю звук просыпающегося винта. Если он не раздражает, можно ставить хоть -B 1 . Возможно нужно ещё подкрутить настройки и сделать обращения к диску ещё реже.

Не могли бы вы "на пальцах" объяснить значение этой опции.

Народ, а кому удавалось

Народ, а кому удавалось настроить управление яркостью экрана?
Я ставил klaptopdaemon, который якобы должен это уметь, но увы... А тут случайно загрузил Kubuntu-8.10 - так там все работает.
Какие еще пакеты могут ею управлять?

зы Nikoli, что ты имеешь в виду 'если ядро умеет само изменять частоту проца, то не нужны никакие демоны'? Хочешь сказать, реально обойтись без cpufreqd?

Яркость подсветки экрана и

Яркость подсветки экрана и возможность ей управлять сильно зависит от железа.

cpufreqd у меня в системах

cpufreqd у меня в системах нет, и мне он не нужен - всё делает ядро :)
http://www.gentoo.org/doc/en/power-management-guide.xml

относительно яркости экрана:
стоят на двух ноутбуках одинаковые системы, с одинаковыми ядрами (за искл. пары ключиков для сети), на одном powerdevil яркость меняет, на другом нет, пока в этом направлении не копал - меня текущая ярркость устраивает.

В убунте работает потому, что

В убунте работает потому, что там есть кастомный пакет acpi - скриптов, которые в зависимости от железа делают свою работу.

В генту надо руками настраивать если любимый DE сам не справился.

яркостью у меня заправляет

яркостью у меня заправляет cpufreqd. Пример:

# AC off (medium)
[Rule]
name=battery
ac=off
battery_interval=30-100
exec_post=echo level 8 > /proc/acpi/ibm/brightness
profile=Conservative
[/Rule]

Ну или вместо /proc/acpi/ibm/brightness поставить чтото из /sys/class/backlight/...

.

Nikoli написал(а):
cpufreqd у меня в системах нет, и мне он не нужен - всё делает ядро :)
http://www.gentoo.org/doc/en/power-management-guide.xml

т.е. достаточно в ядре поставить Default CPUFreq governor (ondemand), и все?

soullibra написал(а):
яркостью у меня заправляет cpufreqd. Пример:

# AC off (medium)
[Rule]
name=battery
ac=off
battery_interval=30-100
exec_post=echo level 8 > /proc/acpi/ibm/brightness
profile=Conservative
[/Rule]

Ну или вместо /proc/acpi/ibm/brightness поставить чтото из /sys/class/backlight/...

вот-вот, у меня в /proc/acpi ничего нету, но зато есть в /sys/class

>т.е. достаточно в ядре

>т.е. достаточно в ядре поставить Default CPUFreq governor (ondemand), и все?
смотря как ты использовать собрался, я сделал так:

cat /boot/config|grep gov -i
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y    
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set 
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y                    
CONFIG_CPU_FREQ_GOV_POWERSAVE=m                      
CONFIG_CPU_FREQ_GOV_USERSPACE=m                      
CONFIG_CPU_FREQ_GOV_ONDEMAND=m                       
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m                   
CONFIG_CPU_IDLE_GOV_LADDER=y                         
CONFIG_CPU_IDLE_GOV_MENU=y

я использую в скриптах GOV_PERFORMANCE и GOV_CONSERVATIVE, остальные включил на всякий случай.

>вот-вот, у меня в /proc/acpi ничего нету, но зато есть в /sys/class

я убедился, что это пока лучше включить:

--- ACPI (Advanced Configuration and Power Interface) Support
[*]   Deprecated /proc/acpi files
[*]   Deprecated power /proc/acpi directories
[*]   Future power /sys interface
[*]   Deprecated /proc/acpi/event support  

sspphheerraa

sspphheerraa написал(а):
Народ, а кому удавалось настроить управление яркостью экрана?

Для ноутбуков ACER надо включить CONFIG_ACER_WMI в ядре.
У меня после этого заработало управление яркостью через kpowersave.

А я совершенно осознанно

А я совершенно осознанно использую -B 254 даже на батарее. Причина очень простая, при любом другом значении винчестер на eee pc будет парковать головки через 5 секунд без обращений. При таком раскладе ресурс винта выработаетс дней за 200.

у меня Acer

у меня Acer 4220.
Проц -- Cel 540 -- смену частоты поддерживает:

$ cat /proc/acpi/processor/CPU0/throttling
state count: 8
active state: T0
state available: T0 to T7
states:
*T0: 100%
T1: 88%
T2: 75%
T3: 63%
T4: 50%
T5: 38%
T6: 25%
T7: 13%

но...

modprobe acpi
FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.25-gentoo-r5/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko): No such device

А ещё при суспенд2рам он при включении что-то пытается сделать и уходит в ребут :( а суспенд2диск удачно проходит, если делать "s2disk". ПРи использовании хибернейт или других средств ноут просто подвисает при загрузке :((((

На ноуте Acer c Cel M

На ноуте Acer c Cel M 370 такая же беда с acpi_cpufreq. Пробовал решить, но не получилось (правда это не являлось особо важным, т. к. в основном работают на нём от сети). Буду благодарен за помощь.

Пробовал hibernate?

Хорошая статья -

Хорошая статья - http://www.gentoo.org/doc/en/power-management-guide.xml. Я ещё поставил sys-power/powertop, понаблюдал за сообщениями и сделал инитскрипт, который запускается на runlevel'е battery:

#!/sbin/runscript
# Distributed under the terms of the GNU General Public License v2

depend() {
	use hald
}

start() {
	ebegin "Entering powersave mode"

	for I in /sys/class/scsi_host/*/link_power_management_policy; do
		echo min_power > ${I};
	done

	hal-disable-polling --device /dev/sr0 > /dev/null

	hciconfig hci0 down > /dev/null

	iwconfig wlan0 power on > /dev/null

	echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

	eend 0
}

stop() {
	ebegin "Leaving powersave mode"

	for I in /sys/class/scsi_host/*/link_power_management_policy; do
		echo max_performance > ${I};
	done

	hal-disable-polling --enable-polling --device /dev/sr0 > /dev/null

	hciconfig hci0 up > /dev/null

	iwconfig wlan0 power off > /dev/null
	
	echo 0 > /sys/devices/system/cpu/sched_mc_power_savings

	eend 0
}

Настройки энергосбережения диска у меня 128 на батарее, 254 с электросетью - за полгода Load_Cycle_Count где-то 20000, так что нормально.

Про выключение питания DVD-дисководу хорошая идея, надо будет посмотреть.

.

Nikoli написал(а):
>смотря как ты использовать собрался, я сделал так:

Я хочу, чтоб производительность изменялась в зависимости от нагрузки. Просто если это реально организовано на уровне ядра, зачем тогда разных демонов понаделали?

a_v написал(а):
Хорошая статья - http://www.gentoo.org/doc/en/power-management-guide.xml. Я ещё поставил sys-power/powertop, понаблюдал за сообщениями и сделал инитскрипт, который запускается на runlevel'е battery:

можешь его прокомментировать для, лучшего понимания?

/sys/class/scsi_host/*/link_p

/sys/class/scsi_host/*/link_power_management_policy отвечает за потребление энергии SATA-контроллером;
hal-disable-polling выключает периодическую проверку, не вставлен ли CD-ROM, что позволяет дисководу приостановить работу;
hciconfig отключает связь по bluetooth (только передачу данных, сам модуль остаётся включённым - хз как выключить);
iwconfig вводит WiFi-карту в режим энергосбережения (в котором, кстати, пинги ужасны);
/sys/devices/system/cpu/sched_mc_power_savings - сам не знаю, что делает, powertop'у виднее ;]

Ну а при остановке инитскрипта всё это из энергосбережения переводится обратно в режим производительности.

...

Поясните кто-нибудь пожалуйста - зачем нужен еще один runlevel? ведь можно повесить действия на acpi события? Ведь управлять (добавлять/убирать) скриптами сложнее, в том плане, что проще допустить ошибку. Или я что-то не понял?

А по-моему - легче. [10:12]

А по-моему - легче.

[10:12] andrey@sora ~ > /sbin/rc-update show
               acpid | battery      default                  
           alsasound |         boot                          
        avahi-daemon |              default                  
           bluetooth |              default                  
            bootmisc |         boot                          
             checkfs |         boot                          
           checkroot |         boot                          
               clock |         boot                          
         consolefont |         boot                          
               cupsd |              default                  
                dbus | battery      default                  
              dhcdbd | battery      default                  
                 gpm |              default                  
                hald | battery      default                  
             hddtemp | battery      default                  
            hostname |         boot                          
             keymaps |         boot                          
         laptop_mode | battery                               
               local | battery      default nonetwork        
          localmount |         boot                          
             modules |         boot                          
              net.lo |         boot                          
      NetworkManager | battery      default                  
           powersave | battery                               
           rmnologin |         boot                          
           syslog-ng |              default                  
             urandom |         boot                          
          vixie-cron |              default                  
                 xdm | battery      default

- Отсюда явственно следует, что работает на батарее, а что нет. А если бы ты всё это в скрипт запихал, было бы легче ориентироваться и что-то менять?

Усыпить диск

Выполняю:

echo 5     > /proc/sys/vm/laptop_mode                # default(0)
echo 60000 > /proc/sys/vm/dirty_writeback_centisecs  # default(499)
echo 60000 > /proc/sys/vm/dirty_expire_centisecs     # default(2999)
echo 40    > /proc/sys/vm/dirty_ratio                # default(10)
echo 1     > /proc/sys/vm/dirty_background_ratio     # default(5)

smartctl -s off /dev/sda
hdparm -B 128 -S 2 /dev/sda

Потом:
hdparm -y /dev/sda
диск тут же засыпает. Но, через секунд 10-20 просыпается.
Как же узнать - кто его будит?
Причем, самостоятельно диск тоже не засыпает.

И еще: как узнать что диск спит? Может какой файлик есть в /proc/... по которому можно увидеть состояние? А то он очень тихий и я слышу только когда он просыпается и раскручивается, а отследить когда он засыпает не могу.

Парковка и засыпание

Разборки с парковкой:
- По умолчанию, APM у диска включен, вот только не известно в каком level'е (вероятно 254). При этом диск постоянно паркует головку (о чем, некогда, была шумиха с Ubuntu).
- Лечится это, либо отключением APM у диска (hdparm -B255); либо локализацией постоянно читающих с диска процессов и усмирения их. Второй вариант предпочтительней, так как парковка на ноутбуке вещь нужная.
- После длительного гугления был найден способ выявить злостных нарушителей спокойствия диска:

$ /etc/init.d/syslog-ng stop
$ echo 1 > /proc/sys/vm/block_dump
и смотрим кто что пишет/читает периодически запуская:
$ dmesg -c
или, когда услышим как процессы начнут скрипеть по диску - в этот момент их и накрывать dmesg'ом

- В итоге был найден главный злодей: "nepomuk*" и лезет он все время в /tmp/... А так как этот сервис мне нужен, то, как и рекомендуют, был сделан tmpfs в памяти - что и решило проблему.

Вопросы такие:
1.
"-B255" отключает APM; "-B1" - вместо парковки сразу вырубает диск. Но мне не понятен алгоритм других диапазонов: в чем разница между 128 и 254, так как их поведение идентичное.

2.
У кого-нибудь есть готовые методы для грамотного разруливания syslog-ng? Ну и cron'а тоже? Отключать их при аккумуляторной работе не хотелось бы.

3.
Раз в несколько минут plasma лезет в /var/tmp/kdecache-ЮЗЕРНЕЙМ/ - как бы разрулить эту ситуацию?

tmpfs! почти всегда общее

tmpfs! почти всегда общее решение + обязательный mount -o noatime
Ноут, есть большие шансы что есть кардридер, вставляешь флешку и размещаешь критические файлы на ней.

.

inspirra написал(а):
был сделан tmpfs в памяти - что и решило проблему.

напомните, пожалуйста, как это выглядит применительно к fstab

Примерно так tmpfs /tmp

Примерно так
tmpfs /tmp tmpfs size=1000m 0 0

ASUS A3500L

Попробовал я laptop-mode-tools... Что-то он мне не понравился, поэтому решил с ним не ковыряться, а написать малюсенький скрипт для отключения всего ненужного при работе от батареи и включении обратно при сети. Но почему-то получился велосипед: (-;
http://pastebin.mozilla-russia.org/97533
- Включает/отключает эн-го сбережение диска (hddparm);
- Переводит звук в спящий режим с выключением каналов записи;
- Отключает опрос CD/DVD;
- Переводит WiFi в эн-го сберегающий режим;
- Если на usb-1 нет девайсов - выгружает модуль;
- Переопределяет параметры sysctl;
- Выгружает прожорливые модули из списка;
- Останавливает rc-скрипты по списку;
- Делает симлинк /var/tmp/kdecache-${_user}/kpc" в tmpfs (иначе plasma будит диск).

- В режиме сети - все восстанавливается как было.

С режимами процессора и подсветкой ламп хорошо справляется KDE'шная фича.

На трехсотой строке я понял, что увяз, но отступать было жалко, поэтому допилил его до рабочего состояния под свой ноутбук и на этом успокоился.
Если кто найдет ляпы, баги, или захочет допилить - будет здорово. Толком не отлаживал, но вроде работает. Под конец мне это изрядно надоело, поэтому в некоторых местах не очень красиво.

Разбирался с энергосберегающей кухней руководствуясь этим:
http://www.thinkwiki.org/wiki/How_to_reduce_power_consumption
http://www.gentoo.org/doc/en/power-management-guide.xml

Ну и кое что почерпнул отсюда:
http://www.lesswatts.org/projects/devices-power-management/usb.php
http://articles.org.ru/cn/showdetail.php?cid=7424

про велосипед верно

про велосипед верно подмечено. Вопрос: чем этот скрипт запускается?

- - -

Как нравится, так и запускайте... Там три аргумента (auto|ac|bat).
- auto - сам определит режим
- ac и bat - не зависит от реального состояния.
Логично запускать его через /etc/acpi..., но можно и через KDE'шное управление питанием, предварительно настроив sudo.

Можно еще пример такого

Можно еще пример такого скрипта? (старая ссылка что-то не работает)
и еще вопрос по ходу дела, в скрипте как-то используются советы программы powertop?
Мне вот он насоветовал типа:

# Increase the VM dirty writeback time from 4.99 to 15 seconds
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

# Enable SATA ALPM link power management
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy

и если да, то как оно назад возвращается?

/и еще вопрос не по теме:
Как можно в кедах (3.5.10) поменять язык интерфейса программ с русского на английский? стоит локаль ru_UA.UTF-8 и соответственно все LC_* переменные на ней. Локаль такая стоит только чтоб русские файлы отображались нормально.

Что-то недолго хранятся на

Что-то недолго хранятся на pastebin.mozilla-russia тексты.

Вот, переложил сюда: http://www.pastebin.ca/1507387
На всякий случай повторю - это лисапед, а я не программер. (-;

Это учитывается: dirty_writeback_centisecs
А это нет: link_power_management_policy - у меня диск на ноуте ide'шный.

Nikoli написал(а): Предлагаю

Nikoli написал(а):
Предлагаю обсудить какие приёмы стоит использовать при установке Gentoo на ноутбуки.

Своё текущее решение описал в руководстве https://nikoli.selfip.org/ru/node/417

Ссылка не рабочая. Можно где-нибудь еще посмотреть это руководство?
Заранее благодарен.

https://nikoli.msk.ru/ru/node

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".