Как разработать приложение DirectFB, не выходя из среды X. 11

Я пытаюсь разработать приложение GUI для встроенной платформы без каких-либо окон, и я делаю это с DirectFB, и это соответствует моим потребностям очень хорошо.

поскольку встроенный я разрабатываю для не настолько мощный, я бы очень хотел попробовать разработать на своем рабочем столе Ubuntu. Проблема в том, что Framebuffer конфликтует с X.org заставляя меня покинуть весь рабочий стол и выключение X.org просто чтобы увидеть результат моих изменений.

есть хороший framebuffer simulator, который соответствует моим потребностям? Qt имеет один, называемый QVFb, но он работает только для разработки приложений Qt, и VNC back-end DirectFB всегда сбой.

Итак, есть идеи?

6 ответов


DirectFB имеет бэкэнд X11.

$ sudo apt-get install libdirectfb-extra  # for Debian and Ubuntu, anyhow
$ cat ~/.directfbrc
system=x11
force-windowed

кроме того, DirectFB имеет бэкэнд SDL, а SDL имеет бэкэнд X11. Кроме того, SDL имеет бэкэнд GGI,а GGI имеет бэкэнд X. Это немного окольный путь, но он должен работать:)

я протестировал его с

$ SDL_VIDEODRIVER=directfb ffplay some_movie.avi

и получил хорошее окно 640x480 с воспроизведением мультимедиа и обработкой слоев и ввода DirectFB, поэтому я уверен, что это работает.


три предыдущих ответа-все хорошие предложения. Я бы предложил попробовать ответить эфемерным, потому что это самый простой. Для получения более подробной информации о настройке .directfbrc файл, проверьте "man directfbrc".

еще одна возможность-переключиться с X на другой виртуальный терминал (с помощью CTRL+ALT+F1), запустить программу directfb, а затем переключиться обратно X (с помощью CTRL+ALT+F7).


Я пришел использовать решение ephemient для запуска приложений DirectFB в среде chroot (целевая файловая система как любезность сборочного окружения) В дополнение к Xnest, отдельная среда X, которая работает в окне текущего X.

$ Xnest -ac :1 &
$ cd $TARGET_DIR # into the target file system root
$ DISPLAY=:1 sudo chroot . usr/bin/df_neo

таким образом, вы можете убедиться, что не только ваша установка directfb верна, но и все необходимые зависимости установлены внутри файловой системы chroot'Ed.


можно использовать Moblin Image Creator чтобы создать образ диска Moblin, который вы можете запустить внутри виртуальной машины, как QEMU. Затем можно протестировать приложение DirectFB внутри виртуальной машины.


вы можете разработать (т. е. редактировать и компилировать) свое приложение на рабочем столе Ubuntu и протестировать свое приложение на встроенной платформе, на которой оно предназначено для запуска.

Если встроенная платформа поддерживает сеть, вы можете уменьшить длину цикла редактирования-компиляции-тестирования, запустив приложение непосредственно из общего ресурса NFS.


вот хороший пример с qemu и directFB: