2009-02-06 7 views
11

Sto provando a sviluppare un'applicazione GUI per una piattaforma incorporata, senza finestre di alcun tipo e lo sto facendo con DirectFB, e si adatta alle mie esigenze molto bene.Come sviluppare un'app DirectFB senza uscire dall'ambiente X.11

Dato che l'embedded che ho sviluppato non è così potente, mi piacerebbe davvero provare a sviluppare sul mio desktop Ubuntu. Il problema è che Framebuffer è in conflitto con X.org, causandomi l'interruzione dell'intero desktop e l'arresto di X.org solo per vedere il risultato delle mie modifiche.

Esiste un buon simulatore di framebuffer adatto alle mie esigenze? Qt ne ha uno, chiamato QVFb, ma funziona solo per lo sviluppo di app Qt e il back-end VNC di DirectFB va sempre in crash.

Quindi, qualche idea?

risposta

15

DirectFB ha un backend X11.

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

Inoltre, DirectFB ha un back-end SDL e SDL ha un backend X11. Inoltre, SDL ha un backend GGI e GGI ha un backend X. Questo è un po 'tortuoso, ma dovrebbe funzionare :)

ho provato con

$ SDL_VIDEODRIVER=directfb ffplay some_movie.avi

e ottenuto una bella finestra di 640x480 con i media di gioco e la manipolazione DirectFB stratificazione e di ingresso, quindi sono sicuro che questo funziona.

+0

forza-finestra davvero lavorato per me. Molte grazie! –

0

È possibile utilizzare Moblin Image Creator per creare un'immagine disco di Moblin, che è quindi possibile eseguire all'interno di una macchina virtuale come QEMU. È quindi possibile testare l'applicazione DirectFB all'interno della macchina virtuale.

0

È possibile sviluppare (ad esempio modificare e compilare) la propria applicazione sul desktop di Ubuntu e testare la propria applicazione sulla piattaforma integrata su cui è prevista l'esecuzione.

Se la piattaforma integrata supporta la connessione in rete, è possibile ridurre la lunghezza del ciclo di prova di compilazione eseguendo l'applicazione direttamente da una condivisione NFS.

+0

Questo è quello che sto facendo in questo momento, ma il processo richiede troppo tempo. –

1

Le tre risposte precedenti sono tutti buoni suggerimenti. Suggerirei di provare la risposta dell'efemo perché è la più semplice. Per ulteriori dettagli sulla configurazione del file .directfbrc, consultare "man directfbrc".

Un'altra possibilità potrebbe essere quella di passare da X a un altro terminale virtuale (utilizzando CTRL + ALT + F1), eseguire il programma directfb e quindi tornare indietro (utilizzando CTRL + ALT + F7).

+0

DirectFB funziona bene con i recenti contenuti X basati su KMS? – Spudd86

1

Sono venuto a usare la soluzione di ephemient per eseguire le applicazioni DirectFB all'interno di un ambiente chroot (filesystem di destinazione come per gentile concessione di buildroot) oltre a Xnest, un ambiente X separato che viene eseguito in una finestra del X. corrente

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

In questo modo è possibile garantire che l'installazione di directfb non sia corretta, ma anche tutte le dipendenze richieste siano installate nel file system di chroot.