Buildroot:GSoC2014 Multimedia
Contents
Boards
From the 2013 Google Summer of Code:
- Pandaboard (TI OMAP4)
3D acceleration: normally supported by the ti-gfx package. Should work with EGL, support under X.org unknown.- No more upstream support (in TI SDK or IMG DDK) since a while. No need to spend time on it right now.
- video decoding acceleration: unknown.
- Misc: how does gst-omapfb fit in the picture?
- BeagleBoneBlack (TI AM335x)
- 3D acceleration: normally supported by the ti-gfx package. Should work with EGL, support under X.org unknown. Was not tested last year, since 3D acceleration was not ready yet at the time.
- 3D acceleration OK in framebuffer. X.org support is not tested in latest TI SDK versions, didn't try it for now.
- video decoding acceleration: unknown.
- 3D acceleration: normally supported by the ti-gfx package. Should work with EGL, support under X.org unknown. Was not tested last year, since 3D acceleration was not ready yet at the time.
- BeagleBoard XM (TI OMAP3)
- 3D acceleration: normally supported by the ti-gfx package. Should work with EGL, support under X.org unknown.
- video decoding acceleration: unknown.
- SABRE (Freescale i.MX6)
- 3D acceleration: normally supported by the gpu-viv-bin-mx6q package. Should work with EGL. For X.org, there are some patches pending.
- video decoding acceleration: unknown.
- Wandboard (Freescale i.MX6)
- 3D acceleration: normally supported by the gpu-viv-bin-mx6q package. Should work with EGL. For X.org, there are some patches pending.
- video decoding acceleration: unknown.
- Cubieboard (Allwinner)
- 3D acceleration: normally supported by the sunxi-mali package. Should work with EGL, support under X.org unknown.
- video decoding acceleration: normally supported by the sunxi-cedarx package. Not sure with what they are interfaced, though.
- ODROID-U2 (Samsung Exynos)
- 3D acceleration: not done
- video decoding acceleration: not done
To buy or get sponsored:
- An x86 platform with an Intel card (to test full OpenGL support in Mesa)
- Minnowboard Max could be a candidate, see http://www.minnowboard.org/meet-minnowboard-max/
- Thomas has requested sponsoring from CircuitCo on this topic.
- An x86 platform with an AMD APU (ditto mesa3d)
- A RaspberryPi:
- 3D acceleration: through the rpi-userland package. Works with EGL, support under X.org unknown.
- video decoding acceleration: through the rpi-userland and gst-omx packages.
Bonus:
- An x86 platform with an NVidia card
- using nouveau (to test full OpenGL support in Mesa)
- using the NVidia blob (to be packaged)
TODO
- Support OpenGL on Exynos
- Make sure OpenGL on Beagle Bone Black is working
- OK.
- Help mainlining all the pending Buildroot patches related to multimedia
- #278299 : sunxi-cedarx: bump to newer version, use armel2 binaries, add demo
- #278300 : libpng12: new package (needed for #278304)
- #278301 : libpng: ensure libpng12 is installed before libpng (needed for #278300)
- #278304 : glmark2: new package
- WIP: starting point.
- #278305 : mesa3d-demos: new package
- WIP. Currently didn't find a driver to run it.
- #315600 : Qt4: adapt for X11
- #336028 : qt5declarative: Reduce dependencies to GLes2 only
- #336031 : Add support for Vivante xdriver
- #336827 : libva: new package
- In Bernd/Yann' series : http://lists.busybox.net/pipermail/buildroot/2014-June/099210.html
- #336825 : libva-intel-driver: new package
- In Bernd/Yann' series : http://lists.busybox.net/pipermail/buildroot/2014-June/099213.html
- #336830 : ffmpeg: Add libva support
- In Bernd/Yann' series : http://lists.busybox.net/pipermail/buildroot/2014-June/099214.html
- #336824 : libglu: new package
- In Bernd/Yann' series : http://lists.busybox.net/pipermail/buildroot/2014-June/099209.html
- #336828 : libglew: new package
- In Bernd/Yann' series : http://lists.busybox.net/pipermail/buildroot/2014-June/099212.html
- #336826 : sdl: Add new dependency libglu for opengl support
- In Bernd/Yann' series : http://lists.busybox.net/pipermail/buildroot/2014-June/099207.html
- Add support for etnaviv (i.MX6 open-source OpenGL implementation)
- Create new packages for (no specific ordering):
- x86-video-fbturbo driver, see https://github.com/ssvb/xf86-video-fbturbo
- glamor for 2D acceleration using OpenGL, see: http://www.freedesktop.org/wiki/Software/Glamor/
- Qt5 Cinematic Experience demonstration, see http://quitcoding.com/?page=work
- demo/benchmark application, see https://github.com/prabindh/xgxperf
- gtk3
- WIP.
- Update Webkit
- WIP: still have a make hang in parallel build with make 3.81.
Weekly reports
Week 21
Week 22
Day 1
- OpenGL on BeagleBone Black
- Defconfig based on beaglebone_defconfig with mainly ti-gfx
- Kernel boot: OK
- Init: OK
- Fail to load ti-gfx module
- track: fbset missing
- Patchwork
- #278305 (mesa3d-demos: new package): updating, currently not working
Day 2
- OpenGL on BeagleBone Black
- Still can't load ti-gfx module
- Adding fbset eliminated of course one error
- now /dev/fb0 is not found
- Still can't load ti-gfx module
- Patchwork
- #278305 (mesa3d-demos: new package): updated and rebased on master. Testing build for x86 failed :
- with DRI i965 driver (depends on X.org and provides full libgl with mesa3d): failed because it needs glew (not yet packaged in BR).
- with Gallium nouveau driver (provides only libgles and libegl with mesa3d): failed due to linking errors for xdemos/* binaries. No refererences to all OpenGL functions (mesa3d build fine, libs are installed, correct PATH).
- at least glew is a dependency for full OpenGL/X.org demos.
- #278305 (mesa3d-demos: new package): updated and rebased on master. Testing build for x86 failed :
Day 3
- OpenGL on BeagleBone Black
- Still can't load ti-gfx module
- forget to select again OMAP DSS driver between two configs... But even with it /dev/fb0 is still missing.
- Still can't load ti-gfx module
- Patchwork
- #278305 (mesa3d-demos: new package): testing build for x86 was not a very good idea, as the support for mesa3d, especially on x86, is very recent and untested. Next builds will be done on RPi's OpenGL implementation.
- build fine for RPi
- no problem with the framebuffer, tested some non OpenGL program
- but failed to execute es2gears_screen (mesa3d-demos) with error "EGLUT: EGL_MESA_screen_surface is not supported".
- #278305 (mesa3d-demos: new package): testing build for x86 was not a very good idea, as the support for mesa3d, especially on x86, is very recent and untested. Next builds will be done on RPi's OpenGL implementation.
Day 4
- OpenGL on BeagleBone Black
- have to select FB_DA8XX_TDA998X in kernel config to have /dev/fb0
- Still can't load ti-gfx modules, problem with symbols exportation. Have those errors :
- pvrsrvkm: Unknown symbol v7_dma_map_area (err 0)
- pvrsrvkm: Unknown symbol v7_dma_flush_range (err 0)
Day 5
- OpenGL on BeagleBone Black
- ti-gfx modules are loaded, have to apply this patch : https://github.com/RobertCNelson/stable-kernel/blob/b00edc3576118e9ed3e987f9a2a3499b7dd792f5/patches/omap_sgx/0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch
Day 6
- OpenGL on BeagleBone Black
- ti-gfx OpenGL demos run fine in framebuffer, it's OK
- sent patches to improve OpenGL support on BBB and fix fbset dependency for ti-gfx
- Patchwork
- #278305 (mesa3d-demos: new package): no solution to run it on RPi.
Week's summary
OpenGL on BBB is supported out of the box in framebuffer, demos run fine
Week 23
Day 1
- ti-gfx: bump SDK version to 5_01_01_01, tested on BBB, patch sent
- updating package/webkit to last version
Week's summary
- bump WebKit to 2.4.3
- need Pango >= 1.30.0
- try Pango 1.36.3 (last version): fails, error during reconfigure: "gtk-doc.make:270: error: HAVE_GTK_DOC does not appear in AM_CONDITIONAL". Seems to need gtk-doc-am for an obscure raison. No patch yet.
- try Pango 1.30.1: OK. Build fine, good enough for WebKit.
- bump Pango to 1.30.1
- enable EGL/GLES2 support fails. Doesn't find EGL/egl.h while it is there (finds well GLES2/gl2.h).
- disable acceleration for now
- need Pango >= 1.30.0
- had to provide again AR_FLAGS="cru" in WEBKIT_CONF_ENV to prevent ar to make thin archives and fix the error: `x' cannot be used on thin archives.
- have a strange deadlock with parallel make, currently only on the build server (builds fine with -j8 on my laptop). make block and freeze on libWebCoreSVG.la (while: CXXLD libWebCoreSVG.la). Fine with -j1 (well, if >10 hours build time is fine). Is it the make version? Will try in a Debian chroot.
- GTK3: new package
- still some errors I resolve step by step.
Week 24
Day 1
- bump WebKit to 2.4.3
- the problem for finding EGL/egl.h only occurs with rpi-userland for now. With ti-gfx it's found.
- libXcomposite and libXdamage are also needed with GLES/EGL (not only GL as previously).
- the problem for finding EGL/egl.h only occurs with rpi-userland for now. With ti-gfx it's found.
Week's summary
- test ti-gfx on Pandaboard: Pandaboard (and OMAP4 in general) is no longer supported by the SDK since a while (a version 4_04_XX_XX). As Pandaboard is used less and less and that there is no viable solution, this topic is abandoned for now.
- test ti-gfx on Bragleboard xM: for now I have an error during the compilation of the kernel's module:
/home/hadrienb/buildroot/output/build/ti-gfx-5_01_01_01/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c:
In function ‘OMAPLFBWaitForVSync’:
/home/hadrienb/buildroot/output/build/ti-gfx-5_01_01_01/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c:180:92:
error: ‘struct omap_dss_device’ has no member named ‘output’
#define OMAP_DSS_MANAGER(man, dev) struct omap_overlay_manager *man =
(dev) != NULL ? (dev)->output->manager : NULL
^
/home/hadrienb/buildroot/output/build/ti-gfx-5_01_01_01/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c:821:2:
note: in expansion of macro ‘OMAP_DSS_MANAGER’
OMAP_DSS_MANAGER(psDSSMan, psDSSDev);
- bump of imx-lib: Gary Bisson sent patches and I was not as advanced as he. I will test his next series.
- webkit: still not found a solution for the parallel make hang with make 3.81.
- libgtk3: need to bump libglib2 and pango. Have an error for pango related to font backend not found.
Week 25
Day 1
- libgtk3
- pango OK: HarfBuzz is needed to build Pango. Configure does not return an error if HarfBuzz is missing, but without HarfBuzz it can't enable any backends.
- cairo: patch to add freetype support
- libgtk3: still patching to build host-libgtk3. Patching to reduce dependencies (gdk backends) for host-libgtk3
- Branch here: https://github.com/Eksel/buildroot/tree/libgtk3
Day 2
- libgtk3
- first series sent to bump libglib2 and pango, and add freetype support to cairo
- WIP for the patch wich reduce dependencies for host-libgtk3
Day 3
- libgtk3
- looked at Eric le Bihan's branch to add libgtk3: https://github.com/elebihan/buildroot/tree/libgtk3-support
- will adapt Eric's way of building host-libgtk3 without a patch
- v2 of series sent
- still a configure error: Package cairo-gobject was not found
Day 4
- libgtk3
- cairo: add gobject support (libglib2 dependency)
- libgtk3: build error: "cairo.h" No such file or directory. No explanation for now.
- test Eric's way of building host-libgtk3
Day 5
- libgtk3
- finally builds!
- added at-spi-core and at-spi-atk as at-spi-atk is a dependency for GTK3's accessibility module.
- still have Eric's workaround for alignment test failure in at-spi-core. Need a better solution.
- for all versions of at-spi-core and at-spi-atk > 2.10.2, have this error:
Applying buildroot-libtool-v2.4.patch using patch:
patching file ltmain.sh
Hunk #1 FAILED at 1416.
Hunk #2 FAILED at 2962.
Hunk #3 succeeded at 7964 with fuzz 2 (offset 1281 lines).
Hunk #4 succeeded at 10554 (offset 1297 lines).
2 out of 4 hunks FAILED -- saving rejects to file ltmain.sh.rej
Patch failed! Please fix buildroot-libtool-v2.4.patch!