2009-07-01
Практически год пребывал мой EEE PC в состоянии "перманентной перестройки". Для дела использовался эпизодически, а все "пережитые" дистрибутивы/ОС меня не устраивали. А "пережитых" было немало: исходная Win XP, RIP, EEEdora, череда Ubuntu (включая Netbook Remix и Crunchbox). Основной недостаток (являющийся, как это часто бывает, продолжением достоинств) — маленький экран. И дело даже не в физическом размере (у Palm|TX он вдвое меньше, но — устраивает), а во всеобщей тенденции "втиснуть" в него такой привычный для большинства "рабочий стол" IBM PC.
Окончательно я в этом уверился после "столкновения" с SONY VAIO VGN-P21Z. Изумительная по своей красоте и техническому совершенству игрушка сведена на нет установленной на ней Windows Vista. Раздражающая неповоротливость, неприлично мелкие иконки и фонты, безобразный рендеринг и кошмарный интерфейс, требующий практически постоянного "мышевозения". Причём "возить" предлагается даже не тачпад — микроджойстик.
Нет, 1600х800+windesktop на 10-дюймовом экране — не для моих глаз. Отказать, категорически и бесповоротно. Насколько хороша Instant Mode (встроенный в BIOS мини-Linux), настолько неприемлема Vista. Не исключаю: другие глаза — другие оценки, но у меня-то они — свои и одни. А на этом SONY я даже в очках напрягаюсь.
Вернёмся к 701-му EEE PC, однако. 800х480 на 7-ми дюймах — чуть полегче будет, но ведь и "места" на экране почти вдвое меньше? Вот тут-то мы и подходим к главному вопросу: как этим местом распорядиться, чтобы функциональность устройства была максимальной? Для начала нужно определить, о какой функциональности речь. Весьма индивидуально, но для меня это:
В список не попали средства organizing-а. Все эти календари, контакты, "напоминалки" и прочая... Отнюдь не потому, что я ими не пользуюсь. Просто в этом качестве предпочитаю Palm. Синхронизацию время от времени практикую, но только для контактов. Всё остальное (слушать музыку, смотреть кино/фото, говорить по телефону и т.д.) я предпочитаю без использования IBM PC.
Итак, предложение сводится к следующему:
Задуманное можно сделать в рамках любого дистрибутива или даже какого-нибудь livecd. Вопрос только в количестве телодвижений. После знакомства с Crunchbox (в EEE PC варианте) я выбрал Ubuntu. Никогда не был большим поклонником Debian, но работе, проделанной сообществом над EEE PC, нужно отдать должное: зачем возиться с его [EEE PC]"нюансами", если это уже проделали до тебя? Поскольку интересовал, прежде всего, учёт аппаратных особенностей нетбука и только потом поражающие воображение своим размером репозитории, то предпочтение было отдано Eeebuntu Base.
Инсталляцию не описываю — достаточно сказано и без меня. Не упоминаю также о sudo и средствах пакетного менеджмента. Предпочитаете вы synaptic, apt-get или aptitude — ваше личное дело. То есть далее следует только перечень инсталлируемых пакетов, благо каталог /var/cache/apt/archives существенно облегчает процесс воспоминаний. Итак...
Устанавливаемый дистрибутив "сходу" поддерживает все устройства (не хватало ещё, чтобы дистрибутив, ориентированный на сравнительно немногочисленное пока семейство нетбуков, этого не делал). Вот только NetManager я заменил на wicd — попытки первого самому решать, к которой из обнаруживаемых wi-fi сетей подключиться, нехорошо напомнили мне Vista.
Прежде всего, я инсталлировал mc. Хотя нужно, наверное, признать, что это — личное. Просто ни к знатокам, ни к ярым сторонникам Debian и его "потомков" я не принадлежу, а в общении с ОС предпочитаю консоль. Вот и получается, что консольный файловый менеджер для меня в данном случае — необходимость.
Из двух неизменных спутников работы в консоли фонты terminus уже присутствовали в системе, так что "добавить" потребовалось только gpm, что я и сделал.
Инсталляцию ntp и ntpdate тоже, наверное, можно считать личным пристрастием, да ещё производственной необходимостью: в моём "распорядке дня" имеют место удалённые сеансы, открываемые в определённое время.
А вот vim (для начала хотя бы common и runtime) я настоятельно рекомендую: подсветка синтаксиса при редактировании конфигурационных файлов не слишком знакомого дистрибутива — весьма облегчает жизнь.
Добившись должной "вооружённости" консоли, я захотел видеть её [консоль] в более подобающем виде. А именно: framebuffer 800х480. Сделать это можно несколькими способами, один из которых я уже описывал здесь. Суть — в подмене разрешения видеорежима, используемого uvesafb по умолчанию. Подмена выполняется, естественно, перед загрузкой uvesafb. Для работы последней, кстати, потребуется инсталлировать ещё и v86d (помимо 915resolution, которая, собственно, и позволяет осуществить ту самую "подмену" разрешения).
Описанный способ, дающий сравнительно небольшой (но приятный) эффект на EEE PC (всё-таки 800х480 не так уж сильно отличается от 640х480 vga, который мы имеем изначально), оказывается ну очень уместным на ноутбуках с более чем 15-ти дюймовой матрицей, а тем более на мониторах 20-ти и более дюймов. Последние, как известно, практически не выпускаются нынче с отношением сторон экрана 4:3.
"Не всё скоту масленица", однако, как любит говорить один мой знакомый. Так, ядро 2.6.29-1-netbook, появившееся в репозитории eeebuntu в сeрeдинe июня, зачем-то включает в себя лишний для нетбyков, на мой взгляд, драйвер vesafb. Как результат — отсутствие автоматической загрузки модуля fbcon после загрузки uvesafb. Решается просто: после загрузки uvesafb модуль fbcon нужно загрузить с помощью всё той же modprobe. В конечном счёте, фрагмент /etc/init.d/rc.local, включающий framebuffer с нужным разрешением, выглядит так:
915resolution 30 800 480 modprobe uvesafb modprobe fbcon /etc/init.d/console-setup reload
Вообще, способов получить "приличную" консоль предостаточно. Кроме способа, предлагаемого мной и описанного в упомянутой выше заметке (модификация видеорежима средствами grub2), можно использовать kexec-tools. В этом случае замысел состоит в том, чтобы запустить ядро посредством kexec уже после модификации BIOS видеоадаптера. Вот только как ни быстро стартует система, запущенная kexec, а всё равно это время не сопоставимо больше времени загрузки и рестарта пары модулей.
Универсальным решением когда-нибудь (будем надеяться) станет KMS (kernel mode setting). Для того чтобы попробовать KMS в данном частном случае, нужно:
intel_agp drm i915 modeset=1
К сожалению, результат пока нельзя гарантировать. Framebuffer с нужным разрешением может появиться (причём /sys/class/graphics/fb0/name определённо укажет на его происхождение: inteldrmfb), но не запустятся Х-ы. Или наоборот. Не удивительно: в рамкаx данного дистрибyтива и с данным ядром ни ядро (<2.6.30-2), ни intel-овский драйвeр (<2.7.99.1) завeдомо нe yдовлeтворяют трeбованиям, предъявляемым на настоящий момент KMS. Так что возвращаем на место uvesafb, и борьбу за эстетику консоли на этом прекращаем.
Для оперативности доступа к административным функциям, помимо такого популярного при настройке приёма как 'sudo -i', рекомендуется в файле /etc/sudoers "раскомментировать" строку
%sudo ALL=NOPASSWD: ALL
Для членов группы sudo это не отменяет необходимости самой команды, но избавляет от необходимости вводить пароль. Останется только редактированием файла /etc/group внести себя, любимого, в эту группу.
На этом этапе имеет смысл инсталлировать rcconf и хорошенько почистить список запускаемых при загрузке демонов. Занятие это довольно индивидуальное, хотя такие сервисы как pcmciautils (это при отсутствии-то pcmcia), apm и rsync вряд ли кому-то понадобятся на EEEPC 701. Мне также не нужны ни cups, ни avahi-daemon, ни pulseaudio, ни pppd-dns, ни usplash, ни ufw, ни ubiquity. Более того, после обновления до ядра 2.6.29-1-netbook пропала нужда в cpufrequtils и loadcpufreq — в этом ядре возможности регулировки частоты процессора отключены. Чистить список запускаемых при старте демонов можно ещё достаточно долго: многие из них запускаются только для того, чтобы убедиться, что конфигурация их использования не предполагает. Но это... скорее спорт, чем необходимость: выигрыш в сокращении времени загрузки будет пренебрежимо мал.
В своё время в графической консоли я использовал и браузер, и почтовый клиент, и медиа-проигрыватель и "просмотрщик" изображений. Сейчас же решил список консольных приложений не расширять: X Window-то — рядом. "К чему плодить сущности?". Читать/писать я действительно предпочитаю в консоли, никуда не деться от неё с используемыми в работе сетевыми утилитами, а для всего остального — можно и с gui смириться.
К нему и перейдём. Загрузить Х-ы при "очищенном" /etc/X11/default-display-manager проще всего, вызвав дисплей-менеджер: gdm. Выбор DE меня и на десктопе никогда особенно не волновал, а уж на EEEPC — и подавно. Что там предлагают, Gnome? Ну, и ладно. Ни одно приложение не захочет делить 7-ми дюймовый экран с какими бы то ни было панелями, ярлыками и т.п. Так что основной замысел: обеспечить максимально быстрый доступ к наиболее используемым приложениям, а последние использовать в полноэкранном режиме.
По моему глубокому убеждению, доступа, более быстрого, чем обеспечивают hotkeys, не бывает. К счастью, Gnome предоставляет нам возможность задать "Комбинации клавиш клавиатуры". Из того, что предложено по умолчанию, мне представляются полезными следующие:
Кроме того, грех не воспользоваться "Пользовательскими комбинациями клавиш". Для меня это:
Последние три комбинации в набор по умолчанию не входят и посему подлежат инсталляции. Thunderbird и Firefox привлекают абсолютной переносимостью профайлов между всеми используемыми компьютерами/ОС. Chromium — более экономно относится к памяти и пространству экрана. Знай себе переключай full screen и обратно (F11, а панель букмарков вызывай только при необходимости (Alt+B — и издержки 7-ми дюймового экрана будут минимальны. К тому же: весьма соответствует принятой манере использования hotkeys. Полный список здесь.
Conky, которую ранее я часто использовал в качестве фона рабочего стола, в таком виде на EEE PC представляется излишней: мне и Иксы-то нужны не так часто, а содержимое рабочего стола (при использовании абсолютного большинства приложений в полноэкранном режиме) и вовсе оказывается незаметным. Поэтому Conky вызываем эпизодически, только когда просыпается желание узнать, а как там у нас с температурой, памятью или местом на диске. В зависимости от направления любопытства рекомендуется редактировать /etc/conky/conky.conf, но об этом уже достаточно сказано ранее.
В отличие от консоли, для которой достаточно иметь нужное разрешение и один приличный фонт, "дизайн" Х-ов несколько более утомителен. Не чувствуя в себе желания перебирать почти два десятка ttf-фонтов, включённых в дистрибутив, я предпочёл инсталлировать cabextract, ttf-mscorefont и xfont-terminus. После чего выбрал ("Параметры -> Внешний вид -> Шрифты") полужирную Verdana, кегль 8 в качестве всех настраиваемых шрифтов, кроме моноширинного. Последним же назначил terminus bold, кегль 10. 96 точек на дюйм, без сглаживания, уточнение — полное, RGB. "О вкусах не спорят", но в данном случае мой выбор определялся не столько вкусом, сколько размером и геометрией экрана, да ещё собственным зрением.
Почти все используемые приложения предусматривают режим full-screen. Для тех же, кто такового не имеет (или путь к нему слишком долог), рекомендуется вместо двух панелей "умолчательного" Gnome-а оставить одну, расположив её справа (или слева): отношение сторон к этому подталкивает. Состав элементов панели — вопрос личных предпочтений, да и не так это важно, если основной способ запуска приложений — "комбинации клавиш". Размер панели — минимальный (20 пикселей), с кнопками скрытия и без стрелок. В обычной жизни скрытое состояние панели — норма. От фонового изображения на панели отказываемся, оставляя её почти прозрачной
Миниатюрность клавиатуры и отсутствие обычных средств индикации раскладки (стандартные светодиоды или панель) делают заманчивым использование независимого включения раскладок (когда каждая раскладка включается своей фиксированной комбинацией клавиш). Наиболее подходящим мне кажется вариант Left Win — для первой раскладки, Right Win/Menu — для второй ("Параметры -> Клавиатура -> Раскладки -> Параметры раскладки").
Такой способ переключения показался мне настолько эргономичным, что я решил перейти на него и в консоли (до этого много лет использовал в качестве переключателя раскладки Caps Lock). Запустил
dpkg-reconfigure console-setup...но интересующего меня варианта переключения среди предлагаемых не обнаружил. Пришлось вспомнить, что переключатель раскладок в консоли задаётся в файле /etc/default/console-setup пeрeмeнными вида XKB*, самим видом своим намекающими на сродство к /etc/X11/xorg.conf. Намёк понятен: отправляемся в каталог /usr/share/X11/xkb/rules и ищем там файл, описывающий опции вида: "grp:...". Таковым оказался файл base.lst. В этом файле потребовалось найти строку комментария "Left Win (to first layout), Right Win/Menu (to last layout)". Соответствующая ему опция именовалась как "grp:win_menu_switch". Её-то и следовало присвоить переменной XKBOPTIONS в файле /etc/default/console-setup. После перезагрузки или рестарта /etc/init.d/console-setup переключатели раскладок в консоли и Х-ах были уже идентичны.
Вообще, способ задания переключателя раскладки в Ubuntu времён 9.04 — это что-то. Х-ы нынче, как известно, не нуждаются в описании раскладок в /etc/X11/xorg.conf. Они вообще без этого файла спокойно обходятся (в полезности этого я, кстати, сильно сомневаюсь). Переключатель же раскладок в консоли задаётся опиcатeлями XKB keymap. Чудно... Это было бы ещё полбеды, если бы средства настройки клавиатуры Gnome не модифицировали переменные в /etc/default/console-setup. Но: модифицируют! В случае с описанным выше независимым включением раскладок без должного успеха, разумеется. Так что и в Ubuntu "дедовские" методы оказываются иногда не лишними.
Последним, что следует отметить (хотя, возможно, это следовало отметить первым), являются особенности использования файловых систем, что влечёт за собой редактирование файла /etc/fstab. Не вдаваясь в обсуждение особенностей эксплуатации SSD-накопителей, просто напомню о существовании опции монтирования relatime. Интересующиеся могут прочитать о ней здесь. Кроме того, сэкономив память отказом от загрузки не используемого ПО, можно создать в ней файловую систему tmpfs. Размещение в ней каталога /tmp — напрашивается:
tmpfs /tmp tmpfs defaults 0 0
Можно не останавливаться на этом и разместить в tmpfs некоторые заполняемые временными файлами подкаталоги /var. Трудно сказать, насколько это нужно, но не могу не отметить, что лучшую реактивность я наблюдал на EEE PCx при работе с RIP, который, как известно, полностью размещает свою корневую файловую систему в памяти.
Однозначной оценки не будет. Невозможно это: разные задачи, зрение, возможности менять начинку устройства "под себя". Определённо можно сказать, что, в некотором смысле, до уровня "наладонников" EEE PC не "дорастёт" никогда. Многочасовая работа без подзарядки, мгновенная готовность к работе по включению, "карманный" формат — всё это в настоящее время трудно реализуемо как в рамках архитектуры x86, так и средствами универсальных ОС, разработанных для IBM PC.
С другой стороны, расстояние между нетбуками и настольными компьютерами будет, похоже, только увеличиваться. В борьбе за потенциального покупателя последние идут исключительно по пути увеличения вычислительной мощности, площади экрана и т.д. Каждый шаг на этом пути делает всё более проблематичным перенос "десктоп"-продукта на 7-ми..10-ти дюймовый экран. Vista от MS — лучшая (или, правильнее сказать: худшая?) тому иллюстрация.
Специализированное, "нишевое" применение нетбуков, однако, вполне оправдано. И в связи с этим стоит поблагодарить Linux-сообщество за энтузиазм в отношении устройств этого класса. Уже сейчас средствами Linux можно "подогнать" нетбук под собственные задачи или личные пожелания. Исповедующие аналогичную логику производители создают таким образом специализированные "читалки" и смартфоны. Нам же остаётся либо пользоваться их продуктами, либо (если есть желание и возможность) создавать собственные на аппаратной базе различных ASUS-ов, Acer-ов, MSI-ев и пр.