Linux mini-HOWTO

         

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


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



Что 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.



Демон apache httpd


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

Просто смените в файле httpd.conf значения MinSpareServers и StartServers

на 1. Этого вполне достаточно для локального тестирования.

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

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



Демон crond и atrun


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

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

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





Демон syslogd


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

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



Демон update / bdflush


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

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

вызывается каждые 5 секунд и sync - каждые 30 секунд.

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

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

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



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


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

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



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


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

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

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



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


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

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



Команда init


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

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

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



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


Hanno Mueller
hanno@lava.de


Перевод: Денис Дементьев, ASPLinux

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



О батареях


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

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

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

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

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

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



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


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

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

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

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



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


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



Пакет 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



это отдельная история. Я, опять


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

Гашение экрана X консоли всего лишь очищает его (делает черным), но не выключает. Как было отмечено в "Примечании о выключении консоли"

, для настройки гашения можно использовать опцию dpms команды xset

Впрочем, эта возможность зависит от графического адаптера и bios вашего лэптопа.

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


Поддержка 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.



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


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

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

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

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

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

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



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


Раздел подкачки 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):



Редактор emacs


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

Я добавил в файл /usr/share/emacs/site-lisp/site-start.el

следующие две строки:



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


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

Уменьшайте подсветку вашего дисплея или выключайте его, когда он вам не нужен. Кстати, дисплеи с активной матрицей 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 процентов.)

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


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


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