Getting eglfs to work on the BeagleBone Black with Debian Stretch

Hello everyone,

I’m trying to get eglfs and wayland running on the BeagleBone Black. So far without success.

I found quite a lot of misguiding threads about this topic. When I find a working solution I will write a nice and up-to-date blog post about it.

Here is what I have done so far

I have started with the latest Debian Stretch IoT image from:
https://elinux.org/Beagleboard:BeagleBoneBlack_Debian

Then I have installed an 4.4 TI RT kernel. The package pulls in the correct pvrctrkm modules.

$ uname -a
Linux sandybox 4.4.91-ti-rt-r137 #1 SMP PREEMPT RT Tue Nov 7 03:25:55 UTC 2017 armv7l GNU/Linux

$ ls /lib/modules/4.4.91-ti-rt-r137/extra/ti335x/
bc_example.ko pvrsrvkm.ko

Furthermore, I have discovered this very informative GitHub issue:
can sgx_build_modules.sh be supported? · Issue #8 · RobertCNelson/ti-linux-kernel-dev · GitHub which lead me to:

#one line:
git clone -b ti-img-sgx/1.14.3699939_k4.4 git://git.ti.com/graphics/omap5-sgx-ddk-um-linux.git --depth=1
cd omap5-sgx-ddk-um-linux/
sudo su
export DISCIMAGE=/
export TARGET_PRODUCT=ti335x
make install
exit
#fix: libgbm.so.2 (one line:)
sudo ln -sf /usr/lib/arm-linux-gnueabihf/libgbm.so.1 /usr/lib/arm-linux-gnueabihf/libgbm.so.2
sudo modprobe pvrsrvkm
sudo /usr/bin/pvrsrvctl --start --no-module

I also tried

$ sudo /etc/init.d/rc.pvr restart
Unloaded PowerVR consumer services.
Loaded PowerVR consumer services.

Which looks fine.

Then I installed Weston

sudo apt install weston kbd libdrm-omap1

After a little bit of searching I found some scripts to start it:

sudo nano /etc/systemd/system/weston.service

[Unit]
Description=Weston Wayland compositor startup
RequiresMountsFor=/run

[Service]
User=machinekit
EnvironmentFile=-/etc/default/weston
Environment=“XDG_RUNTIME_DIR=/run/user/1001”
Environment=“DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/dbus/user_bus_socket”
ExecStartPre=/usr/bin/sudo /bin/mkdir -p /run/user/1001/dbus
ExecStartPre=/usr/bin/sudo /bin/chown -R machinekit:machinekit /run/user/1001
ExecStartPre=/bin/chmod -R 0700 /run/user/1001
ExecStart=/usr/bin/sudo -E – /bin/openvt -v -w -s – su machinekit -l -c “XDG_RUNTIME_DIR=/run/user/1001 /usr/bin/weston-launch – $OPTARGS 2>~/.weston-errors”
#ExecStart=/usr/bin/sudo -E – su machinekit -l -c “XDG_RUNTIME_DIR=/run/user/1001 /usr/bin/weston-launch – 2>~/.weston-errors”

[Install]
WantedBy=multi-user.target

However, I still cannot get weston or a eglfs Qt application working.

I have also tried http://elinux.org/BeagleBoardDebian#SGX_BeagleBone.2FBeagleBone_Black
But the 4.4 RT bone kernel does not seem to support the universal overlays. So it does not work for my application.

Any further ideas how I can get the drivers with the TI kernel working?

Sorry, my latest statement is wrong. It looks like my LCD display prevents the universal cape overlays from loading. I will try again with a HDMI monitor.