Возможно вы искали: 'Shell Shock'

May 15 2025 19:12:15
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Графика в консоли Linux. (console video image gui linux patch boot)

Графика в консоли Linux. (console video image gui linux patch boot)

Ключевые слова: console, video, image, gui, linux, patch, boot, (найти похожие документы)

From: j1m <j1m at list.ru>
Newsgroups: http://www.linuxrsp.ru/
Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC)
Subject: Графика в консоли Linux.

Оригинал: http://www.linuxrsp.ru/artic/console-graphics.html

Графика в консоли Linux.


Сейчас многие предпочитают работать с X Window. И правда, зачем
напрягаться, выучивать сотни команд, когда можно легко все сделать в
KDE или Gnome с помощью различных конфигураторов. Возможно, это
результат продолжительного ядовитого воздействия Windows, возможно
стремление к ко всему красивому, ровному плавному, ко всему, что дает
X Window, возможно многим необходимо каждый день работать с
OpenOffice, возможно, да много чего возможно :). А ведь консоль, при
правильной настройке выглядит очень даже привлекательно, и с ее
помощью можно решить большинство задач, которые обычно принято решать
с помощью X.

Эта статья не для тех, кто не может без Mozilla и Sylpheed, и не для
тех, чей runlevel - 5 :), она для тех кто по каким-либо причинам или
не хочет или не может использовать X Window. Она для тех кто хочет
использовать все или почти все возможности графических программ в
консоли без взаимодействия с X Window.

Наверно многие мне возразят, мол зачем парится, ставить какое-то
дополнительное программное обеспечение, когда можно запустить X
Window, сделать, что хотел, затем ctrl+alt+backspace и ты опять
радуешься черному экрану и мигающему курсору, или поступить еще проще,
держа иксы загруженными и переключаться в них по мере надобности. Это
конечно все верно, но

во-первых: на моем pentium-233 32RAM иксы жутко тормозят, о KDE или
Gnome не может быть и речи, все-же некоторое время я работал в иксах,
используя fluxbox в качестве WM, но все время давал о себе знать
недостаток памяти,

во-вторых: все время запускать или держать в памяти иксы очень
накладно, хотя, если у тебя гиг оперативки, то это к тебе не относится
(также как и первый пункт),

в-третьих: зачем мне ставить иксы, если мне из графических приложений
нужны только jpeg-вьюер, видео-плейер и, иногда, графический браузер
(я обычно пользуюсь elinks), а работать мне удобнее в консоли,

в-четвертых: ну не нравятся мне иксы :).

Так что все, кто не согласен с первыми тремя пунктами делают startx,
остальные за мной, в дебри инета, на поиски программ и библиотек.
Итак, что нам нужно?

SDL (идет во со всеми дистрибутивами)
directFB
GGI (под нее я ничего хорошего не видел)
SVGAlib (я ее не использую)

Перед тем как выкачивать и компилить все эти пакеты необходимо
включить в ядро поддержку framebuffer'а. Возможно ваше ядро уже
поддерживает fb (здесь и дальше будем обозначать так framebuffer),
Стандартные ядра, идущие с дистрибутивами обычно скомпилированы с
поддержкой vesa-fb, если ваша карточка не поддерживает vesa 2.0 или вы
хотите использовать bootsplash (см. ниже) тогда идем на ftp.kernel.org
и качаем последнее стабильное ядро (на момент написания статьи его
номер был 2.6.4), также советую скачать патч, после наложения которого
появится возможность повесить wallpaper в консоли(!). Патч можно найти
по адресу:
ftp://ftp.suse.com/pub/people/stepan/bootsplash/kernel/bootsplash-3.1.4-2.6.3.diff
(патч для 2.6.3 ядра, но нормально ложится и на 2.6.4)
также необходимы утилиты:
ftp://ftp.suse.com/pub/people/stepan/bootsplash/rpm-sources/bootsplash/bootsplash-3.0.7.tar.bz2
(Вообще-то bootsplash изначально задумывался
для того чтобы показывать анимированную загрузку линукс, но я не вижу
в этом необходимости и покажу как использовать его для другой цели).

По умолчанию bootsplash работает через vesafb, но это легко исправить,
необходимо изменить несколько строк в самом
bootsplash-3.1.4-2.6.3.diff:

!!!ВНИМАНИЕ!!! Все это было протестировано только на sstfb
(voodoo1/2), так что ни за какие ваши действия ответственности я не
несу. Также хочу заметить то, что если ваша видеокарта поддерживает
vesa 2.0, то лучше ничего не менять и сразу перейти к наложению патча.
!!!ВНИМАНИЕ!!!

строка 107:
+extern struct fb_ops vesafb_ops;
меняем на:
+extern struct fb_ops sstfb_ops;
^^^^^^^^^
(это для voodoo1/2, также может быть radeonfb_ops, cirrusfb_ops, etc)

строка 598:
+ if (!vc_cons[unit].d || info->fbops != &vesafb_ops) {
меняем на:
+ if (!vc_cons[unit].d || info->fbops != &sstfb_ops) {
^^^^^^^^^
(опять-же для voodoo)

строка 2065:
+ depends on FRAMEBUFFER_CONSOLE && FB_VESA
меняем на:
+ depends on FRAMEBUFFER_CONSOLE && FB_VOODOO1
^^^^^^^^^^
или
+ depends on FRAMEBUFFER_CONSOLE

Дальше лезем в /usr/src/linux/drivers/video/sstfb.c (radeonfb.c, cirrusfb.c, etc),
находим строку:

static struct fb_ops sstfb_ops = {

меняем на целых четыре:

#ifndef CONFIG_BOOTSPLASH
static
#endif
struct fb_ops sstfb_ops = {

Также хочу заметить, что необходимо поменять дефолтовые установки для
разрешения, глубины цвета, частоты. (для sstfb по умолчанию выставлено
640x480-60), конечно можно поменять эти установки и после загрузки, с
помощью fbset, но тогда будут большие проблемы с bootsplash. Далее
приводятся действия по изменению этих параметров для voovoo1/2, для
других видеокарт это делается по аналогии. (если ваша видеокарта
поддерживает modedb, то видеорежим можно выставить во время загрузки,
как это сделать и какие видеокарты поддерживаются можно посмотреть в
/usr/src/linux/Documentation/fb/modedb.txt).

Открываем все тот-же /usr/src/linux/drivers/video/sstfb.c

строка 83:
#define DEFAULT_MODE 3
меняем на:
#define DEFAULT_MODE 4

строка 148:

#elif ( DEFAULT_MODE == 3 )
{ /* 640x480@60 , 16bpp glide default ?*/
640, 480, 640, 480, 0, 0, 16, 0,
{11, 5, 0}, {5, 6, 0}, {0, 5, 0}, {0, 0, 0},
0, 0, -1, -1, 0,
39721 , 38, 26 , 25 ,18 , 96 ,2,
0, FB_VMODE_NONINTERLACED };

дописываем после этих строк:

#elif ( DEFAULT_MODE == 4 )
{ /* 800x600@82 */
800, 600, 800, 600, 0, 0, 16, 0,
{11, 5, 0}, {5, 6, 0}, {0, 5, 0}, {0, 0, 0},
0, 0, -1, -1, 0,
17460, 160, 64, 30, 4, 64, 6,
0, FB_VMODE_NONINTERLACED };

Это для режима 800x600-82@16, тайминги берутся из /etc/fb.modes.
Хочу заметить, что эти значения заносятся в структуру
имя-драйвера_default, например:

static struct fb_var_screeninfo sstfb_default = {
...
... };

Все, теперь можно наложить патч:

cp bootsplash-3.1.4-2.6.3.diff /usr/src/linux
cd /usr/src/linux
patch -p1 --dry-run < bootsplash-3.1.4-2.6.3.diff
если ошибок нет, тогда:
patch -p1 < bootsplash-3.1.4-2.6.3.diff
make menuconfig (xconfig не предлагаю, читай выше)

Необходимо встроить все эти параметры в ядро (т.е. не модулем):

Device Drivers -> Block Devices -> Loopback device support
Device Drivers -> Block Devices -> RAM disk support
Device Drivers -> Block Devices -> Initial RAM disk (initrd) support
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
Device Drivers -> Graphics support -> Bootsplash configuration -> Bootup splash screen

Хочу заметить, что для того, чтобы включить последний пункт,
необходимо включить VESA VGA graphics support или специфичный для
вашей видеокарты драйвер (в том случае, если патч был подогнан под
вашу видеокарту).

После того как конфигурация ядра будет закончена:

make bzImage && make modules && make_modules_install

После успешной компиляции:

cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.4-splash

Теперь. когда у нас есть ядро с поддержкой bootsplash, необходимо
установить утилиту splash

tar xvjf splashutils.tar.bz2
(вообще-то гораздо удобнее работать с архивами при помощи mc)
cd bootsplash-3.0.7/Utilities
make splash

Далее можно скопировать получившийся на выходе splash в /sbin

cp splash /sbin

Итак, теперь необходимо настроить bootsplash. Создаем файл
/etc/bootsplash/splash.cfg и пишем в него следующее:

# версия :)
version=3
# показывать ли wallpaper
state=1
# цвет букв
fgcolor=3
# цвет, который будет прозрачным
bgcolor=0
# отступ от каждого края по оси X и Y в пикселях,
# изменение этих параметров вызвало у меня
# проблемы с загрузкой и запуском графических
# приложений
tx=0
ty=0
# ширина и высота экрана с учетом отступов
tw=800
th=600
# путь до изображения в формате jpeg
jpeg=/путь/до/изображения

Замечу, что изображение должно быть точно такого-же разрешения, что и
экран.

Далее пишем скрипт splash.sh:

#!/bin/sh
if [ "$1" = "now" ]; then
for i in 0 1 2 3 4 5 6; do
splash -s -u $i /etc/bootsplash/splash.cfg
done
else
splash -s -f /etc/bootsplash/splash.cfg > /boot/initrd.splash
fi

Запуск этого скрипта с параметром now приведет к смене фонового
изображения на первых 6 консолях, запуск без параметров приведет к
записи изображения в /boot/initrd.splash, чтобы фоновый рисунок
устанавливался во время загрузки.

Теперь необходимо переконфигурировать lilo, открываем /etc/lilo.conf и
пишем туда примерно следующее:

boot = /dev/hda
lba32
prompt
timeout = 150
append = "video=ваш-видеодрайвер"

# Оставляем путь для отката на старое
# ядро в случае, если что-то пойдет не так
image = /boot/vmlinuz-2.6.4
root = /dev/hda2
label = Linux
read-only

image = /boot/vmlinuz-2.6.4-splash
root = /dev/hda2
label = Linux-new
read-only
initrd = /boot/initrd.splash


Если, при конфигурировании ядра вы выбрали VESA VGA graphics support
вместо специфического видеодрайвера, то строка append =
"video=ваш-видеодрайвер" не нужна, а вместо нее необходимо прописать
что-то типа vga = 316 (подробнее см.
/usr/src/linux/Documentation/fb/vesafb.txt)

Все, теперь необходимо выполнить команду lilo, перезагрузиться, и
любоваться красивой консолью ;)

Итак, можно перейти к установке библиотек.


SDL (http://www.libsdl.org)
--------------------

SDL расшифровывается как Simple DirectMedia Layer. Под эту библиотеку
в основном пишутся игры и различные эмуляторы приставок (для этого она
и была создана), также mplayer довольно шустро работает через нее. SDL
может осуществлять видеовывод как через иксовый видеодрайвер, так и
через fb, directfb, ggi, что позволяет использовать ее как в иксах,
так и в консоли. Также поддерживается аппаратное 3d-ускорение
посредством OpenGL. SDL входит в любой дистрибутив, но лучше скачать и
скомпилировать самому, т.к. версия SDL, идущая с дистрибутивами обычно
требует для работы установленных в системе некоторых библиотек X11 а
также звуковых серверов от KDE (arts) и Gnome (esd), а собрать
библиотеку можно без поддержки X11, arts и esd, оставив только
frambuffer для видеовывода и oss/arts для аудиовывода. Я не буду здесь
расписывать все шаги установки, т.к. все стандартно:

./configure --help
./configure
make
make install

Замечу лишь, что не стоит использовать в качестве видеовывода directfb
(хотя мы его еще не установили :)) Когда я впервые запустил программу
в консоли, написанную под SDL, я долго не мог заставить работать мышь,
поэтому хочу избавить вас от мучений, и сказать, что все очень просто,
необходимо запускать gpm с флагом "-R raw" (без кавычек естественно
:)). Второе, что меня озадачило, как эту библиотеку настраивать, ни
конфигурационных файлов, НИЧЕГО нет, оказалось, что настраивается она
посредством глобальных переменных, самые важные из которых:

SDL_VIDEODRIVER=videodriver
(указывает, какой видеодрайвер следует использовать
может быть: fbcon, directfb, ggi, x11 и т.д.)

SDL_AUDIODRIVER=audiodriver
(тоже, для аудиодрайвера, dma - это oss, с использованием
dma-режима, может быть: dsp, dma, alsa, esd, arts и т.д.)

у меня в /etc/profile прописано:

export SDL_VIDEODRIVER=fbcon
export SDL_AUDIODRIVER=dma


Что я использую с SDL:

mplayer (http://www.mplayerhq.hu) Как я уже говорил очень шустро работает
через SDL, вообще-то самый быстрый видеовывод осуществляется через
vesa, но необходимо чтобы карточка поддержи- вала vesa2. Я на своем
pentium-233 смотрю все новые фильмы в mpeg и divX.

zsnes (http://zsnes.sourceforge.net) Очень хороший эмулятор Super Nintendo

jjffe (http://www.jaj22.demon.co.uk) reverse engineered версия elite3: first
encounters

directFB (http://www.directfb.org)

Относительно новая библиотека. Создает надстройку над стандартным fb
(в этом я не уверен, т.к. directfb может использовать SDL), добавляет
множество новых возможностей, поддерживает современные 3d-ускорители,
имеет интерфейс с opengl (необходимо устанавливать дополнительные
пакеты), использует свои драйвера для клавиатуры и мыши, даже
присутствует аудиодрайвер (поставляется отдельно), имеет более удобный
программный интерфейс (в общем это тоже самое, что использовать printf
вместо write :)), ко всему этому добавлю, что мне редко удавалось
заставить нормально работать программы, написанные, с использованием
fb, но все теже программы, скомпилированные под directfb нормально
работали.

Компиляция также стандартна, для видеовывода лучше использовать fbdev.
Настройка осуществляется посредством конфигурационного файла
/etc/directfbrc (есть возможность указать другое местоположение
файла). Вот мой /etc/directfbrc:

# видеодрайвер
system=fbdev

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

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

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

# режим отладки
#debug

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

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

# протокол работы с мышью:
# MS - Micro$oft
# MS3 - Micro$oft для трехкнопочной мыши
# MouseSystems - MouseSystems ;)
mouse-protocol=MS3

Больше об опциях конфигурирования можно узнать, набрав man directfbrc.

У меня и с этой библиотекой были проблемы с мышью, не работала мышь
для COM-порта, которая висела на /dev/tts/1 (/dev/ttyS1), проблема
решилась так: ln -s /dev/tts/1 /dev/mouse


Что я использую с directfb:

dfbsee (можно взять с http://www.directfb.org) Ма-а-аленький вьюер
графических файлов, умеет устраивать слайд-шоу, масштабировать
изображения и все :), также умеет проигрывать видео, но эту
возможность я не пробовал.

links (http://atrey.karlin.mff.cuni.cz/~clock/twibright/links) Этот,
изначально текстовый браузер умеет работать в графическом режиме, а
также поддерживает ssl и javascript.

Также хотел включить в статью описание gtk-directfb (с ее помощью
можно запускать приложения написанные под gtk+ в консоли!), но так и
не смог заставить ее работать, если кому удастся привести ее в рабочее
состояние напишите мне, на j1m at list.ru, саму библиотеку можно скачать
с http://www.directfb.org


GGI (http://www.ggi-project.org)
-------------------------

GGI - General Graphics Interface Про эту библиотеку я не много знаю,
она, также как и directfb имеет собственные драйвера для клавиатуры и
мыши, которые, кстати, идут в отдельном пакете - GII - General Input
Interface и перед сборкой GGI сначала следует собрать GII. Также эта
библиотека может использовать в качестве видеовывода fb и directfb, а
сама она может использоваться SDL для видеовывода. Вот и все что я
могу сказать про эту библиотеку. Ничего хорошего я под нее не видел
(да и плохого мало :)).

Что я использую с GGI:

Ничего! Не видел ничего кроме quake, hexen и ggv, этот ggv представлял
из себя очень урезанный вариант графического вьюера zgv (работает
через SVGALib).

Может я ошибаюсь (очень хочется надеяться), но по-моему под эту
библиотеку уже ничего не пишется (если кто хочет переубедить меня -
мыло вверху).


SVGALib
-------

По-моему одна из первых графических библиотек, поэтому под нее успел
накопится софт. Про нее я ни чего не скажу, включил ее в обзор, чтобы
читатель знал о ее существовании :)


THE END

Вот и все, что я хотел сказать, не много, но я не хотел описывать все
тонкости работы графической подсистемы в линукс, я всего лишь хотел
рассказать о том, какие есть пути для преодоления графического барьера
в консоли, ведь когда я впервые отказался от иксов (удалил их с винта)
у меня не было не одного работающего в консоли графического
приложения, я даже не знал, что SDL может работать с fb :)

Критика приветствуется, все замечания, вопросы, etc направляйте по
адресу j1m at list.ru
1994 Прочтений •  [Графика в консоли Linux. (console video image gui linux patch boot)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Графика в консоли Linux. (console v... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка