Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #46, СЕНТЯБРЬ 2004 г.

Тюнинг в стиле X. Часть 2

Alexander S. Salieff

Спецвыпуск Xakep, номер #046, стр. 046-018-5


Итак, теория понятна, но что мы имеем на практике? Во-первых, ты получишь консоль, на которую влезает очень много символов против стандартных 80х25, и это не потребует от тебя подъема X11 и расходования бесценных ресурсов. В консоли можно смотреть видео, как бы странно это ни звучало. Вуаля: mplayer -vo fbdev -ao oss /home/user/video/film.avi - бегает не хуже, чем в X'сах. Весь софт, написанный с помощью SDL (а это и немалое количество игрушек в том числе), прекрасно находит framebuffer при отсутствии X11 и отрисовывает графику на нем. Только не советую тебе запускать под голым framebuffer SDL-приложения, использующие OpenGL: насколько я понял, это насмерть вешает тачку. Существуют также графические просмотрщики (zgv, ggv), браузеры (links/glinks), порты игрушек (к примеру, quake) и множество другого графического софта, способного работать без X11. Отдельного внимания заслуживает проект DirectFB (www.directfb.org). Участники этого проекта делают очень мощную надстройку над стандартным framebuffer, использующую аппаратные возможности железа и имеющую расширенный мультимедийный API. Существует (хоть пока и в сыром виде) порт GTK под DirectFB, позволяющий запускать GTK-приложения в консоли. Должен тебе сказать, что при настроенном аппаратном OpenGL (его поддержка в DirectFB реализована корректнее, чем в SDL+FB ;)) эти самые GTK-приложения выглядят намного отпаднее, чем в стандартных X'сах, да еще и бегают ощутимо быстрее.

BootSplash

Наличие framebuffer позволяет возводить различные рюшечки и красивости при загрузке ядра и в самой консоли. Кого-то это бесит, а кому-то нравится. Бесспорное лидерство по популярности в этой области держит проект BootSplash. Он позволяет вешать графические обои в консоли, настраивать область размещения терминального вывода на экране, а также оформлять silent-загрузку ядра, когда на фоне картинки бежит прогрессбар. Если тебя заинтересовали эти возможности, то давай разберемся, как сделать такое у себя.

Для начала нужен набор утилит bootsplash. Идем на ftp://ftp.suse.com/pub/people/stepan/bootsplash/rpm-sources/bootsplash/ и берем оттуда bootsplash-3.0.7.tar.bz2 для ядер 2.4.х либо bootsplash-3.1.tar.bz2 для ядер 2.6.х. Желающие собрать RPM'ку берут оттуда же spec-файл. В случае ручной сборки заходим в подкаталог Utilites, говорим make, после чего копируем утилиты splash, fbresolution, fbmngplay и fbtruetype в /sbin.

Далее идем на ftp://ftp.suse.com/pub/people/stepan/bootsplash/kernel/ и подбираем там патч, наиболее подходящий к версии ядра. Теперь закидываем его в корень исходников ядра и патчим:

patch -p1 < bootsplash-3.0.7-2.4.20-vanilla.diff

Отконфигурируем ядро, включив поддержку RAM-дисков и InitRD:

Device Drivers --> Block devices--> RAM disk support+Initial RAM disk (initrd) support

Также в настройках framebuffer появится пункт о bootsplash, и его тоже нужно включить:

Назад на стр. 046-018-4  Содержание  Вперед на стр. 046-018-6