Коллеги!
Пожалуйста сориентируйте во времени и пространстве!
Как устроена Видеосистема Линукс и как она связана со framebuffer-ом?
Ситуация — собираю дистрибутив Линукс для отечественного компьютера.
Есть ядро Линукс, в ядре есть framebuffer. Он работает.
То есть, пингвин рисуется, консоль работает, можно ввести команду и она исполняется.
Что делать дальше, как сделать минимальный дистрибутив с графикой?
(Систему yocto знаю, собирал дистрибутивы для Интел и АРМ.)
Какие есть пути?
1) Если ограничиться framebuffer-ом, и не поднимать XServer, то что получится?
Нужно писать/использовать специальные программы, которые сами умеют работать с framebuffer-ом?
Откуда их брать, как их писать?
2) Вроде Qt можно собрать для работы с framebuffer-ом. Что получится в этом случае?
Придётся ограничиться программами написанными на Qt?
И что, каждую программу надо будет перекомпилировать на эту спец-Qt?
3) Таки поднять XServer.
Как его поднять? Ну, я понимаю, что его надо скомпилировать
Как ему сказать, чтобы он работал через framebuffer?
Кто-нибудь чем-нибудь подобным занимался?
Может какая книжка (статья) на эту тему есть?
Здравствуйте, alpha21264, Вы писали:
A>3) Таки поднять XServer.
Я бы поднял иксы.
A> Как его поднять? Ну, я понимаю, что его надо скомпилировать
A> Как ему сказать, чтобы он работал через framebuffer?
Начни с этого:
https://www.x.org/archive/X11R6.8.1/doc/fbdev.4.html
Можешь потренироваться на PC.
P.S. framebuffer без аппаратного ускорения графики может оказаться раздражающе медленным. Тем более, что насколько я понимаю, у отечественного компьютера процессор не из числа особо быстрых.
Здравствуйте, alpha21264, Вы писали:
A>Коллеги!
A>Пожалуйста сориентируйте во времени и пространстве!
A>Как устроена Видеосистема Линукс и как она связана со framebuffer-ом?
никак не связанна
A>Ситуация — собираю дистрибутив Линукс для отечественного компьютера.
A>Есть ядро Линукс, в ядре есть framebuffer. Он работает.
A>То есть, пингвин рисуется, консоль работает, можно ввести команду и она исполняется.
A>Что делать дальше, как сделать минимальный дистрибутив с графикой?
A>(Систему yocto знаю, собирал дистрибутивы для Интел и АРМ.)
A>Какие есть пути?
A>1) Если ограничиться framebuffer-ом, и не поднимать XServer, то что получится?
A> Нужно писать/использовать специальные программы, которые сами умеют работать с framebuffer-ом?
A> Откуда их брать, как их писать?
самому писать
A>2) Вроде Qt можно собрать для работы с framebuffer-ом. Что получится в этом случае?
A> Придётся ограничиться программами написанными на Qt?
A> И что, каждую программу надо будет перекомпилировать на эту спец-Qt?
придется ограничиваться, но не факт что у вас все получится
A>3) Таки поднять XServer.
A> Как его поднять? Ну, я понимаю, что его надо скомпилировать
A> Как ему сказать, чтобы он работал через framebuffer?
не надо ничего компилироваться
а для работы с фб нужно сконфигурировать сам икс сервер
A>Кто-нибудь чем-нибудь подобным занимался?
A>Может какая книжка (статья) на эту тему есть?
гугл вообще забит этим
как настроить Икс сервер для чайников, уже никто и примеров не пишет, молодежь уже с пленок это умеет
Здравствуйте, alpha21264, Вы писали:
A>Коллеги!
A>Пожалуйста сориентируйте во времени и пространстве!
A>Как устроена Видеосистема Линукс и как она связана со framebuffer-ом?
https://people.freedesktop.org/~marcheu/linuxgraphicsdrivers.pdf
A>Ситуация — собираю дистрибутив Линукс для отечественного компьютера.
A>Есть ядро Линукс, в ядре есть framebuffer. Он работает.
A>То есть, пингвин рисуется, консоль работает, можно ввести команду и она исполняется.
A>Что делать дальше, как сделать минимальный дистрибутив с графикой?
A>(Систему yocto знаю, собирал дистрибутивы для Интел и АРМ.)
A>Какие есть пути?
A>1) Если ограничиться framebuffer-ом, и не поднимать XServer, то что получится?
A> Нужно писать/использовать специальные программы, которые сами умеют работать с framebuffer-ом?
A> Откуда их брать, как их писать?
Как обычно с помощью google, можно более экзотично, например поставить gentoo и искать
пакеты поддерживающие флаг "fb" или как там он сейчас называется. mplayer например умеет
работать поверх framebuffer и links.
А писать их кстати очень просто, т.к. framebuffer это типа кусок видиопамяти доступный
напрямую, то есть открыли /dev/fb0 сдвинулись на 4 32 битных слова (допустим у вас
32 bpp) и записали 0xFF_FF_FF_FF и вот у вас пятый пиксель слева/сверху стал белым.
A>2) Вроде Qt можно собрать для работы с framebuffer-ом. Что получится в этом случае?
A> Придётся ограничиться программами написанными на Qt?
gtk+ тоже умеет поверх framebuffer
A> И что, каждую программу надо будет перекомпилировать на эту спец-Qt?
Да придется, но вы как-то смело задумываетесь о множестве программ,
зачем они будут нужны пользователю если у него нет windows manager,
то есть поработает он с одной программой, которую вы в автозапуск
добавили и все, как он другие-то запустит?
A>3) Таки поднять XServer.
A> Как его поднять? Ну, я понимаю, что его надо скомпилировать
A> Как ему сказать, чтобы он работал через framebuffer?
Запустить Xvfb и все. Xorg умеет работать поверх framebuffer.
Здравствуйте, Zhendos, Вы писали:
A>>3) Таки поднять XServer.
A>> Как его поднять? Ну, я понимаю, что его надо скомпилировать
A>> Как ему сказать, чтобы он работал через framebuffer?
Z>Запустить Xvfb и все. Xorg умеет работать поверх framebuffer.
Чё-то тут пишут,
https://en.wikipedia.org/wiki/Xvfb
что Xvfb только имитирует framebuffer
То есть, на экран он рисовать ничего не будет.
Я конечно могу влезть в исходники, чтобы он таки начал писать в видеопамять.
Но нет ли более простого решения?