Управление питанием процессора linux

Обновлено: 07.07.2024

Этот раздел поможет наглядно установить и настроить утилиты для управления энергопотреблением и производительностью процессора.

  1. Управление режимами работы процессора
    1. Анализ возможностей по управлению
    2. Подробное описание регуляторов
    3. Ручная регулировка
    4. Разовая регулировка при включении компьютера
    5. Динамическая регулировка в зависимости от выполняемых задач cpufreqd

    Анализ возможностей по управлению

    Устанавливаем сpufreq-utils - набор утилит для управления режимами работы процессора

    Подробный вывод возможностей процессора

    Смотрим какие режимы (регуляторы) поддерживает процессор

    В большинстве случаев, если их меньше пяти, то что-то настроено не так. Для решения этой проблемы сперва проще всего перезагрузить систему и проверить ещё раз. Если не помогло, то следует проверить наличие регуляторов в конфигурационном файле ядра, а также убедиться, что загружены модули регуляторов.

    • Доступные регуляторы:
    • performance, производительность (по умолчанию). Этот регулятор встроен в ядро и заставляет работать CPU с максимальной скоростью;
    • cpufreq_ondemand. Динамически изменяет частоту процессора в зависимости от нагрузки на систему;
    • cpufreq_conservative. Похоже на регулятор ondemand, разница лишь в плавном увеличении и уменьшении частоты процессора, что лучше для батареи;
    • cpufreq_powersave. Выставляет минимальную частоту для процессора;
    • cpufreq_userspace. Пользователь выставляет частоту вручную.

    Подробное описание регуляторов

    Регуляторы powersave и performance.

    Эти регуляторы статически устанавливают тактовую частоту процессора на минимальное и на максимальное значение соответственно. Пользователь может изменить только те настройки, которые обсуждались в предыдущем разделе.

    Теперь мы приступаем к обсуждению настроек для конкретных регуляторов. При задействованном регуляторе userspace в каталоге cpufreq будет присутствовать файл scaling_setspeed , доступный на запись для root. Этот регулятор даёт пользователю или программе в пользовательском пространстве возможность изменять тактовую частоту процессора. С помощью команды echo пользователь может внести нужное значение частоты в этот файл или же представить возможность установить эту частоту какому-нибудь демону в пользовательском пространстве. Как говорилось ранее, во время обсуждения файлов настроек, вносить настройку в файл scaling_setspeed необходимо для каждого из процессоров.

    • cpufreqd: это демон можно настроить на реагирование на уровень заряда батареи, тип питания (от сети или от батареи), температуру, запущенные программы, уровень использования процессора и на другие факторы.

    При задействованном регуляторе ondemand в каталоге cpufreq присутствует каталог ondemand. В этом каталоге имеется множество регулируемых настроек. Все файлы, доступные на запись для root, можно изменить, вписав новое значение с помощью команды echo, как показывалось ранее. Заметьте, что любые изменения в настройках регулятора ondemand будут применяться на общесистемном уровне, поэтому нет необходимости изменять настройки для каждого процессора.

    Проверяем изменяемые настройки для ondemand

    В файл ignore_nice_load вписывается значение 0 или 1 (по умолчанию 0). При установленном параметре "1" любой процесс с установленными значением "nice" не будет учитываться при расчёте общего использования процессора. При параметре "0" учитываются все процессы. Эта настройка может пригодиться, если у вас есть программа, требовательная к процессорным ресурсам, но продолжительность ее работы не имеет значения. Если применить настройку "nice" к процессу, он не будет влиять на изменения частоты.

    Далее, настройки файла powersave_bias были введены для того, чтобы слегка изменять поведение регулятора ondemand в целях большей экономии энергии путём снижения определённой частоты на указанный процент в ситуациях, когда пользователю не очень важна производительность. Эта настройка может иметь значение от 1 до 1000, что дает от 0.1% до 100% снижения частоты. sampling_rate, измеряемая в микросекундах, определяет, насколько часто регулятор будет проверять использование процессора для определения нужной частоты. Эта настройка принимает значение в промежутке от sampling_rate_min до sampling_rate_max.

    Наконец, настройка up_threshold даёт пользователю возможность изменять пороговое значение максимального использования процессора, влекущее за собой изменение частоты процессора. Значение по умолчанию — 80. Это означает, что через определённые промежутки, указанные в настройке sampling_rate, ядро проверяет процент использования процессора, и при 80% регулятор повышает частоту до максимально возможной.

    При использовании регулятора conservative в каталоге cpufreq появляется подкаталог conservative. В этом подкаталоге имеется множество настроек. Все файлы, доступные на запись для root, можно изменять, вписывая в них новое значение с помощью команды echo, как было показано ранее. Заметьте, что любые изменения в настройках регулятора conservative будут применяться на общесистемном уровне, поэтому нет необходимости изменять настройки для каждого процессора.

    Настройки, доступные для регулятора conservative

    Настройки ignore_nice_load, sampling_rate, sampling_rate_max, sampling_rate_min и up_threshold аналогичны настройкам, уже описанным для регулятора ondemand. Регулятор conservative также даёт пользователю возможность настроить значение down_threshold. К примеру, по умолчанию это значение настроено на 20. Это означает, что через определённые промежутки, указанные в настройке sampling_rate, ядро проверяет процент использования процессора, и если это значение ниже 20%, регулятор будет снижать частоту.

    Настройка freq_step изменяет размер шага (в ту или иную сторону), на который регулятор изменяет частоту процессора. По умолчанию это значение равно 5, то есть регулятор будет изменять частоту на 5 процентов от максимальной или минимальной каждый раз, когда он принимает решения об изменении частоты. В случае, если значение равно 100, регулятор будет действовать точно так же, как и регулятор ondemand.

    Наконец, sampling_down_factor работает как множитель к значению sampling_rate для снижения частоты опроса процессора. Например, если значение sampling_rate равно 10000, а значение sampling_down_factor — 2, то ядро будет проверять процент использования процессора каждые 20000 микросекунд.

    Ручная регулировка

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

    Например для двухъядерного процессора выставляем динамический режим ondemand:

    За подробностями обращайтесь к cpufreq-set --help.

    Разовая регулировка при включении компьютера

    К примеру мы хотим, чтобы частота обеих ядер не превышала 1,5GHz и изменение происходило в плавном режиме. Редактируем файл конфигурации

    С помощью управления электропитанием, вы можете настроить поведение компьютера при отсутствии активности, а также в случае закрытия крышки ноутбука.

    • Если у вас дистрибутив Linux с окружением рабочего стола GNOME, то смотрите статью «Управление электропитанием в Linux (GNOME)».
    • Если у вас дистрибутив Linux с окружением рабочего стола Xfce, то смотрите статью «Управление электропитанием в Linux (Xfce)».

    Различают два состояния:

    • подключение компьютера/ноутбука к электросети
    • работа компьютера/ноутбука от батареи

    Для каждого из них можно сделать отдельные настройки.

    Где в Cinnamon настройки электропитания

    Откройте Настройки:


    Найдите раздел Hardware (Оборудование) и нажмите Power Managment (Управление электропитанием):


    Также в эти настройки можно попасть если нажать на иконку батареи рядом с часами и выбрать пункт Power Settings (Настройки электропитания).

    Настройка электропитания в Cinnamon


    • On A/C power — при питании от электросети
    • On battary power — при питании от батареи
    • Turn off the screen when inactive for — отключить экран при неактивности.
    • Suspend when inactive for — Перейти в режим сна при неактивности в течении
    • When the lid is closed — Действие при закрытии крышки ноутбуку

    Возможные варианты действий:

    • Suspend — сон (сохранение всех данных из оперативной памяти на диск и выключение компьютера. При следующем включении данные с диска будут загружены в оперативную память и компьютер сможет продолжить с того же момента, котором остановился до сна)
    • Shutdown immediately — немедленно выключить
    • Hibernate — гибернация (данные остаются в оперативной памяти, но компьютер переходит в режим пониженного энергопотребления, похожее на выключение. В таком состоянии батарея расходуется очень медленно. При включении, компьютер загрузиться очень быстро. Но если батарея полностью разрядится до включения, то текущие данные из оперативной памяти будут потеряны)
    • Lock screen — блокировка экрана
    • Do nothing — ничего не делать

    Пример настройки, когда экран отключиться при неактивности после 15 минут (при работе от сети) и после 5 минут (при работе от батареи). Компьютер никогда не будет переходить в режим сна, даже если работает от батареи. В случае закрытия крышки ноутбука, компьютер не будет отключаться:


    Тонкая настройка электропитанием в Cinnamon

    Далеко не все настройки выведены в графический интерфейс. Менее популярные настройки для тонкого тюнинга системы вы можете найти с помощью утилиты командной строки:

    Или её графического аналога:


    В случае необходимости, установите эту программу:

    Интересующие настройки находятся в ветке /org/cinnamon/settings-daemon/plugins/power/.

    Там вы найдёте следующие настройки:

    • backlight-helper-force
    • backlight-helper-preference-order
    • button-hibernate
    • button-power
    • button-suspend
    • critical-battery-action
    • idle-brightness
    • idle-dim-ac
    • idle-dim-battery
    • idle-dim-time
    • inhibit-lid-switch
    • lid-close-ac-action
    • lid-close-battery-action
    • lid-close-suspend-with-external-monitor
    • lock-on-suspend
    • percentage-action — при каком критическом проценте зарядки батареи будет выполнено действие
    • percentage-critical — какой процент зарядки батареи считается критичным
    • percentage-low — какой процент зарядки батареи считается низким
    • sleep-display-ac
    • sleep-display-battery
    • sleep-inactive-ac-timeout
    • sleep-inactive-ac-type
    • sleep-inactive-battery-timeout
    • sleep-inactive-battery-type
    • time-action
    • time-critical
    • time-low
    • use-time-for-policy

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

    Как сделать, чтобы ноутбук не отключался при закрытии крышки?

    Перейдите в управление электропитанием: Настройки → Power Settings. Найдите «When the lid is closed» и выберите «Do nothing» в столбцах «On A/C power» (чтобы ноутбук не переходил в режим сна при закрытой крышке когда подключён электросети), и/или «On battary power» (чтобы ноутбук не переходил в режим сна при закрытой крышке когда работает от батареи).

    Как сделать, чтобы экран не выключался

    Перейдите в управление электропитанием: Настройки → Power Settings. Найдите «Turn off the screen when inactive for» и выберите «Never» в столбцах «On A/C power» (чтобы экран никогда не отключался при питании от электросети), и/или «On battary power» (чтобы экран никогда не отключался при питании от батареи).

    Существуют ли для linux нормальное что-нибудь, позволяющее удобно и подробно менять настройки энергопотребления?

    1) На win 7 в моем ноуте: Несколько режимов энергосбережения для сетевой карты, для видеокарты, можно выбирать пассивная/активна система охлаждения, ползунком можно менять максимальную/минимальную частоты процессора. Все это меняется букваль в 2 клика, переключение создание профилей тоже.

    2) На linux пробовал kde, gnome, cinnamon, lxde. Ничего похожего не нашел. Максимум, что есть - настройка затемнение дисплея.

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

    позволяющее удобно и подробно менять настройки энергопотребления?

    Для линукс существует всё кроме вирусов и нормального дектопа.

    Нагуглить удалось ссылки на утилиты командной строки

    Вот сейчас трогаю рукой ноут и он ощутимо теплее (иногда даже горячее), чем на win7. Т.е. нагрев, напряжение и износ деталей больше. Да и не особо приятно, когда рукой тепло чувствуешь. Даже на Win XP, где такие же настройки как в linux, он меньше греется.


    Ноут не хп случаем?)


    Я могу ошибаться но разве чем меньше потребление ресурсов тем менее выделение тепла?

    Licwin hp, но на win все в норме.

    Я могу ошибаться но разве чем меньше потребление ресурсов тем менее выделение тепла?

    Просто win7 управляет 3 режимами энергосбережения сетевухи, 2 видеокарты, меняет частоту процессора тем самым понижая напряжение (снижение частоты зашито в железо, но похоже win7 дополнительно как-то контролит). Может еще какие-то опцимизации.


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


    Буду откровеным: в линуксе с энерго-сбережением/-управлением хреново. А если чтото и более-менее можна сделать то через консоль и текстовые конфиги

    Похоже решения нету, жаль.

    powertop, powertop2 Годные утилиты, которые могут советовать и даже применять весьма ощутимое количество оптимизаций энергопотребления. Только применять советы с головой нужно :)

    cpufreq, cpupower, для видеокарт - блобовский конфигуратор. за сетевые карты не знаю, думаю тоже что-то есть. Комбайна для всего вместе к счастью нет.


    - солнце потухнет через 100500тысячлет
    - о нет! мы все умрём!

    на линухе при желании всё можно настроить
    только тебе это не нужно
    продолжай сидеть под шиндой


    Для приличия напиши что за дистр, что за железо.

    а такой важной, одной из важнейших, штуки нету

    так говоришь, как будто меняешь эти настройки три раза в день. на беглую настройку laptop-mode-tools уйдет минут 15. не знаю устройство какого железа ты собрался учить целыми днями


    нормальное что-нибудь, позволяющее удобно и подробно менять настройки энергопотребления

    Если да, то таких нет, что к лучшему. Всеми необходимыми параметрами управляет ядро и железо, опциями монтирования и прочим - laptop-mode-tools, даже ничего особо настраивать не нужно.

    А управлять частотой процессора вручную в 2012 году - моветон.


    Буду откровеным: в линуксе с энерго-сбережением/-управлением хреново.

    Странно, вроде не Acer какой-нибудь с поломаным ACPI используешь, а такую чушь пишешь. Единственная претензия, которую я могу вспомнить - это отсутствие энергосберегающего режима в реалтековском драйвере(для Intel, например, есть).

    Так что если у тебя не нуво/радеон и не сломан ACPI, проблем быть не должно.

    laptop-mode-tools я когда писал еще не нашел, но всеравно это не то, что надо. Нужно тоже немало посидеть с настройкой, но зп неимением нормального инструмента и это что-то.

    За ссылку на Jupiter спасибо, я её и сам только нагуглил.

    Профили я меняю постоянно в зависимости от задачи. Могу 3 кликами создать новый.

    Я пробовал Debian и Ubuntu.

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

    С тем же успехом на любую жалобу о баге в linux (или дистре) и могу посоветовать всем таким умникам написать свою ОС или собрать свой дистр, а не юзать арч, генту, убунту.</оффтоп>

    Там еще проценты есть.


    Всеми необходимыми параметрами управляет ядро и железо

    А вот я хочу сейчас переключится на макс производительность, но от батареи сижу. Помет позарез понадобится компилять что-то большое глючным компилятор или 3D редактор.

    Но вот штука, ядру-то виднее. От батареи - значит минимум.

    На win7 проценты производительности и список всех энергоберегущих режимов.



    В Debian + KDE я такое видел (я такое видел только в kde!). Потом поставил mint kde (где по идеи kde новее) и там уже такого пункта нету. Куда он делся? А вообще по поводу таких режимов в kde у меня сомнения, что там могут меняться только типы подстветки и включени/отключение hdd. И еще очень сомнительно, что win7 (в отличии от linux) имеет только название настроек, без параметров.

    ZuBB ZuBB, поумнеешь - поймешь, что пустая трата времени, она пустая.

    По поводу последнего поста извеняюсь. Наоборот.

    И еще очень сомнительно, что win7 (в отличии от linux) имеет только название настроек, без параметров.

    И еще очень сомнительно, что linux (в отличии от win7!) имеет только название настроек, без параметров.

    Да, энергопотребление - пока слабое мето Линукс. Но не все так плохо.

    Нет для линукс GUI-приложений. Запомни это.

    Ищи. И на этом сайте чуть обсуждалось.


    Настройка энергопотребления. Существует ли?

    1) На win 7 в моем ноуте: Несколько режимов энергосбережения для сетевой карты, для видеокарты, можно выбирать пассивная/активна система охлаждения, ползунком можно менять максимальную/минимальную частоты процессора. Все это меняется букваль в 2 клика, переключение создание профилей тоже.

    На linux пробовал kde, gnome, cinnamon, lxde. Ничего похожего не нашел. Максимум, что есть - настройка затемнение дисплея.

    Настройками энергопотребления занимается:

    Вот сейчас трогаю рукой ноут и он ощутимо теплее (иногда даже горячее), чем на win7. Т.е. нагрев, напряжение и износ деталей больше.

    Если само железо умеет менять частоты и экономить электричество то проверять все ниже по списку начиная с EFI/BIOS а конкретнее DSDT Моя история успеха acpi-dsdt, Le grande dsdt error central, Оптимизация dsdt, ASPM в linux


    Буду откровеным: в линуксе с энерго-сбережением/-управлением хреново.


    Сидеть днями и учить устройство железа или писать GUI для готовых утилит у меня нет опыта и пока времени.

    У остальных тоже… Засим тебе в Job


    А вот я хочу сейчас переключится на макс производительность, но от батареи сижу. (cut) Но вот штука, ядру-то виднее. От батареи - значит минимум.

    Ядро в данном случае вообще не при чем. В данном случае а) таковы у тебя настройки юзерспейсного acpi б) тебе никто не запрещал выставить в ядре нужный тебе режим посредством echo и /proc /sys


    Скажи это хомячкам. А потом удивись ответу. Впрочем не надо. И так ясно что нехилая часть пользователей здесь дRочNт на линукс, а потом уже с ним работает


    Скажи это хомячкам. А потом удивись ответу. Впрочем не надо. И так ясно что нехилая часть пользователей здесь дRочNт на линукс, а потом уже с ним работает

    Покупал железо и не обращал никакого внимания на наличие: совместимости, поддержки, модулей ядра… faq, how-to а так же / отзывов? ССЗБ!

    Что плохого в том, чтобы человек вместо того, чтобы часами настраивать просто пару раз кликнул?

    что ты там часами настраиваешь в убунте, я не пойму.

    если linux хочет из ОС для программеров, которым нечем заняться и эникейщиков-задротов стать ОС для работы

    Млять, ну, и сиди в своей вонючей win7, на win8 пора уже дёргать, какого хрена ты к линуксу прицепился?

    laptop-mode пакет поставь, и будет тебе энергосбережение. Настраивается через конфиги, достаточно тонко. У меня ноут с гентой потребляет меньше чем в windows 7, больше 5 часов живет. На нормальном железе проблем с энергосбережением у линукса нет.


    А вот я хочу сейчас переключится на макс производительность, но от батареи сижу. Помет позарез понадобится компилять что-то большое глючным компилятор или 3D редактор. Но вот штука, ядру-то виднее. От батареи - значит минимум.

    Знаешь, все уже поняли, что ты несведущ в вопросе, можешь лишний раз не доказывать.

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


    Окей, как я и думал, никакой конкретики, слив засчитан.

    У меня почему-то ноутбук с этим вашим линупсом даже дольше от батареи работает.


    Комбайна для всего вместе к счастью нет.

    ну есть jupiter, мой следующий комментарий. Я о нем упомянул как-то поздно. А к счастью потому, что универсальной системы управления энергопотреблением нет. Комбайн который бы мог работать со всем подряд и не разваливался? Мне в такое слабо вирится. Сейчас все модульно и меня это устраивает, мне больше нравится такой подход когда есть только то что нужно. Хотя если бы что-то такое нормальное запилилы я бы конечно не жаловался, но сомневаюсь что пользовался.


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

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

    Axon ★★★★★ ( 30.10.12 23:15:03 )
    Последнее исправление: Axon 30.10.12 23:15:16 (всего исправлений: 1)

    В винде еще ​​много чего есть. Ну мне конфигов хватает, если будет такая штука тогда можно будет о чем-то говорить а пока ее существования для меня совсем не критично. Я не спорю что многим бы так было гораздо удобнее, это просто мое мнение.


    Спасибо всем за ответы. Особенно спасибо init_6. Пока не попробовал все, попробовал статью с Хабра, не помогло с нагревом.

    Выставил на win7 максимальные настройки всего что можно. И нагрев меньше чем на максимальных настройках в linux раза в 2 с авто снижением частоты CPU. Потом выключил авто снижение частоты температура поднялась, но в linux всеравно выше субъективно в 1.4-1.8 раза.

    Т.е. проблема может быть в максимальных настройках процессора и команды с Хабра не помогают. Минимальные и максимальные настройки делал через jupiter и по статье хабра. Остальное требует много времени, а я как раз искал средство быстрое и максимально удобное.

    image

    Я являюсь рядовым линукс-пользователем и поэтому не стоит от этой статьи ожидать очень умных ходов или нестандартных программистских решений. Все по мануалам. Но раз результат достигнут, значит кому-то кроме меня это может оказаться полезным.

    О том, как заставит ноутбук работать под линуксами как можно дольше, написано немало, в том числе и на хабре. В какой-то степени я еще раз соберу все советы воедино, от очевидных до обскурных, заодно опишу несколько проблем и решений, которые у меня оказались достаточно «индивидуальными».

    Устанавливал я Ubuntu 10.10 на ноутбук Acer Aspire Timeline 5810TG. Эта машина обладает экраном в почти 16 дюймов и относительно производительным железом, зато батарея достаточно емкая, чтобы ставить с ней личные рекорды.

    Содержание поста.

    1. Отключаем дискретную видеокарту.
    2. Полезные команды для энергосбережения.
    3. Проблемы ноутбука (связанные с энергосбережением) и их решения.
    4. Автоматизация.
    5. Дополнительные советы.

    1. Отключаем дискретную видеокарту.

    В моем ноутбуке имеется возможность переключаться между встроенным графическим чипом от Intel, маломощным и малотребовательным к электроэнергии, и сравнительно сильной и энергоемкой карте ATI Radeon HD4330. Многие обладатели ноутбуков с переключаемой графикой испытывают проблемы в работе с Linux-системами. Поиск по «ubuntu switchable graphics» на убунтуформус выдает больше 50 страниц тем.
    Мне производительная графическая карта нужна редко, поэтому я задался целью отключить ее по умолчанию с возможностью быстрого и безболезненного включения.
    Очень много читал те самые 50 страниц форумных тем. А надо было всего лишь заглянуть в убунту-вики или даже попробовать воспользоваться хабрапоиском.
    В версиях ядра, начиная с 2.6.34, присутствует механизм vga_switcheroo, позволяющий переключаться между видеокартами. То есть в Ubuntu 10.10 он есть по умолчанию. О том, как им пользоваться, хорошо было написано здесь (см. второй способ) почти год назад, я по-быстрому напомню, что к чему.
    Вначале выполним
    Зная, какой GPU как обозначается, посмотрим, какой из них в каком состоянии.
    Плюсик стоит на против видеочипа, который используется в данный момент, Pwr означает, что видеокарта включена и потребляет энергию.
    Важно: у всех моих немногих знакомых, обладающих ноутбуками с двумя видеокартами, картина одинаковая: что бы вы не делали, при загрузке системы обе карты работают, при этом для вывода используется встроенная «слабая» графика. Это нам на руку, ибо обесточивание неактивной видеокарт происходит бескровно.
    Команда отключает неиспользуемую GPU сразу же. Поэтому мы обратимся к файлу /etc/rc.local, добавив в него вышеуказанную команду (перед строчкой exit 0). Так, при загрузке систему дискретная видеокарта уже будет отключена и мне не нужно будет беспокоиться ни о чем.
    Важно: насколько я могу судить, vga_switcheroo не работает, если установлены проприетарные драйверы на дискретную видеокарту.

    image

    Кстати, если вы хотите переключаться между видеокартами через графический интерфейс, установите Ubuntu Control Center. Программа представляет собой панель управления параметрами Ubuntu, но нас она интересует исключительно из-за опции переключения между GPU (естественно, здесь это тоже происходит средствами vga_switcheroo).

    Будьте аккуратны с UCC: во-первых, работает кривовато, например, мне необходимо было вначале переключиться на дискретную видеокарту, а лишь затем на встроенную, чтобы обесточить дискретную (либо вначале выполнить echo OFF > /sys/kernel/debug/vgaswitcheroo/switch, а затем переключаться на встроенную GPU). Но работает. Во-вторых, переключение происходит сразу, то есть без спросу выполняется завершение сеанса и приходится вновь залогиниваться.
    Больше о переключаемой графике можно почитать в хабрапосте, на который я дал ссылку выше, а также в Убунту-вики и в этом блоге. Я к этому вопросу возвращаться не буду.

    2. Полезные советы по энергосбережению.

    Собирались эти советы с lesswatts, ubuntuforums, учитывались хинты от powertop, кое-что было найдено случайно.
    1) Если у вас стоит убунту на ноутбуке, стопроцентно у вас установлен пакет laptop_mode, оптимизирующий работу компьютера в зависимости от источника питания. Значение 0, посылаемое в /proc/sys/vm/laptop_mode, отключает режим энергосбережения, 5 устанавливает самый агрессивный. Подробнее о том, как именно laptop_mode сберегает энергию, можно прочесть где угодно.
    2) Режим энергосбережение для SATA-устройств.
    Не знаю, почему у меня в /sys/class/scsi_host/ целых шесть устройств :) Для включения максимального быстродействия выполнить команды с max_performance вместо min_power.

    3) По умолчанию в Ubuntu есть четыре профиля работы процессора:
    conservative: медленно повышает частоту процессора в зависимости от нагрузки на систему и резко сбрасывает частоту к минимальной при простое.
    ondemand: быстро повышает частоту процессора при возрастании нагрузки и медленно сбрасывает частоту к минимуму при простое.
    powersave и performance, очевидно, соответствуют минимальной и максимальной частотам CPU. Многие независимые пользователи крайне не советуют использовать режим performance, поэтому даже для работы от сети, когда экономить на ваттах нет смысла, я использую режим ondemand.

    4) Параметр 'sched_mc_power_savings' из /sys/devices/system/cpu/ позволяет использовать энергосберегающий режим работы процессора в случае, если у того более одного ядра, благодаря особому распределению нагрузки между ядрами.

    5) Встроенные аудио-чипы от Intel (которые принадлежат к т. н. High Definition Audio — HDA) также имеют возможность экономии ватт, если звуковой чип не используется

    6) Для того, что выиграть еще чуть-чуть времени работы батареи, можно запретить системе время от времени «опрашивать» cd/dvd-привод на предмет наличия там диска.
    7) Можно выключить к черту веб-камеру вместе с драйвером. Не проверял отдельно, но сообщают, что дело очень хорошее при работе от батареи. Естественно, пропустите этот шаг, если вам придется использовать скайп или еще для чего-то понадобится камера.

    8) Dirty ratio — максимальный размер памяти (в процентах), для хранения грязных данных прежде чем процесс, их сгенерировавший, будет принужден записать их. Чем выше значение, очевидно, тем реже производится запись и тем меньше активность жесткого диска и системы.
    9) Dirty background ratio — минимальное число памяти (в процентах), где позволено хранить гразные данные вместо записи на диск. Этот параметр должен быть намного меньше чем dirty_ratio что бы позволить записывать куски грязных данных за один проход.
    10) Dirty Writeback sentisecs — как часто ядро должно проверять есть ли «грязные» (измененные) данные для записи на диск (в сантисекундах). Чем выше значение, очевидно, тем реже используется диск для записи грязных данных.
    11) Включение режима энергосбережения PCI Express, как говорят люди, позволяет экономить достаточно много энергии батареи.

    3. Некоторые проблемы ноутбука (связанные с энергосбережением) и их решения.

    Проблема 1. Не работает изменение яркости экрана. Яркость всегда стоит на максимуме. Это критичный момент для энергосбережения, так как яркая подсветка дисплея съедает уйму электроэнергии. Эта проблема наблюдается на многих ноутбуках, на Acer'ах особенно часто. Симптом: изменение яркости с помощью gnome-апплета не дает эффекта, сколько ползунок не таскай, переключение клавишами FN+Right, FN+Left, или аналогичными Fn-комбинациями вешает систему, помогает лишь хард-ресет.
    Решение оказалось не самым практичным, но достаточно простым:

    Здесь ХХ принимает значения от 00 до FF в шестнадцатеричной системе. Для работы от батареи я выбрал значение 40, для работы от сети — FF.

    Проблема 2. Bluetooth-радио включалось каждый раз при загрузки системы, несмотря на то, что bluetooth-модуль был выключен вручную и убран из автозагрузки. Еще одно решение, которое кому-то понравится очень некрасивым: добавить в /etc/rc.local строку rfkill block bluetooth.

    4. Автоматизация.

    Путем экспериментов я, в восторге, выяснил, что этот скрипт запускается каждый раз при старте системы. Кроме того, посмотрев содержимое файлов ac и battery в /etc/acpi/events/, я увидел, что скрипт по идее должен вызываться при подключении ноутбука к электросети и отключении от оной. Это логично, но почему-то не работало. Решение пришло быстро, надо было лишь дать необходимые права скрипту power.sh:

    Теперь все стало автоматизировано настолько, насколько это возможно.
    Вот как выглядит мой скрипт для энергосбережения

    image


    Итак, чего удалось достичь? Вот несколько скриншотов.
    Работает вай-фай, Google Chrome с пачкой вкладок, у обладателя ноутбука (меня) включен обычный режим веб-серфинга:

    Видео в полноэкранном режиме по неизвестной причине ест очень мало ресурсов. Оставив работать лишь qutIM (и вай-фай соединение, конечно), смотреть кино (обычный SD, Xvid) можно чуть ли не девять часов!
    Результаты не подтасованые и не сиюминутные. Все взаправду. Перед снятием скриншотов я работал с ноутбуком в своем обычном режиме около 10 минут. Если оставить заряженный полностью ноут и ничего с ним не делать в течение пары минут, то можно увидеть цифры типа 13 часов. Но нам интересен лишь результат в повседневных условиях, не так ли?

    Overview.

    Краткое руководство к действию: берем скрипт, указанный выше, добавляем его в /etc/acpi/power.sh, делаем power.sh исполняемым, затем добавляем команды выключения bluetooth и дискретной видеокарты в /etc/rc.local.
    Вот и все, что я сделал. результаты вы видели выше.

    5. Дополнительные советы.

    Как еще можно улучшить ситуацию? Да много как, наверное. Из того, что я знаю, но не применял:
    1) Многие на форумах советуют команду
    hdparm -B 1 -S 12 /dev/sda
    Единичка здесь означает самый «агрессивный» режим сбережения энергии жесткого диска. Лично я не смог вытерпеть, что диск замедляется уже через пару секунд после ничего-не-деланья, а разогнаться вновь ему приходится потратить мгновение, что создает эффект лага. Часто паркуется головка хдд. Не очень приятно, к тому же смею предположить, что это еще и изнашивает винт быстрее обычного. 255 вместо 1 отключает энергосбережение жесткого диска вообще. Можете поэкспериментировать с этим у себя, я не против :) Кстати, ковыряние /lib/hdparm/hdparm-functions позволяет найти вот такой кусок кода:

    который как бы намекает, что при переключении питания на батарею параметр выставляется 128. Я оставил так, как есть, но данные параметры можно безболезненно редактировать. Думаю, установкой единицы мог бы выиграть еще несколько десятков минут работы. Но комфорт работы важнее. Да, кстати, тут между прочим хочу заметить, что описанные до этого вещи никакого хоть слегка ощутимого дискомфорта в работу с ноутбуком не вносят.

    2) Powertop, за неимением других подсказок, все время предлагает для уменьшения энергопотребления отключить USB-порты для устройств, не являющихся носителями информации. Можете использовать это для еще большей экономии энергии, но лично я без юсб-мыши пользоваться ноутбуком ну вообще не могу. Терпеть не могу тачпады.
    3) Можно применить опцию noatime к файловой системе. Означает, что не будет вестись лог последнего времени доступа к файлу. Это уменьшит активность системы и жесткого диска. По умолчанию в Ubuntu 10.10, насколько я понял из мануалов, стоит режим relatime, который, если не ошибаюсь, обновляет время доступа лишь в случае внесения изменений в файл. Подробнее об этом, например, тут.

    Читайте также: