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

Измени иксам с консолью!

j1m (j1m@list.ru)

Xakep, номер #068, стр. 068-094-2


# ./configure --with-gfxdrivers=all

# make

# make install

После успешной установки можно сконфигурировать DirectFB:

# vi /etc/directfbrc

# видеодрайвер

system=fbdev

# видеорежим, в котором по умолчанию будут запускаться приложения

mode=800x600

# глубина цвета

depth=16

# не показывать баннер перед запуском приложений

no-banner

# включить аппаратное ускорение

hardware

# возможность переключения на другой терминал во время работы приложения

vt-switching

# протокол работы с мышью (Microsoft для трехкнопочной мыши)

mouse-protocol=MS3

Теперь проблемы. Если у тебя COM-мышь, то необходимо создать символическую ссылку на COM-порт, например, так (если мышь висит на первом порту):

# ln -s /dev/ttyS0 /dev/mouse

Для того чтобы можно было запускать DirectFB-приложения, необходимо установить suid-бит на бинарники этих приложений или для соответствующих пользователей назначить корректные права доступа (разрешение на чтение и запись) для файлов устройств /dev/fb0, /dev/tty[0..6].

Подарок геймерам

SDL (Simple DirectMedia Layer) - это библиотека, которая разрабатывалась специально для игр и эмуляторов, так что неудивительно, что именно под нее в основном пишутся игры и эмуляторы (около половины всех игр, которые можно скачать с www.linuxgames.ru, написаны именно под эту библиотеку). Такая популярность библиотеки обусловлена тем, что она поддерживает множество различных платформ, в том числе Linux, Windows, MacOS, *BSD, Solaris, Dreamcast(!). Более того, осуществлена поддержка видеодрайверов X11, SVGALib, Linux-fb, DirectFB, ggi, поэтому ее можно использовать как в иксах, так и в консоли. Впечатляет? Тогда обязательно ее установи. Хотя можно использовать входящий в каждый дистрибутив пакет и не скачивать исходники. Однако дистрибутивные пакеты обычно собраны с поддержкой иксов и звуковых серверов KDE (arts) и Gnome (esd), поэтому программы, работающие под SDL, будут требовать дополнительные либы, а это не есть хорошо. Поэтому мы соберем либу сами, оставив только самое необходимое. Берем последнюю версию с www.libsdl.org, распаковываем, заходим в каталог с исходниками и выполняем:

# ./configure --disable-joystick --disable-esd --disable-arts --disable-video-x11 --disable-dga --enable-video-directfb

# make

# make install

Все. Библиотека собрана, можно отдохнуть и поиграть в lbreakout2 ;). Теперь некоторые рекомендации по работе с либой. Если в качестве видеодрайвера использовать framebuffer, то в качестве драйвера мыши будет выступать gpm (сервер мыши для виртуальных консолей), поэтому, чтобы он работал сообща с SDL, необходимо запускать gpm с параметром "-R raw". Запуск gpm прописан в загрузочных скриптах, так что их придется немного поправить. Замечу, что при использовании в качестве видеодрайвера directfb такой проблемы не будет (будет другая проблема :). Вторую рекомендацию я дам по поводу настройки SDL. Ты уже нашел конфигурационный файл? Нет? Правильно. Его вообще нет ;). Все настраивается с помощью переменных окружения. Например, чтобы использовать directfb в качестве видеодрайвера и alsa в качестве аудиодрайвера, необходимо выполнить следующие команды:

Назад на стр. 068-094-1  Содержание  Вперед на стр. 068-094-3