Как разработать приложение DirectFB, не выходя из среды X.11
Я пытаюсь разработать GUI-приложение для встроенной платформы без какого-либо окна, и я делаю это с DirectFB, и это очень подходит для моих потребностей.
Так как встроенный я разрабатываю для не настолько мощный, я бы очень хотел попытаться разработать на своем рабочем столе Ubuntu. Проблема заключается в том, что Framebuffer противоречит X.org, заставляя меня покинуть весь рабочий стол и выключить X.org, чтобы увидеть результат моих изменений.
Есть ли хороший симулятор фреймбуфера, который соответствует моим потребностям? Qt имеет один, называемый QVFb, но он работает только для разработки приложений Qt, а back-end VNC DirectFB всегда сбой.
Итак, любые идеи?
Ответы
Ответ 1
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, поэтому я уверен, что это работает.
Ответ 2
Три предыдущих ответа - все это хорошие предложения. Я предлагаю попробовать эфемерный ответ, потому что он самый простой. Подробнее о настройке файла .directfbrc см. "Man directfbrc".
Еще одна возможность - переключение с X на другой виртуальный терминал (с использованием CTRL + ALT + F1), запуск вашей программы directfb и последующее отключение X (с помощью CTRL + ALT + F7).
Ответ 3
Я пришел к использованию эфемерного решения для запуска приложений 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'ed.
Ответ 4
Вы можете использовать Moblin Image Creator для создания образа диска Moblin, который затем можно запустить внутри виртуальной машины, например QEMU. Затем вы можете протестировать ваше приложение DirectFB внутри виртуальной машины.
Ответ 5
Вы могли бы разработать (например, отредактировать и скомпилировать) свое приложение на своем рабочем столе Ubuntu и протестировать свое приложение на встроенной платформе, для которой он предназначен.
Если встроенная платформа поддерживает работу в сети, вы можете сократить длину цикла редактирования-компиляции, запустив приложение напрямую из общего ресурса NFS.
Ответ 6
Вот хороший пример с qemu и directFB: