Энергосбережение на ноутбуке
Предлагаю обсудить какие приёмы стоит использовать при установке Gentoo на ноутбуки.
Своё текущее решение описал в руководстве https://nikoli.msk.ru/ru/node/417
- Для комментирования войдите или зарегистрируйтесь
После
После прочтения вашего руководства возникли некоторые вопросы:
- у меня нет /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)
- Для комментирования войдите или зарегистрируйтесь
Не могли бы вы "на пальцах"
-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/...
- Для комментирования войдите или зарегистрируйтесь
.
cpufreqd у меня в системах нет, и мне он не нужен - всё делает ядро :)
http://www.gentoo.org/doc/en/power-management-guide.xml
т.е. достаточно в ядре поставить Default CPUFreq governor (ondemand), и все?
яркостью у меня заправляет 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
Народ, а кому удавалось настроить управление яркостью экрана?
Для ноутбуков 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-дисководу хорошая идея, надо будет посмотреть.
- Для комментирования войдите или зарегистрируйтесь
.
>смотря как ты использовать собрался, я сделал так:
Я хочу, чтоб производительность изменялась в зависимости от нагрузки. Просто если это реально организовано на уровне ядра, зачем тогда разных демонов понаделали?
Хорошая статья - 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
Ноут, есть большие шансы что есть кардридер, вставляешь флешку и размещаешь критические файлы на ней.
- Для комментирования войдите или зарегистрируйтесь
.
был сделан 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 написал(а): Предлагаю
Предлагаю обсудить какие приёмы стоит использовать при установке Gentoo на ноутбуки.Своё текущее решение описал в руководстве https://nikoli.selfip.org/ru/node/417
Ссылка не рабочая. Можно где-нибудь еще посмотреть это руководство?
Заранее благодарен.
- Для комментирования войдите или зарегистрируйтесь
https://nikoli.msk.ru/ru/node
- Для комментирования войдите или зарегистрируйтесь
Итересно,
Итересно, спасибо!
На своем Dell Inspiron 1501 пока ограничился лишь cpufreq с conservative гувернером, после чего время работы с максимальной яркостью матрицы увеличилось до 3...3.5 часов, при минимальной около 4-х.
З.Ы. Кстати при закрытии крышки матрица у меня гасится автоматом, без малейшей настройки с моей стороны.
Quote: З.Ы. Кстати
Она у всех ноутов гасится, аппаратно реализованно.
С регулировкой частоты процессора в зависимости от уймы параметром справляется замечательно - cpufreqd (причём есть профили настройки).
По поводу swap - когда у меня появился первый ноут с гигом памяти, я перестал выделять отдельный свап раздел. В последнем, при двух гигах ОЗУ свап раздел есть на всякий случай, включаю руками при крайней необходимости только (за полгода последние ни разу не понадобился).
За яркостью следить надо внимательнее, это главнейший источник потребления энергии. При встроенных видюхах - klaptopdaemon очень хорошо справляется с этой задачей (там поддрежка профилей яркости есть).
На ноутах ещё неплохо помагает - выключать wifi & bloetooth если не используются.
Также можно выключить питание на сидюк (через /sys/class/... ).
Из аппаратных фишек экономящих питание - поставить хард с одним блином (почти все объёмом до 120 гигов).
И конечно же индикатор загруженности проца на экране держать, чтобы видеть если что-то злобное проц хавать начинает.
Ноутбук Toshiba A110-293 матрица гасится программно
Ноутбук Toshiba A110-293 матрица гасится программно, IMHO, т. к. если не настроить что-либо вроде acpid или powersave ничего не происходит :(
Я понимаю, можно делать
suspend-to-disk
в отдельный файл, но в чём тогда смысл отказываться отswap
, конечно, если не отказаться отsuspend-to-disk
как такового.Quote: Ноутбук
хм.. а как ты проверял? просто она гасится иногда буквально на последнем миллиметре до полностью закрытой крышки.. и создаётся впечатление, что не выключается.
Кому как, по вкусу конечно, меня полностью suspend-to-ram устраивает. Ноут несколько дней в таком состоянии находиться может, а мне больше от одной точки подзарядки до другой времени не нужно.
Извините, погорячился :)
Да, видимо ошибся, сейчас проверил, опуская крышку по миллиметру и выключив acpid, точно гаснет :)
А на НР 550 - ваще крышка не
А на НР 550 - ваще крышка не гаснет ((( так что не всегда это аппаратно реализовано
Подсветка
Подсветка железно гасится не у всех. Проверял.
Для беспроводной связи настроил в БИОСе железную включалку сбоку ноута - весьма удобно.
Не вижу смысла использовать дополнительные службы и проги, если ядро умеет само менять частоту ЦПУ в зависимости от нагрузки.
Отключить подкачку может быть весьма полезно, но в моём случае это не позволяют сделать tmpfs разделы на 1,5 гига.