Как разработать приложение DirectFB, не выходя из среды X.11
Я пытаюсь разработать приложение с графическим интерфейсом для встроенной платформы без каких-либо окон, и я делаю это с DirectFB, и это очень хорошо соответствует моим потребностям.
Поскольку встраиваемые мной разработки не настолько мощные, я действительно хотел бы попробовать разработать их на своем собственном рабочем столе Ubuntu. Проблема в том, что Framebuffer конфликтует с X.org, из-за чего я покидаю весь рабочий стол и выключаю X.org, чтобы увидеть результат моих изменений.
Есть ли хороший симулятор фреймбуфера, который соответствует моим потребностям? У Qt есть такая, которая называется QVFb, но она работает только для разработки приложений Qt, и серверная часть VNC DirectFB всегда падает.
Итак, есть идеи?
6 ответов
DirectFB имеет серверную часть X11.
Во всяком случае, $ sudo apt-get install libdirectfb-extra # для Debian и Ubuntu $ cat ~/.directfbrc Система =x11 форс-оконном
Кроме того, 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 (целевая файловая система предоставлена buildroot) в дополнение к 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.
Вы можете использовать Moblin Image Creator для создания образа диска Moblin, который затем можно запустить внутри виртуальной машины, такой как QEMU. Затем вы можете протестировать приложение DirectFB внутри виртуальной машины.
Вы можете разрабатывать (то есть редактировать и компилировать) свое приложение на рабочем столе Ubuntu и тестировать свое приложение на встроенной платформе, на которой оно предназначено для запуска.
Если встроенная платформа поддерживает работу в сети, вы можете сократить продолжительность цикла редактирования-компиляции-теста, запустив приложение непосредственно из общего ресурса NFS.
Вот хороший пример с qemu и directFB: