BeagleBox: SGX (openGL support) requires softfp if you build your own toolchain.


I've got BeagleBox booting just fine now and have been hacking my way through various releases of the SGX package in order to get opengl support for the board.  The latest release, 4_06_00_03, makes it possible to build the required kernel drivers and demo applications fairly easily.  But there are caveats.

First, the sgx package has binary libraries that are built using softfp.  This means the library will be a little slower than libraries built with hardfp support.  However, to get hardfp support you have to use specially built SGX libraries available from Robert Nelson via his Ubuntu builds for BeagleBoard.  Unfortunately, to use these you pretty much need to use the CodeSourcery toolchain (see the README.txt in Robert's sgx_hardfp.tar.gz package that is downloaded via his sgx_build_modules.sh script that used to be part of his stable-kernel tree, though it doesn't appear to be there now).  That would defeat the purpose of beaglebox, which is a DIY project.  So I'll have to rebuild my toolchain to use softfp instead and deal with slower performance until the SGX package is updated to support both softfp and hardfp.

The other problem is the way the kernel modules build is performed by the SGX package.  It grabs all other kernel modules to generate a rootfs structure that is complete for modules but incomplete in most other ways.  To use this under buildroot I'll have to

  • Build the kernel and modules via BeagleBox's build system
  • Build SGX
  • update the Buildroot build to pull not just the kernel modules and firmware into a buildrot custom package but also the SGX tree.

This shouldn't be that hard, but its disappointing that I can't use hardfp because of closed source PVR libraries in the SGX package.  The good news is that if you follow the link in the README.txt to the Graphics SDK User Guide you can find a link to requesting the arm Flash10 binary.  That binary can use the OpenGL support for hardware acceleration.  So that would be pretty cool, even if I can't include it in the build for BeagleBox (users will have to request it manually).

Related posts

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.