2009-02-06 6 views
11

Ich versuche eine GUI-Anwendung für eine Embedded-Plattform zu entwickeln, ohne jegliche Fensterung, und das mache ich mit DirectFB, und das passt sehr gut zu meinen Bedürfnissen.Wie man eine DirectFB-Anwendung entwickelt, ohne die X.11-Umgebung zu verlassen

Da das Embedded, für das ich entwickle, nicht so mächtig ist, würde ich wirklich gerne versuchen, auf meinem eigenen Ubuntu-Desktop zu entwickeln. Das Problem ist, dass Framebuffer mit X.org in Konflikt steht und mich dazu veranlasst, den gesamten Desktop zu verlassen und X.org herunterzufahren, nur um das Ergebnis meiner Änderungen zu sehen.

Gibt es einen guten Framebuffer-Simulator, der meinen Bedürfnissen entspricht? Qt hat eine namens QVFb, aber es funktioniert nur für die Entwicklung von Qt-Apps, und das VNC-Back-End von DirectFB stürzt immer ab.

Also, irgendwelche Ideen?

Antwort

15

DirectFB hat ein X11-Backend.

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

Außerdem verfügt DirectFB über ein SDL-Backend und SDL über ein X11-Backend. Außerdem verfügt SDL über ein GGI-Backend und GGI über ein X-Backend. Das ist ein bisschen weitschweifig, aber es sollte funktionieren :)

Getestet habe ich es mit

$ SDL_VIDEODRIVER=directfb ffplay some_movie.avi

und bekam ein schönes 640x480 Fenster mit Medien spielen und DirectFB Handhabung Schichtung und Eingang, so dass ich bin sicher, dass das funktioniert.

+0

kraftFenster wirklich für mich gearbeitet. Danke vielmals! –

0

Sie könnten Moblin Image Creator verwenden, um ein Festplatten-Image von Moblin zu erstellen, das Sie dann in einer VM wie QEMU ausführen können. Sie können dann Ihre DirectFB-Anwendung in der virtuellen Maschine testen.

0

Sie könnten Ihre Anwendung auf Ihrem Ubuntu-Desktop entwickeln (d. H. Bearbeiten und kompilieren) und Ihre Anwendung auf der eingebetteten Plattform testen, auf der sie ausgeführt werden soll.

Wenn die eingebettete Plattform die Netzwerkunterstützung unterstützt, können Sie möglicherweise die Länge Ihrer Edit-Compile-Testschleife reduzieren, indem Sie die Anwendung direkt von einer NFS-Freigabe ausführen.

+0

Das mache ich gerade, aber der Prozess dauert zu viel Zeit. –

1

Die drei vorherigen Antworten sind alle gute Vorschläge. Ich würde vorschlagen, die Antwort von Ephemient zu versuchen, weil es die einfachste ist. Weitere Informationen zum Einrichten Ihrer .directfbrc-Datei finden Sie unter "man directfbrc". Eine andere Möglichkeit wäre, von X zu einem anderen virtuellen Terminal umzuschalten (mit STRG + ALT + F1), das Programm directfb auszuführen und dann X (mit STRG + ALT + F7) zurückzuschalten.

+0

Spielt DirectFB mit aktuellen KMS-basierten X-Dateien? – Spudd86

1

I kam ephemient Lösung zu laufen DirectFB Anwendungen innerhalb einer chroot Umgebung (Zieldateisystem als eine mit freundlicher Genehmigung von buildroot) zusätzlich zu Xnest, eine separaten X-Umgebung, die ausgeführt wird in einem Fenster der aktuellen X.

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

Auf diese Weise können Sie sicherstellen, dass nicht nur Ihre direkte Installation korrekt ist, sondern auch alle erforderlichen Abhängigkeiten innerhalb des chroot'ed-Dateisystems installiert sind.