Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: SDL. проблема с графикой в консоли  (Прочитано 17438 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Lavina
Гость
« : 23-03-2006 06:25 » new

нужно под консолью Линукса нарисовать пару тройку линий и текст покрупнее...
 в инете нашел про SDL и SVGAlib
 выбрал SDL - так как пишут что там глюков поменьше да и вообще либа свежая - и опыт работы с ней думаю пригодиться в дальнейшем больше
 прочитал кучу инфы, которую смог найти Яndex..
 пробовал работать со стандартным, уже установленным пакетом - но там идет поддержка Х, а мне нужна графика в консоли - удалил стандартный пакет (удалил файлы SDL из /usr/lib и /usr/include/SDL) и установил скачанный пакет SDL-1.2.9
 устанавливал так:
 # ./configure --disable-joystick --disable-esd --disable-arts --disable-video-x11 --disable-dga --enable-video-fbcon
 #make
 #make install

 новые файлы записались в /usr/local/lib и /usr/local/include/SDL,
 добавил строку /usr/local/lib в файл /etc/ld.so.conf

 код программы:
Код:
 #include "SDL.h"    
 #include <stdio.h>
 int main() {
     printf("Initializing SDL.\n");
     if((SDL_Init(SDL_INIT_VIDEO)==-1)) {
         printf("Could not initialize SDL: %s.\n", SDL_GetError());
         exit(-1);
     }
     printf("SDL initialized.\n");
     printf("Quiting SDL.\n");
     SDL_Quit();
     printf("Quiting....\n");
     return 0;
 } 

Makefile:
Код:
TARGET = test1 
 LIBS = -L/usr/local/lib -lSDL
 IDIR = -I/usr/local/include/SDL
 CC = g++ -O3
 
 all:
    $(CC) -c mytest.cpp -o test1.o $(IDIR)
    $(CC) -o $(TARGET) test1.o $(LIBS)
    strip $(TARGET)
 clean:
    rm -f ./*.o $(TARGET) core
 

компиляция и линковка проходят нормально, без ошибок и предупреждений.
 команда ldd ./test1 выдает следующее:
 
    libSDL-1.2.so.0 => /usr/local/lib/libSDL-1.2.so.0 (0x4002c000)
     libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4007d000)
     libm.so.6 => /lib/tls/libm.so.6 (0x40130000)
     libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40152000)
     libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
     libdl.so.2 => /lib/libdl.so.2 (0x4015a000)
     libpthread.so.0 => /lib/tls/libpthread.so.0 (0x4015e000)
     /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
     

результат запуска программы:
 Initializing SDL.
 Could not initialize SDL: No available video device.


так же пробовал различные варианты:
 
export SDL_VIDEODRIVER=fbcon
 DISPLAY=:0
 export DISPLAY


результат такой же =(
 поскажите как правильно инициализировать графику под консолью с библиотекой SDL...
 что в данном случае означает No available video device. ? и как это исправить

можт нужно как-то саму систему настроить???
 можт чего установить еще???
 я так понял fbcon - это фрэйм буфер консоли. можт его как-то настроить нужно???
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 23-03-2006 08:11 » 

Lavina, давай начнем издалека:
1) какая цель?
2) какая консоль (/dev/tty* или любой терминал)?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Lavina
Гость
« Ответ #2 : 23-03-2006 09:38 » 

1. Собирается минимальная система на основе Линукса для загрузки с флешки (примерно 30мб). в данной системе нет Х-сервера, но необходимо выводить на экран график. (Система АСУ ТП - на экране график температур за час),
2. В данной системе будет 3 терминала. Хотелось бы чтобы при загрузки системы автоматически запускался данный проект и рисовался необходимый график. Скорее всего проект будет запускаться автоматически на первом терминале.

Хотелось бы получить графические возможности, аналогичные возможностям графического режима M$ DO$.
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 23-03-2006 11:35 » 

А к гуглу с описанием ошибки пробовал обращаться?

Среди первых результатов запроса Could not initialize SDL: "No available video device"
http://www.devolution.com/pipermail/sdl/2001-October/039647.html

Из него следует как минимум один вопрос: ты пробовал под рутом прогнать тестовые примеры из поставки SDL ?
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Lavina
Гость
« Ответ #4 : 23-03-2006 12:04 » 

к google не обращался
обращался к Яndex

все тестовые примеры прогнал, вроде всё работает
вот рез-ты работы примера "testver"
Compiled with SDL 1.2 or newer
Compiled version: 1.2.9
Linked version: 1.2.9


по моему всетаки SDL нормально настроен, а проблема вся с фреймбуффером.
я в Линуксе пишу совсем недавно - так что не бейте сильно за глупые вопросы..
мне так кажется что этот самый фреймбуфер я не включил....
может быть в этом проблема??
я почему то думал что он уже включен
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 23-03-2006 14:36 » 

Драйвер fbcon установлен?  Девайс /dev/fbcon в системе есть?
Под каким пользователем запускаешь программу?  Запускаешь из Х или из консоли tty?
« Последнее редактирование: 23-03-2006 14:47 от npak » Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Lavina
Гость
« Ответ #6 : 27-03-2006 06:43 » 

команда fbset не запускается
/dev/fbcon - не нашел
есть только /dev/fb0 (fb1, fb2,..., fb31)
версия ядра 2.4.20
(смотрел еще на 2.4.26 - там тоже fbcon нет, но там fbset запускается)

запускаю прогу из консоли под рутом
Записан
Lavina
Гость
« Ответ #7 : 05-04-2006 10:39 » 

вроде всё заработало
правда пришлось другую ось поставить =)
теперь вот изучаю Knoppix (ядро 2.4.26)
зато вся графика в консоле прекрасно работает

всем спасибо за оказанную помощь
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 05-04-2006 15:07 » 

Lavina, ОС та же - дистрибутив другой.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines