I have to develop a GUI application for Beaglebone Black. As I’m using Gtk, it’s unacceptably slow. Problem is that the SGX drivers don’t work with X, so I have to access the frame buffer directly somehow.
Using Gtk is ideal but not necessary - my goal is to develop a GUI that makes use of hardware rendering, so whichever means to achieve that is welcome (within reasonable limits - getting too low-level wouldn’t be practicable).
What I’ve managed to accomplish so far:
- Install Debian 9.1 on the SD card (http://debian.beagleboard.org/images/bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz)
- Install the SGX drivers:
2.1) Install a 4.4 LTS kernel as described here:
cd /opt/scripts/tools/ git pull sudo ./update_kernel.sh --bone-kernel --lts-4_4 sudo reboot
2.2) On a x86 linux environment (VM, whatever):
git clone https://github.com/RobertCNelson/bb-kernel.git cd bb-kernel/ git checkout origin/am33x-v4.4 -b tmp-sgx ./sgx_create_package.sh
2.3) Copy ./deploy/GFX_5.01.01.02_es8.x.tar.gz to BBB. Once there…
sudo tar xfv GFX_5.01.01.02_es8.x.tar.gz -C / cd /opt/gfxinstall/ sudo ./sgx-install.sh sudo reboot sudo apt-get install ti-sgx-es8-modules-uname -r`
sudo depmod -a
sudo update-initramfs -uk
2.4) Load drivers manually
cd /etc/init.d sudo ./sgx-startup.sh start
2.5) Verify that drivers are loaded correctly:
lsmod | grep omaplfb
I see that there’s a number of libraries (Clutter, raylib, simple2d), some specifically targeting the Raspberry (should be pretty similar?), that support OpenGL ES, but they all fail to build for one reason or another. I suppose they all build some tailored version of SDL, so I tried building SDL from scratch without X11 support as detailed here, but then the examples compiled with this version complain that there is no available video device.