Мини-HOWTO: "Linux и питание от батарей"

Hanno Mueller

     hanno@lava.de
   

Перевод: Денис Дементьев, SWSoft Pte Ltd.

21 декабря 1997

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


Содержание
1. Вступление
1.1. Перед тем, как вы спросите
1.2. О чем этот документ
1.3. Путеводитель
1.4. Отзывы
1.5. Ответственность
1.6. Copyright
1.7. Авторские права
2. Общая информация
2.1. О батареях
2.2. Сохранение энергии - очевидные вещи
3. Улучшенное управление питанием (Advanced Power Management)
3.1. Что APM может сделать для вас
3.2. Как включить поддержку APM под Linux
3.3. Поддержка APM и драйвера PCMCIA
3.4. Пакет apmd
3.5. А что если мой лэптоп не поддерживает APM?
4. Изменение некоторых настроек системы
4.1. Демон crond и atrun
4.2. Демон update / bdflush
4.3. Демон syslogd
4.4. Команда init
4.5. Раздел подкачки
4.6. Демон apache httpd
4.7. Пакет XFree86
4.8. Редактор emacs
4.9. Как найти другие пути оптимизации
5. Приложение
5.1. Послание дистрибьюторам Linux
5.2. Благодарности
5.3. Об этом документе

1. Вступление

"Для детей от 6 лет. Батарейки входят в комплект".


1.1. Перед тем, как вы спросите

В этом документе дается описание того, как оптимизировать Linux, уже установленный на переносной компьютер, а не как его устанавливать. Если вам нужна помощь по установке Linux, то читайте HOWTO: "Установка" или руководство вашего поставщика.

Здесь также нет информации о том, как использовать источник бесперебойного питания (UPS) или демон powerd (хотя ИБП - это большая батарея). По этому вопросу читайте UPS-HOWTO.


1.2. О чем этот документ

Все больше людей в наше время покупает переносные компьютеры, и все больше людей устанавливает на них Linux.

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

Если вам нужна помощь по установке Linux на лэптоп, или у вас есть вопросы по аппаратному обеспечению переносных компьютеров, то вы можете взглянуть на прекрасную страницу Linux Laptop webpage по адресу http://www.cs.utexas.edu/users/kharker/linux-laptop/. http://www.cs.utexas.edu/users/kharker/linux-laptop/

В этом документе акцентируется внимание на одной общей для всех переносных систем проблеме - потребление электроэнергии.

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

(Небольшое отступление. Я получил от читателя жалобу на то, что эти подсказки не очень то помогли его лэптопу. Вообще, это все работает? Да, но не ждите чудес. Я смог увеличить время работы моего лэптопа с 90 до более чем 120 минут.)


1.3. Путеводитель

Если вы - профессионал в лэптопах, то можете пропустить раздел "Общая информация". Если вы - профессионал в Linux, то можете сразу читать раздел "Изменение некоторых настроек системы". Если вы дистрибьютор Linux, то, пожалуйста, прочитайте "Послание дистрибьюторам Linux".


1.4. Отзывы

Ваши отзывы приветствуются. Пожалуйста шлите комментарии на hanno@lava.de. Работает ли это на вашей системе? Есть ли у вас новые подсказки? Встречаются ли в тексте устаревшие ссылки или адреса?

К сожалению, я не смогу ответить вам на вопросы об отдельных моделях переносных компьютеров. Я не претендую на звание гуру в переносных компьютерах, просто у меня есть один лэптоп, и я хочу поделиться собранной мной информацией. Сходите на страничку Linux Laptop webpage, может быть кто-то еще создал страничку, посвященную вашей модели. Обратитесь в службу поддержки вашего производителя. Или загляните в телеконференцию comp.sys.laptops и спросите там.


1.5. Ответственность

Все методы, описанные здесь, были опробованы мной, и прекрасно работают (если не оговорено иначе) на моем лэптопе. Тем не менее, я не гарантирую, что один из них не разрушит или не повредит вашу систему. Жизнь - довольно опасная штука, так что делайте резервные копии важных файлов, если хотите поиграться с настройками Linux. Я не несу никакой ответственности за потерю данных, если что-то пойдет не так. Другими словами: не предъявляйте мне судебных исков. Благодарю.


1.6. Copyright

This document shall be distributed under the standard HOWTO-copyright notice, found in the HOWTO folder at http://sunsite.unc.edu/mdw/linux.html.


1.7. Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу


2. Общая информация

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


2.1. О батареях

(Пожалуйста, обратите внимание на раздел "Благодарности".)

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

  • NiCd (никель-кадмиевые) батареи многие годы были стандартом, но сейчас они устарели, и более не используются в новых лэптопах. Они тяжелы и очень склонны к "эффекту памяти". При неполной перезарядке разряженной NiCd батареи, она "запоминает" старый заряд, и при следующем использовании уровень заряда будет равен старому.

    Эффект памяти вызван кристаллизацией вещества батареи и может уменьшить время жизни батареи, или даже вывести ее из строя. Чтобы его избежать, необходимо полностью разряжать и затем полностью заряжать батарею, как минимум, раз в несколько недель. (Небольшое отступление, касающееся эффекта памяти. James Youngman предложил довольно радикальный метод - э-э-э - "починки" батарей: "Если ваша NiCd батарея страдает от эффекта памяти, то извлеките ее из компьютера, поднимите примерно на 30 см от поверхности стола или пола и бросьте (только убедитесь, что она приземлится ровно)." По его словам, при этом наслоения внутри батареи, вызывающие эффект памяти, отламываются. "Я не знаю, будет ли это работать не с NiCd батареями.")

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

    На случай, если вам интересны некоторые характеристики NiCd:

    Напряжение элемента: 1,2 В
    Энергоемкость / массу: 40 Вч/кг
    Энергоемкость / объем: 100 Вч/л
    Макс. энергоемкость: 20 Вч
    Температура зарядки: от 10 до 35 C (от 50 до 95 F)
    Температура разрядки: от -20 до 50 C (от -5 до 120 F)
    Температура хранения: от 0 до 45 C (от 30 до 115 F)

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

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

    Характеристики NiMh:

    Напряжение элемента: 1,2 В
    Энергоемкость / массу: 55 Вч/кг
    Энергоемкость / объем: 160 Wh/l
    Макс. энергоемкость 35 Вч
    Температура зарядки: от 10 до 35 C (от 50 до 95 F)
    Температура разрядки: от 0 до 45 C (от 30 до 115 F)
    Температура хранения: от 0 до 30 C (от 30 до 85 F)

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

    Характеристики LiIon:

    Напряжение элемента: 3,6 В
    Энергоемкость / массу: 100 Вч/кг
    Энергоемкость / объем: 230 Wh/l
    Макс. энергоемкость 60 Вч
    Температура зарядки: от 0 до 45 C (от 30 до 115 F)
    Температура разрядки: от -20 до 60 C (от -5 до 140 F)
    Температура хранения: от -20 до 60 C (от -5 до 140 F)

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

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

Другие производители устанавливают блок перезарядки внутри компьютера, где пользователи не могут просто заменить его на более новый. Если шнур вашего блока питания - двужильный (как мой), то, скорее всего, блок перезарядки находится внутри.

Если вы сомневаетесь, то обратитесь к производителю вашего лэптопа с вопросом о замене батарей на более современный тип.

Не используемые в течение долгого времени, батареи постепенно разряжаются. Даже при самом тщательном уходе батарея требует замены после 500 - 1000 перезарядок. Тем не менее, не рекомендуется работать на лэптопе, при питании от сети, совсем без батарей - они часто используются, как большие конденсаторы для защиты компьютера от скачков напряжения в сети.

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


2.2. Сохранение энергии - очевидные вещи

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

  • Уменьшайте подсветку вашего дисплея или выключайте его, когда он вам не нужен. Кстати, дисплеи с активной матрицей tft потребляют меньше электроэнергии, чем с пассивной матрицей dstn (теперь у вас есть прекрасное оправдание тому, что вы купили дешевый лэптоп...).

    David Bateman сообщил мне, что использование ЭЛТ-дисплея, при работе на батареях (с выключенным дисплеем лэптопа), увеличивает время работы примерно на 30%: "Не очень полезные сведения, так как если у вас есть, куда включать ЭЛТ дисплей, то почему бы не включить и лэптоп.")

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

  • Вентилятор процессора (если таковой у вас установлен). Многие современные лэптопы имеют опцию bios, называемую "контроль охлаждения" (cooling control). Эта опция позволяет вам выбирать, в случае перегрева процессора, между охлаждением его небольшим вентилятором (установка "производительность"(performance)) и снижением тактовой частоты (установка "понижение" (silence)). Для увеличения времени работы на батареях выберите "понижение".

  • Избегайте использования внешних устройств (принтера, ЭЛТ дисплея, ZIP дисковода, портативной камеры и т. п.), при работе с компьютером на батареях. При подключении обычного струйного принтера, время работы моего компьютера уменьшилось со 120 до 20 минут.

  • Избегайте использования без необходимости встроенных устройств: дисковода, жесткого диска, привода компакт-дисков. Особенно последнего - доступ к нему сильно уменьшает время работы на батареях.

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

    (Кстати, я недавно прочитал, что pcmcia-карты - это очень большая проблема для Windows CE PalmTop. Они потребляют столько энергии, что маленькие батарейки этих микрокомпьютеров должны заменяться каждые несколько минут...)

  • Используйте простое программное обеспечение. Полновесное мультимедиа-приложение гораздо больше загрузит систему/жесткий диск/привод компакт дисков, нежели простенький текстовый редактор. (Между прочим, я недавно прочитал, что pcmcia карты - самая большая проблема для палмтопов, работающих под управлением Windows CE. Они потребляют так много энергии, что маленькие батарейки этих малышек приходится заменять буквально через несколько минут...)

  • Grant Taylor дал следующую подсказку для тех, кто желает обновить свою систему: "Новые версии некоторых обновляемых компонентов потребляют меньше энергии. Например IBM Travelstar 2.5 дюймовый 1.6-гигабайтный IDE жесткий диск потребляет на 20 процентов меньше энергии, чем 500 мегабайтный жесткий диск toshiba, с которым поставлялся мой лэптоп".

  • Если вы все собираетесь купить лэптоп, и для вас важна продолжительность работы на батареях, то не покупайте компьютер с кэшем 2-го уровня. Он на 10 - 20 % быстрее, что намного лучше для мультимедиа приложений, но потребляет намного больше энергии. Бьорн Криус (Bjoern Kriews) сообщил мне, что у него имеется два почти одинаковых лэптопа: один - с кэшем, работает 2ч 30мин; другой - без кэша, работает 4ч 30 мин.

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

  • Другая подсказка для тех, кто еще не купил лэптоп - не покупайте последнюю, самую быструю модель. Как правило, компьютеры более старого поколения через некоторое время оптимизируются производителями без какого-либо предупреждения. "Новые" версии старых моделей зачастую меньше греются и потребляют меньше энергии, чем первые.

    Кроме того, есть франкенштейновские лэптопы, основанные на процессорах, не оптимизированных под переносные компьютеры. Как я писал в мае 97-го, лэптопы нового поколения, основанные на pentium-200, работали на батареях около 20 минут и так нагревались, что могли сжечь компьютер. Когда я писал вторую версию документа в октябре 97-го, лэптопы на pentium-233 работали на батареях более двух часов. Делайте выводы.

Итак, идея вам понятна. Большинство этих ограничений наверняка избавят вас от необходимости каких-либо серьезных изменений в вашей Linux системе. (Лучший способ сохранить энергию батарей - это... не делать вообще ничего. При этом время работы батарей моего лэптопа увеличилось почти до 100 процентов.)

Итак, займемся рассмотрением более полезных мер по сохранению энергии, которые не мешали бы вашей работе.


3. Улучшенное управление питанием (Advanced Power Management)

Переносные компьютеры, в общем случае, (и многие настольные) поддерживают apm - "advanced power management" (улучшенное управление питанием). В этом разделе рассказывается о том, как включить поддержку apm в ядре Linux. Те, кто имеет богатый опыт работы с Linux, могут посчитать этот раздел довольно скучным и предпочтут пропустить его.


3.1. Что APM может сделать для вас

Я не буду вдаваться здесь в детали - за более подробной информацией обращайтесь к Linux APM drivers page по адресу http://www.cs.utexas.edu/users/kharker/linux-laptop/apm.html Все, что вам нужно знать - это то, как с помощью apm процессор может указать bios, что в данный момент не происходит ничего интересного, так что bios может немножко позаботиться о сохранении энергии: снизить тактовую частоту, выключить жесткий диск и дисплей, ну и т.п.

Apm отвечает за режимы "ожидания" (suspend) и "сна" (sleep), а также за режим "выключения диска" (suspend to disk) или "состояния ожидания" (hibernation). Другая замечательная, хотя и не столь важная возможность - с помощью apm shutdown -h не только остановит вашу систему, но и выключит компьютер.

(Кстати, большинство систем Linux вставляют shutdown -r в файл /etc/inittab и связывают его с нажатием control-alt-delete. Я предпочитаю вместо -r прописывать -h, так что нажатие известной комбинации клавиш просто выключает мой компьютер.)

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


3.2. Как включить поддержку APM под Linux

Это просто - достаточно перекомпилировать ядро Linux. Если вы не знаете, как это сделать - посмотрите Kernel-HOWTO.

Ниже приведены значения опций ядер 2.0.30 и выше, установленные по умолчанию (раздел "символьные устройства"):

Поддержка APM BIOS (Advanced Power Management BIOS support): Да (Yes)
Игнорировать USER SUSPEND (Ignore USER SUSPEND): Нет (No)
Включать управление питанием при загрузке (Enable PM at boot time): Да (Yes)
Выполнять idle вызовы процессора при простое (Make CPU Idle calls when idle): Да (Yes)
Разрешить выключение консоли с помщью APM (Enable console blanking using APM): Да (Yes)
Выключать питание при завершении работы системы (Power off on shutdown): Да (Yes)

Прочитайте справку по тем или иным опциям конфигурации - она подробно объясняет, что делает каждая опция, так что я не буду повторяться.

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

Примечание о выключении консоли: Дэвид Бэйтмэн (David Bateman) сообщил мне, что эту опцию включать не стоит, так как в текущей версии XFree 3.2 с ней возникают проблемы: "Симптомы следующие: при старте X экран выключается. Исправляется это простым нажатием клавиши. Маленькая, но досадная проблема. В следующей версии XFree будет реализована нормальная поддержка DPMS для микросхем лэптопов, включающая код для выключения ЖКД (LCD). Читайте руководство (manpage) по xset в XFree 3.2A." Дэвид также заметил, что продолжительность жизни подсветки монитора зависит от количества ее включений и выключений: "Так что ищите компромисс между временем жизни батареи и временем жизни подсветки.")

(Обновление: С XFree 3.3 эта проблема на моем лэптопе осталась. Мне сказали, что она будет исправлена в одной из следующих версий ядра.)


3.3. Поддержка APM и драйвера PCMCIA

После перекомпилирования ядра не забудьте перекомпилировать драйвера pcmcia.

Готовые драйвера pcmcia, поставляемые с большинством дистрибутивов, не имеют поддержки apm, из-за чего bios не может дать команду на выключение вашим PCMCIA-картам.

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

За более подробной информацией по компилированию драйверов обращайтесь к PCMCIA-HOWTO или к Linux PCMCIA drivers homepage на http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html.


3.4. Пакет apmd

После того, как вы включили поддержку APM, скачайте пакет apmd с Linux APM drivers page. Он не является обязательным, но в нем есть несколько полезных утилит. Демон apmd ведет журнал состояния батарей и посылает предупреждение, когда они садятся. Команда apm может перевести систему в режим ожидания, а xapm показывает состояние ваших батарей.

(Кстати, если у вас возникают проблемы с pcmcia картами при возврате из режима ожидания, то попробуйте альтернативный пакет apmd с http://www.cut.de/bkr/linux/apmd/apmd.html. Он выгружает драйвер pcmcia перед переходом в режим ожидания и загружает его при возобновлении нормальной работы.)

Grant Taylor немного поэкспериментировал с пакетом apmd и дал следующие полезные подсказки.

Он обнаружил, что жесткий диск его лэптопа забывает параметр hdparm -S (время до перехода диска в режим ожидания) при выходе из режима ожидания: "Я подправил apmd так, чтобы он сбрасывал этот параметр при каждом выходе из режима ожидания. Это важная вещь, хотя и системно-зависимая..."

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

Grant также использовал хорошую уловку для гашения экрана XFree86, с помощью apmd


3.5. А что если мой лэптоп не поддерживает APM?

Если в bios вашего компьютера нет настроек сохранения энергии (хотя даже старые лэптопы, не поддерживающие apm, позволяют, как минимум, установить время до перехода компьютера и жесткого диска в режим ожидания), то воспользуйтесь командой hdparm -S. Даже это сильно поможет, так как жесткие диски потребляют много энергии. hdparm должен быть установлен в системе, синтаксис команды описан в man hdparm.


4. Изменение некоторых настроек системы

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

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


4.1. Демон crond и atrun

Проверьте файл /etc/crontab и убедитесь в том, что он запускается каждую минуту. Часто здесь можно найти atrun.

С помощью команды at реализуется отложенный запуск команд. Некоторые системы Linux используют для этого выделенный демон atd, другие (например RedHat) используют crond для запуска раз в минуту atrun.

На большинстве систем не требуется запуск команд at точно в определенное время. Поэтому, если в вашем /etc/crontab есть строки

# Запускаем задания at каждую минуту
* * * * * root [ -x /usr/sbin/atrun ] && /usr/sbin/atrun

то можно смело изменить их на

# Запускаем задания at каждый час
00 * * * * root [ -x /usr/sbin/atrun ] && /usr/sbin/atrun

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


4.2. Демон update / bdflush

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

Этим занимается демон update / bdflush. (Это имена одной программы, для запуска демона можно использовать и то, и другое.) По умолчанию flush вызывается каждые 5 секунд и sync - каждые 30 секунд.

Это приводило к постоянному доступу к моему диску Fujitsu. (Похоже, этот жесткий диск сбрасывает (записывает) свой кэш даже при отсутствии в нем каких-либо изменений. Впрочем, это зависит от производителя - по сообщениям других некоторые диски переходят в режим ожидания даже без нижеприведенных изменений.)

Сбои Linux теперь - это не такое уж частое явление, поэтому я сменил оба значения на 3600 секунд (= один час), что не вызвало никаких проблем и остановило постоянный доступ к диску. (Но если сейчас моя система аварийно завершит работу, то испорченных файлов будет, конечно, больше)

RedHat 4.1: B /etc/inittab, измените вызов update на:

ud::once:/sbin/update -s 3600 -f 3600

Suse 4.4.1: update вызывается из /sbin/init.d/boot.

Slackware: update вызывается из /etc/rc.d/rc.S.

Если хотите углубиться в подробности - читайте man update.


4.3. Демон syslogd

Демон syslogd отвечает за различные файлы системных журналов Linux, находящихся в каталоге /var/log/. По умолчанию syslogd сбрасывает на диск (sync) файлы журналов всякий раз после записи в них системного сообщения.

Вы можете отключить сброс, поставив перед именем файла в файле /etc/syslog.conf знак "минус". Вот пример syslog.conf из моей системы:

# Ведем журнал всех сообщений (кроме почтовых) уровня info и выше.
# Не включаем в журнал сообщения об аутентификации!
*.info;mail.none;authpriv.none                  -/var/log/messages

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


4.4. Команда init

Во время загрузки начальные процессы и демоны запускаются командой init. Эта команда (опять таки) вызывает sync перед созданием любого нового процесса.

Это можно изменить, убрав вызов sync() в исходных текстах и перекомпилировав init.

Чтобы избежать проблемы с потерянными файловыми буферами, следует добавить в скрипт /etc/rc.d/init.d/halt перед отключением файловых систем вызов sync.


4.5. Раздел подкачки

Раздел подкачки Linux используется для увеличения размера физической памяти за счет виртуальной памяти, что, опять-таки, может послужить причиной доступа к диску. Если на вашем лэптопе много памяти, или используемые вами приложения довольно просты (подумайте о vi),то, возможно, вам стоит подумать об отключении этого раздела.

Само собой, решение должно зависеть от того, что вы собираетесь делать. 4 - 8 Мб памяти однозначно недостаточно для работы без раздела подкачки. 8 - 16 Мб достаточно для работы текстовых консольных приложений, если вы, конечно, не используете активно многозадачность. Работа в X-Windows требует большого количества памяти - если размер памяти вашего компьютера не намного превышает 16 мб, то отключать раздел подкачки не следует.

(Отступление: Мой лэптоп с 16 мб и отключенным разделом подкачки одновременно работал с emacs, четырьмя оболочками bash и компилировал ядро, не испытывая недостатка в памяти. Этого для меня достаточно.)

Если вы уже установили раздел подкачки, то можете отключить его, поставив символ решетки перед командой командой swapon, вызываемой из /etc/rc.d/rc.sysinit. Если вы не хотите насовсем отключать раздел подкачки, то можно заставить систему спрашивать вас во время загрузки, следует ли использовать подкачку. В файле /etc/rc.d/rc.sysinit (RedHat 4.1) или /sbin/init.d/boot (Suse 4.4.1):

echo "Должна ли система использовать подкачку?"
echo "  0: Нет."
echo "  1: Да."
/bin/echo "Ваш выбор: \c"
read SWAPCHOICE

case "$SWAPCHOICE" in
    0)
        # Ничего не делаем.
        echo "(Разделы подкачки отключены)"
        ;;
    *)
        # Включаем подкачку.
        echo "Подключение разделов подкачки"
        swapon -a
esac

В этом случае можно включать подкачку при работе от сети и не использовать при работе на батареях.


4.6. Демон apache httpd

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

Просто смените в файле httpd.conf значения MinSpareServers и StartServers на 1. Этого вполне достаточно для локального тестирования.

Если вы хотите выключить ведение веб-сервером журнала, то перекомпилируйте демон httpd. За подробностями обращайтесь к документации.

Grant Taylor перекомпилировал ведение журнала и обнаружил, что от этого apache не перестал "дергать" диск. Поэтому я нашел, как мне кажется, лучшее решение - запуск apache не демоном, а через inetd." Читайте man inetd.


4.7. Пакет XFree86

Настройка XFree86 для лэптопов - это отдельная история. Я, опять таки, отсылаю вас к Linux Laptop page, где можно найти помощь по этому вопросу.

Гашение экрана X консоли всего лишь очищает его (делает черным), но не выключает. Как было отмечено в "Примечании о выключении консоли" , для настройки гашения можно использовать опцию dpms команды xset Впрочем, эта возможность зависит от графического адаптера и bios вашего лэптопа.

Grant Taylor использовал следующие настройки для выключения экрана своего лэптопа, с помощью apmd и хранителя экрана:

# Запускаем xscreensaver, с помощью программы APM

xscreensaver -timeout 5 \
             -xrm xscreensaver.programs:apm_standby \ 
             -xrm xscreensaver.colorPrograms:apm_standby &

где apm_standby - это suid perl скрипт, позволяющий лишь некоторым пользователям запускать apm -S.


4.8. Редактор emacs

Ладно, emacs - это не редактор, а стиль жизни. Вот подсказка Florent Chabaud: "Если вы использовали emacs, то, может быть, заметили, что этот редактор кое-что сохраняет автоматически. Эта возможность, конечно, очень полезна и не должна быть выключена, но ее параметры могут быть немного подстроены под лэптоп.

Я добавил в файл /usr/share/emacs/site-lisp/site-start.el следующие две строки:

(setq auto-save-interval 2500)
(setq auto-save-timeout nil)

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


4.9. Как найти другие пути оптимизации

Если ваша система Linux все равно слишком часто обращается к диску, то с помощью команды ps ax можно выяснить, что происходит внутри. Она выводит список процессов с полным именем каждого, иногда даже хватает места для аргументов командной строки.

После этого прочитайте руководство (man) по каждому процессу, с целью найти способ, изменить его поведение. Так вы наверняка обнаружите процесс, виновный в частом обращении к диску. Команда strace также может пригодиться.

Пожалуйста, пошлите мне письмо, если найдете что-то новое.


5. Приложение

5.1. Послание дистрибьюторам Linux

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

  • Процедура установки должна включать конфигурацию, оптимизированную для переносных компьютеров. "Минимальной установки" почти всегда достаточно - многие вещи не требуются для пользователя лэптопа в дороге. Несколько примеров: нет нужды в трех различных версиях vi (как в Suse Linux); большинству переносных систем не требуется поддержка принтера (печать обычно производится дома с настольного компьютера); очень немногим лэптопам необходима поддержка сети.

  • Не забудьте описать специфичные для лэптопов проблемы - как, например, установить ваш дистрибутив без привода компакт-диска или как настроить драйвер plip.

  • Улучшите управление питанием и добавьте полную поддержку pcmcia. Добавьте готовое ядро и альтернативный набор драйверов pcmcia с включенной поддержкой apm, чтобы пользователь мог при желании поставить их. Включите в состав дистрибутива пакет apmd.

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

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


5.2. Благодарности

  • Информация про батареи, по большей части, базируется на статье "Stromkonserve" Микаэля Рейтера (Michael Reiter), опубликованной в "c't Magazin fuer Computertechnik" (Heise Verlag Hannover, Germany), выпуск 10/96, страница 204. Использована с разрешения. Посетите их страничку: http://www.heise.de/.

  • Следующие люди внесли вклад в этот документ:

    Frithjof Anders <anders@goethe.ucdavis.edu>
    David Bateman <dbateman@ee.uts.edu.au>
    Florent Chabaud <chabaud@celar.fr>
    Markus Gutschke <gutschk@uni-muenster.de>
    Kenneth E. Harker <kharker@cs.utexas.edu>
    Bjoern Kriews <bkr@rrz.uni-hamburg.de>
    R. Manmatha <manmatha@bendigo.cs.umass.edu>
    Juergen Rink <jr@ct.heise.de>
    Grant Taylor <gtaylor@picante.com>
    James Youngman <JYoungman@vggas.com>


5.3. Об этом документе

В этом тексте упоминание о батареях встречается 53 раза.

Свежая версия этого и многих других HOWTO, большинство из которых намного полезнее этого, может быть найдена на главном сайте документации Linux http://sunsite.unc.edu/mdw/linux.html или на одном из его многочисленных зеркальных сайтов.

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

А теперь напевайте со мной: "...дорога, дорога..."