вторник, 16 июня 2009 г.

EEE PC. Финал.

Что-то...Нижеследующее писалось для citkit.ru, хотя начиналось всё как раз здесь: с ярлыка ASUS EEE PC. Что-то неопределённое получилось... Нельзя сказать, что это из профессиональной сферы (никогда не занимался десктопами и вряд ли уже когда-нибудь буду), но и в блоге, вроде, не уместно. Palm-то писался с определённой целью и для определённого человека, а это...

Тем не менее, выкладываю пока. Подводя черту под веткой ASUS EEE PC, так сказать. Не исключаю, что перед тем, как вовсе убрать ее отсюда smile


Преамбула.

Практически год пребывал мой 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-ми дюймах — чуть полегче будет, но ведь и "места" на экране почти вдвое меньше? Вот тут-то мы и подходим к главному вопросу: как этим местом распорядиться, чтобы функциональность устройства была максимальной? Для начала, нужно определить о какой функциональности речь. Весьма индивидуально, но для меня это:

  • чтение. Почти исключительно html/plain text;
  • редактирование. Исключительно plain text;
  • броусинг Сети;
  • e-mail

В список не попали средства organizing-а. Все эти календари, контакты, "напоминалки" и прочая... Отнюдь не потому, что я ими не пользуюсь. Просто в этом качестве предпочитаю Palm. Синхронизацию время от времени практикую, но только для контактов. Всё остальное (слушать музыку, смотреть кино/фото, говорить по телефону и т.д.) я предпочитаю без использования IBM PC.

Итак, предложение сводится к следующему:

  • загрузить на EEE PC Linux, поскольку "выпиливать" что-то из window разумным не представляетсяx: слишком многое там жёстко навязано производителем и то, что навязано, одобрения не заслуживает;
  • добиться от инсталляции Linux максимальной компактности, исходя из перечисленных выше функций;
  • использовать по возможности консоль, как предпочитаемый (для глаз) и более экономичный (с точки зрения площади экрана) режим.


Реализация

Задуманное можно сделать в рамках любого дистрибутива или даже какого-нибудь livecd. Вопрос только в количестве телодвижений. После знакомства с Crunchbox (в EEE PC варианте), я выбрал Ubuntu. Никогда не был большим поклонником Debian, но работе, проделанной сообществом над EEE PC нужно отдать должное: зачем возиться с его [EEE PC]"нюансами", если это уже проделали до тебя? Поскольку интересовал, прежде всего, учёт аппаратных особенностей нетбука и только потом поражающие воображение своим размером репозитории, то предпочтение было отдано Eeebuntu Base.

Инсталляцию не описываю — достаточно сказано и без меня. Не упоминаю также о sudo и средствах пакетного менеджмента. Предпочитаете вы sinaptic, apg-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 в данном частном случае нужно:

  • отредактировать /etc/initramfs-toolsmodules, добавив туда строки:
 intel_agp
 drm
 i915 modeset=1
  • командой "update-initramfs -k `uname -r` -u" создать новый образ начальной файловой системы в памяти
  • убрать из /etc/init.d/rc.local строки, имеющие отношение к 915resolution и uvesafb (но оставить строки, имеющие отнoшение к fbcon и console-setup)
  • перезагрузиться

К сожалению, результат пока нельзя гарантировать. 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 предоставляет нам возможность задать "Комбинации клавиш клавиатуры". Из того, что предложено по умолчанию, мне представляются полезными следующие:

  • Alt+W — Запустить веб-браузер
  • Alt+H — Домашняя папка
  • Alt+R — "Run Application"
  • Alt+A — "Main Menu"
  • Alt+T — "Run a terminal"
  • Alt+Space — "Activate the window menu
  • Alt+Tab — Переключение между окнами
  • Alt+1..4 — Переключение междy рабочими столами

Кроме того, грех не воспользоваться "Пользовательскими комбинациями клавиш". Для меня это:

  • Alt+IWICD, требующийся довольно часто, если без питания от сети вы предпочитаете выключать wi-fi (что, вообще говоря, не лишнее)
  • Alt+SSynaptic, который первое время таки требуется
  • Alt+XChromium, который я вслед за Алексеем Федорчуком весьма рекомендую именно для EEE PC
  • Alt+EThunderbird в качестве e-mail клиента
  • Alt+MConky в качестве универсального средства наблюдения за состоянием системы.

Последние три в набор по умолчанию не входят и, посему, подлежат инсталляции. 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 PC при работе с RIP, который, как известно, полностью размещающает свою корневую файловую систему в памяти.

Оценка.

Однозначной оценки не будет. Невозможно это: разные задачи, зрение, возможности менять начинку устройства "под себя". Определённо можно сказать, что, в некотором смысле, до уровня "наладонников" EEE PC не "дорастёт" никогда. Многочасовая работа без подзарядки, мгновенная готовность к работе по включению, "карманный" формат — всё это в настоящее время трудно реализуемо как в рамках архитектуры x86, так и средствами универсальных ОС, разработанных для IBM PC.

С другой стороны, расстояние между нетбуками и настольными компьютерами будет, похоже, только увеличиваться. В борьбе за потенциального покупателя последние идут исключительно по пути увеличения вычислительной мощности, площади экрана и т.д. Каждый шаг на этом пути делает всё более проблематичным перенос "десктоп"-продукта на 7-ми..10-ти дюймовый экран. Vista от MS — лучшая (или, правильнее сказать: худшая?) тому иллюстрация.

Специализированное, "нишевое" применение нетбуков, однако, вполне оправдано. И, в связи с этим, стоит поблагодарить Linux-сообщество за энтузиазм в отношении устройств этого класса. Уже сейчас средствами Linux можно "подогнать" нетбук под собственные задачи или личные пожелания. Исповедующие аналогичную логику производители создают, таким образом, специализированные "читалки" и смартфоны. Нам же остаётся либо пользоваться их продуктами, либо (если есть желание и возможность) создавать собственные на аппаратной базе различных ASUS-ов, Acer-ов, MSI-ев и пр.