Владимир Попов
2001, модифицировано: 2005.11.26
Linux на ноутбуке... Совсем не так неожиданно, как может показаться на первый взгляд. Последние пару лет эту ОС, достаточно популярную в качестве серверной, всё чаще можно увидеть на рабочих станциях, младшие из которых - ноутбуки. Эти "братья меньшие" самых распространённых в наше время десктопов, кроме очевидных достоинств, имеют, надо сказать, и ряд недостатков. Прежде всего, это весьма ограниченные возможности наращивания системы, более известного всем пользователям IBM PC как upgrade. Через год-другой после покупки счастливый ещё недавно обладатель начинает чувствовать себя всё более "отстающим от времени". Часто ли увидишь сейчас десктоп P166/32MB с 14-дюймовым монитором?... Редко, а ноутбуков с такими характеристиками - сколько угодно и выбрасывать их жалко. Тем более, что, в отличие от десктопа, практически ничего от недавнего "любимца" использовать повторно не удастся... Жаль, конечно, но ни Me, ни XP на таком оборудовании работать не будут, даже если производитель утверждает обратное. Windows 95/98 - могут, но "тоскливо" это выглядит, если сравнивать хотя бы с PII-400/128MB, совсем уже не выглядящим "авангардом" на Вашем письменном столе... Что же? Отказаться от возможности почитать на диване и "прихватить" работу с собой в отпуск? Или - покупать раз в три года новый ноутбук? Оказывается - не обязательно.
Решение существует и строится на базе Linux. Сам Linux достаточно быстр и компактен, а существующее для него ПО исключительно разнообразно: практически всё необходимое можно найти для любой конфигурации, начиная от 386-х. Мысль не оригинальна: уже давно существует сайт , где можно найти всю необходимую информацию, вплоть до описания особенностей отдельных моделей от Acer или, скажем, Compaq. Но это ещё не всё. Идеология свободно распространяемого программного обеспечения дала свои плоды: если систему в значительной мере можно конфигурировать под свои нужды, а пользовательское ПО для неё бесплатно и доступно в исходных кодах, а значит, опять-таки допускает модификацию, то почему бы не создать свой дистрибутив, ориентированный на ноутбуки, не "обременённые" лишними мегагерцами и магабайтами? И вот появляется
Начинается всё, как обычно, с выбора дистрибутива. Должен огорчить: так старательно равняющиеся на
Н-да... Что-то в развитии современных дистрибутивов не так, по крайней мере, с точки зрения Pentium-166. А вот предыдущее "поколение" тех же дистрибутивов, базировавшееся на ядрах 2.2.хх, "уживалось" с ноутбуками прошлого века достаточно хорошо.
Первая трудность, с которой, быть может, придётся столкнуться - обслуживание pcmcia - устройств. Собственно, само обслуживание проблемой не является: Linux давно "знает" этот класс устройств и, скорее всего, вся необходимая поддержка будет включена без Вашего участия, но есть одно "но". С точки зрения Linux сетевые функции более важны для системы, чем какой-то pcmcia. Поэтому вполне вероятно, что при инициализации сначала будет предпринята попытка "поднять" сетевой интерфейс, и только потом будет загружен модуль поддержки pcmcia. Поскольку сетевая карта у ноутбука почти наверняка - pcmcia, то результат, полагаю, очевиден. Хорошо, если порядок запуска сервисов контролируется непосредственно (как в используемых Slackware скриптах инициализации так называемого BSD-стиля, когда порядок запуска определяется порядком следования команд в скрипте), но Mandrake и RedHat используют SystemV-стиль: порядок запуска определяется числом, входящим в имя символической ссылки, ссылающейся, в свою очередь, уже непосредственно на скрипт, контролирующий данный сервис. Первая буква стартовых символических ссылок - 'S'. Таким образом, для получения правильного порядка загрузки сервисов нужно перейти в каталог /etc/rc.d/rc3.d/ (определяющий порядок загрузки в многопользовательском консольном режиме - настоятельно рекомендуется загружаться всё-таки в консольном режиме, раз уж вы хотите "выжать" всё возможное из "старичка") и отредактировать имена символических ссылок таким образом, чтобы ссылка, указывающая на /etc/rc.d/init.d/pcmcia (обычно - SNNpcmcia), имела в названии цифру меньшую, чем ссылка, указывающая на /etc/rc.d/init.d/network (обычно - SMMnetwork). Проще говоря, NN должно быть меньше MM. Хочется верить, что этого описания будет достаточно, поскольку более полное описание SystemV-стиля загрузки явно выходит за рамки данной статьи. Как вы, вероятно, уже догадались, изменение состава запускаемых сервисов с помощью ntsysv или любого её графического "двойника" восстановит ошибочный порядок и Вам придётся повторить описанную процедуру.
Следующий момент, на который нужно обратить внимание - Advanced Power Managment. Ещё не так давно пользователи IBM PC "ничтоже сумняшеся" отключали в BIOS Setup эту опцию. С десктопом можно так поступить и сейчас, с ноутбуком - не рекомендуется. И энергопотребление - небезразлично, если используется аккумулятор, и перегрев противопоказан: вентилятора или совсем нет, или он есть, но когда включается, то об этом начинаешь сожалеть, поскольку шумит он не где-то под столом, что тоже часто раздражает, а у тебя на коленях, в 50-ти сантиметрах от ушей. Пользователи Slackware могут выбрать из входящего в дистрибутив набора ядер наиболее подходящее - bareapm.i. Остальным придётся либо мириться с предоставленным дистрибутивом ядром (если память не изменяет, поддержка apm включена "по умолчанию" в BlackCat 6.2, AltLinux Junior 1.1, Mandrake 8.1. Выключена в Slackware 8.0, ASPLinux 7.1... могу и ошибиться, но суть в том, что включение apm НЕ ЯВЛЯЕТСЯ неотъемлемым атрибутом ни ядер 2.2.х, ни 2.4.х), либо самому перестроить ядро. По моему мнению, эта операция рано или поздно пригодится любому пользователю Linux, почему бы не попробовать сейчас? Описана она многократно и вряд ли вызовет затруднения. В связи с ноутбуками хочется только напомнить, что ядро совсем не обязательно компилировать именно на той машине, для которой оно предназначено: в данном случае это может отнять у вас много времени, а операцию, возможно, придётся повторить несколько раз: некоторые опции apm можно проверить только экспериментально. Сначала нужно добиться перехода в состояния пониженного энергопотребления (standby и suspend) по команде оператора (apm -S и apm -s соответственно) и автоматически (в соответствии с установками BIOS Setup) и выхода из них без подключённых pcmcia-устройств. Потом - попробовать то же при подключённых pcmcia-устройствах. Если машина "зависает" при "пробуждении" и из этого "зависания" её можно вывести "передёргиванием" pcmcia-карты, то, значит, эту карту нужно переводить в состояние "suspend" перед переходом в режим энергосбережения и будить командой "resume" при возврате из него. Такая возможность у apm-демона есть, но я ещё не встречал дистрибутива, где бы она использовалась. Реализуется эта возможность помещением файла apmd_proxy в каталог /etc. Сам файл входит в состав пакета apmd, который всегда доступен по адресу
Ещё одна опция, которую очень желательно иметь включённой в ядре - возможность работы с framebuffers. В отличие от apm, эта опция включена по умолчанию во всех известных мне современных дистрибутивах, но если вы будете перекомпилировать ядро - не посчитайте её лишней. Для ноутбука, или, точнее, для LCD-мониторов эта опция особенно важна. Эти мониторы "идеально" воспроизводят изображение только в каком-то одном разрешении: 12-дюймовые - 800х600, 15-дюймовые - 1024х768. С другой стороны, для наиболее полного использования вычислительной мощности желательно по возможности обходиться консольным режимом. Вот и получается, что для комфортной работы консоль должна быть в графическом режиме 800х600 или 1024х768 в зависимости от того, какая LCD-панель используется в ноутбуке, а это возможно только в режиме framebuffer. Данный режим имеет свои особенности для различных видеоадаптеров, но поскольку абсолютное большинство видеоадаптеров ноутбуков соответствуют спецификации VESA, то VESA framebuffer console и будет опцией, которая нас устроит. Нужный режим включается опцией загрузки ядра vga=NNN, где NNN=773, 790, 791 для разрешения 1024х768 (256, 32к, 64к цветов соответственно) или 771, 787, 788 - для разрешения 800х600. Разницу в качестве изображения не заметить невозможно, не говоря уже о том, что формат 37х100 явно удобнее, чем 25х80.
К этому моменту ноутбук уже вполне "дееспособен" для работы в консольном режиме, причём с довольно "объёмистым" экраном. О Linux-овой консоли сказано много хорошего и, чтобы не повторяться, перечислю только те программы, на которые стоит обратить внимание при работе на маломощных компьютерах:
Перейдём к X Window. Не вдаваясь в технические подробности, отмечу, что сами по себе Х-ы с SVGA-сервером, который практически наверняка поддерживает видеоадаптер и Вашего ноутбука, требуют совсем не так много ресурсов - не более 14МБ оперативной памяти. Так что позволить их себе можно практически на любом ноутбуке. Другое дело - KDE или Gnome. Эта парочка с каждой новой версией становится всё требовательнее к машине. Успехи разработчиков бесспорны, но интересы "вычислительных систем прошлого века" - увы, побоку. К счастью, не все авторы оконных менеджеров ввязались в борьбу за всё более мощные графические оболочки. Открытый код X-Window и разработанных ранее window менеджеров сделали возможным появление целого ряда быстрых и компактных оконных менеджеров, некоторые из которых предполагается использовать даже в PDA. Это и рекордсмен по компактности -
Вот, пожалуй, и всё. Разве что стоит отметить, что если вы программист или web-дизайнер, то вам, быть может, захочется иметь на ноутбуке же http- и SQL-сервера. Никаких проблем:
Примерно таким вот образом можно "вернуть к жизни" безнадёжно, казалось, устаревший ноутбук. Причём, мне приходилось это делать для пользователей, весьма далёких от Linux. Впрочем, и от MS Windows - тоже. Что бы проделать такую работу, некоторые знания действительно необходимы, а вот эксплуатировать готовую систему ничуть не сложнее, чем систему с MS Windows. Что касается надёжности, то и здесь сравнение в пользу Linux. Одним словом, решение достаточно конкурентоспособное. Более того. Наблюдая за без преувеличения "шустрой" работой обретшего "вторую молодость" P166/64, я как-то задумался: 15-дюймовый LCD монитор стоит $400 и более, ноутбук с 12-дюймовой LCD матрицей можно купить за $300... Есть над чем поразмыслить...