
Измени иксам с консолью!
j1m (j1m@list.ru)
Xakep, номер #068, стр. 068-094-1
Графические возможности Linux-консоли
Есть люди, которые по разным причинам не могут или не хотят использовать X-Window, например, владельцы старых компов, любители все заоптимизировать, линукс-гуру, сисадмины, которым иксы не нужны. Если ты относишься к классу таких людей, то эта статья для тебя. Я расскажу тебе, как смотреть фильмы, серфить веб, работать с графическими файлами и PDF-документами и даже играть в игры, не прибегая к помощи иксов.
Закадрим буфера
Буфер кадров (Framebuffer) представляет собой некий виртуальный девайс, предоставляющий доступ к видеопамяти и позволяющий работать с консолью в графическом режиме. Стоит отметить, что в таком режиме разрешение экрана будет измеряться не в символах, а в пикселах, т.е. можно выставить, например, разрешение 800x600, что будет равняться 100x37 символов. В штатных ядрах, которые идут с дистрибутивами Linux, по умолчанию включена поддержка vesafb (для видеокарт, поддерживающих vesa2). Выбрать подходящий видеорежим можно, прописав vga=ask в /etc/lilo.conf. При загрузке в появившемся списке видеорежимов нужно выбрать понравившийся, снова зайти в /etc/lilo.conf и вместо vga=ask прописать vga=номер_видеорежима. Также есть возможность включить в ядро специфические драйвера для конкретных видеокарт, но для этого придется перекомпилировать ядро. Чтобы включить поддержку framebuffer'а, необходимо встроить в ядро (не модулем) следующие параметры:
# make menuconfig
Device Drivers -< Graphics support -< Support for frame buffer devices
Device Drivers -< Graphics support -< VESA VGA graphics support (или выбираем свою видеокарту)
Device Drivers -< Graphics support -< Console display driver support -< VGA text console
Device Drivers -< Graphics support -< Console display driver support -< Framebuffer Console support
Теперь, когда ядро поддерживает fb, необходимо переконфигурировать lilo. Для этого открываем /etc/lilo.conf и пишем туда следующее: append = "video=твой_видеодрайвер".
Или если при конфигурировании ядра ты выбрал VESA VGA graphics support вместо специфического видеодрайвера, то строка append = "video=твой_видеодрайвер" не нужна, а вместо нее необходимо прописать vga=ask или воспользоваться табличкой видеорежимов (см. врезку). Все, осталось выполнить команду /sbin/lilo и перезагрузиться.
DirectFB: революция началась
DirectFB - относительно новая библиотека. По мнению авторов (и я с ними согласен), именно эта либа должна перевернуть все представления о графических возможностях Linux. DirectFB создает надстройку над стандартным fb, добавляя ему множество новых возможностей: драйверы мыши, клавиатуры, работа с современными 3D-ускорителями и даже звуковыми картами. Библиотека поддерживает OpenGL и обладает удобным программным интерфейсом, минимально загружает систему при максимальной отдаче видеоподсистемы. Но и это еще не все. DirectFB позволяет одновременно запускать несколько приложений, каждое в своем окне (необходимо на ядро наложить патч и собирать DirectFB с опцией --enable-multi). Ну ладно, хватит теории, пора ставить эту либу. А для установки нам необходимы: freetype (<= 2.0.1), libjpeg62, libpng2/3, zlib, также для вывода видео можно поставить libmpeg3. Теперь распаковываем архив и набиваем следующую последовательность команд:
Содержание Вперед на стр. 068-094-2
|
 |
|