OpenWrt Forum Archive

Topic: Ilixi framework/accelerated directfb for OpenWRT/raspberry pi

The content of this topic has been archived on 13 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hi.

I ordered a touchscreen tft set for my raspberry pi - and yet, I don't know what I will do with it.. But for sure, graphic support is in my mind. First I thought about qt5, but it seems a bit overkill for openwrt.. But why not qt5 as well, but so far, there isn't a fully working port of qt5 for openwrt, so I decided to look further..

And found a project ilixi ( http://www.ilixi.org ) and thought that it's more openwrt style than qt5..
Check the website to find out what it is..

Anyway, for best support for ilixi I need to upgrade libdirectfb from 1.4.x to 1.7--
And I've done great progress, everything compiles just great- needed to add dependencies for libstdcpp and librt..
But finally my build fails.. When it checks for depended libraries; list says I am lacking
libdirect-1.4.so
libdirectfb-1.4.so
libfusion-1.4.so

Well, my package builds all these libraries, but with version 1.7..
I added a dirty hack to my libdirectfb-1.7 Makefile which symlinks 1.7 libraries to 1.4 libraries and like I was afraid of..
This didn't do the job.. So, what causes my build to be dependant of version 1.4?

(Last edited by jake1981 on 9 Oct 2013, 21:02)

Sorry for trouble - found it.. Had to remove references to directfb in staging_dir

Okay, whole sunday of working and progress has been made. I didn't start fresh, I took kleistpark packages to my working base.. ( http://ilixi.org/index.php?id=kleistpark ) - And by this, I ofcourse mean the source..

Then I did what I described earlier; update libdirectfb to 1.7..
Don't know what version is kleistpark packages supposed for-- since they definetly didn't compile easily.. After many patches, updates, and so on.. I finally have got something compiled and I could say that my work leaded to something, following is now compiled as packages:
-libdirectfb 1.7 ( with ONE )
-cairo
-clanbomber ( some kind of game to test directfb's functionality ? )
-dfbterm
-directfb-examples
-harfbuzz (library)
-libenchant
-libicu
-fusiondale
-fusionsound
-ilixi (libglesv2 disabled by patching)
-lite
-pixman
-sawman

And still got some more packages from kleistpark that I want to make work but unfortunately my time now runs out..

I had to add fontconfig from old tree to my build as it was dependency..

---
Can't say if any of my work actually works or does anything that could be seen by human eye on the hdmi screen of raspberry pi, as I haven't installed any of this stuff, but will try everything as soon as I have managed to compile all packages that I wanted to test.
If these packages aren't familiar to you, check out http://www.directfb.org -

Most of ffmpeg code in these files is using deprecated functions so I've been patching them to proper builds..
And makefile's of packages have been sometimes forced to work by some ugly hacks, so my work isn't ready to be included in the trunk any time soon, but if I get something that works; I will publish it somewhere, propably on the github.. Maybe someone else then could be a nice guy and clean up the Makefiles so they could be included in svn-- or maybe this stuff is better to stay "outside" as a external repository.. libdirectfb 1.7 includes ONE that should be available as an invidual package instead, but I was in a hurry so I just included one to same package.. Maybe this is going to stay out from openwrt trunk a long time because this stuff works only on minority of devices, I mean, I guess raspberry pi is propably only officially supported device with actual framebuffer..

Feel free to discuss about topic and I'll gladly share my progress if someone's interested (as soon as it's functional enough) - ilixi, qt5, X, so on are easily available for raspberry on raspbian and similar distributions, but I really don't think I need such bloated system, after all, I propably rather use my Mac if I need openoffice or if I want to play games or edit/watch videos, although, afaik XBMC on raspberry isn't all bad..

EDIT: Forgot to mention, flux needed to be installed on the host system, http://www.directfb.org/index.php?path=Main%2FDownloads
Didn't add it to buildroot, as it was small, just downloaded, compiled and installed it to /usr/bin..

EDIT2: Updated list - now I have everything compiling that I wanted.. Maybe I'll have tomorrow time to test this stuff smile

(Last edited by jake1981 on 7 Oct 2013, 19:44)

Couldn't sleep - had to try it smile

Partially works.. No accelerated/3d support..

fb_andi and fb_neo work just great..
ilixi-- well, needs to much work to make it work..

clanbomber2 works, except for sound..
Well, atleast I can provide graphics of some kind.. Maybe I am on to sumthin'..

Started my work fresh from the beginning and--

Now I have got directfb-git (1.8.0) compiled with support for acceleration (egl)..
Build requires toolchain with eglibc instead of uclibc and a development package based on raspberry pi firmware..

Test show'd earlier that unaccelerated directfb was able to animate on FPS 15.. So I am curious to see when I get this done, what will fps be on accelerated version..

Too bad I have to go work early, so I cannot stay wake to see if I get all my packages compiled ok and image produced so I could see.. Well, continues on tomorrow.. (Or later today, in case that I cannot sleep before I get to test this;)

(Last edited by jake1981 on 9 Oct 2013, 22:49)

One more thing- original kleistpark directfb was supposed to compile on to 2 targets: raspberry pi(=brcm2708) and x86.
X86 version was un-accelerated. This has been a lot of work and due to the fact that most useful applications seem to require acceleration - or if they don't.. User experience is bad (ilixi carcomputer for example was completely un-usable as un-accelerated since the screen went to monochrome mode and was failing to draw itself properly) or useless, I am going to forget x86 support.

AFAIK OpenWrt has never been a OS for gamers, maybe I can find some accelerated directfb games to bring a change to this wink Just kidding.. ClanBomber2 is already included in kleistpark if I want to test..

Progress stopped to libtool issues with cairo - Finally, I got it done by some trickery and then happened then I blew it..
I was supposed to remove some temporary files but I was in a wrong tty.. And ofcourse I had used rm -rf..
Therefore I erased allmost all my work.. Luckily I had some backups and was able to salvage some of my work, but what an awful drawback.. Now, I need to redo some of my work sad

I got it compiled, andi3d and other 3d functions don't perform, causes a network/input restarts constantlly sad
on andi I get 60fps.. Ilixi works, with problems; mouse/keyboard/eventX fails, system looses focus due to network/input restarts.. Multimode failing.. Surfaces failing..

Abandoning project for a while.. Maybe when directfb/openwrt is more prepared for raspberry pi..

The discussion might have continued from here.