# First, set up directory on droid4:

mkdir pvr-wip
cd pvr-wip
wget http://launchpadlibrarian.net/123825575/libdri2-1_1.0.0~git20120510+26fee2e-0ubuntu2_armhf.deb
dpkg -i libdri2-1_1.0.0~git20120510+26fee2e-0ubuntu2_armhf.deb
apt install xserver-xorg-video-omap

Then, either build the module according to https://github.com/tmlind/pvr-omap4-dkms/blob/testing-v5.4/README_DROID4 ; or if you use linux-image-droid4=5.4.1-1+1m7.1:

wget https://wizzup.org/omapdrm_pvr.ko

Copy it to ~/pvr-wip and see if it loads:

insmod omapdrm_pvr.ko

Should show:

[  556.995605] [drm] Initialized pvr 1.9.2253347 20110701 for 56000000.img on minor 1

Then, in ~/pvr-wip, run:

git clone git://github.com/mobiaqua/pvr-omap4

Create script to init pvr:

root@devuan-droid4:~/pvr-wip# cat > init.sh
#!/bin/sh
pvr=${HOME}/pvr-wip/pvr-omap4
PVRDebugLevel=0x7fffffff \
LD_PRELOAD=${pvr}/usr/lib/libsrv_init.so:\
${pvr}/usr/lib/libsrv_um.so \
${pvr}/usr/bin/pvrsrvinit
root@devuan-droid4:~/pvr-wip# chmod +x init.sh

Run it:

root@devuan-droid4:~/pvr-wip# ./init.sh
root@devuan-droid4:~/pvr-wip# echo $?
0

Now, set xorg up:

mv /etc/X11/xorg.conf.d/ /etc/X11/xorg.conf.d.old
#... 20200112.img.xz has weird path, oopsie
mv /etc/xorg.conf.d.pvr /etc/X11/xorg.conf.d

Now, get out your serial, since you will need it. Run this:

mv /etc/init.d/dsme /etc/init.d/dsme_
reboot

And watch the droid4 boot on Serial until you get:

Devuan GNU/Linux ascii devuan-droid4 ttyS2

devuan-droid4 login:

Well, what are you waiting for? Log in.

Then:

# cd pvr-wip
# insmod omapdrm_pvr.ko
[   42.446685] omapdrm_pvr: loading out-of-tree module taints kernel.
[   42.464996] omapdrm_pvr 56000000.img: Enabling quirks 00000001
[   42.475463] [drm] Initialized pvr 1.9.2253347 20110701 for 56000000.img on minor 1
# ./init.sh
# echo ?
0

Start X (don't forget &, it's important)

# Xorg -retro &

Create test script:

root@devuan-droid4:~/pvr-wip# cat > test.sh
#!/bin/sh
pvr=${HOME}/pvr-wip/pvr-omap4
LD_PRELOAD=\
${pvr}/usr/lib/libsrv_init.so:\
${pvr}/usr/lib/libsrv_um.so:\
${pvr}/usr/lib/libIMGegl.so:\
${pvr}/usr/lib/libusc.so:\
${pvr}/usr/lib/libpvrws_KMS.so:\
${pvr}/usr/lib/libpvr2d.so:\
${pvr}/usr/lib/libpvrws_WAYLAND.so:\
${pvr}/usr/lib/libpvrws_OMAPDRI2.so:\
${pvr}/usr/lib/libGLESv2.so:\
${pvr}/usr/lib/libglslcompiler.so:\
${pvr}/usr/lib/libEGL.so \
${pvr}/usr/bin/xgles2test1 -f 300
root@devuan-droid4:~/pvr-wip# chmod +x test.sh

Run it:

root@devuan-droid4:~/pvr-wip# ./test.sh
--------------------- started ---------------------
PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): LoadWSModule: Window system module libpvrws_WAYLAND.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
PVR:(Warning): PVRDRMSetFD: DRM fd already set [57, /pvr_bridge_u.c]
--------------------- finished ---------------------

If you want, you can try to run hildon-desktop:

# cat > test-hd.sh
#!/bin/sh
pvr=${HOME}/pvr-wip/pvr-omap4
LD_PRELOAD=\
${pvr}/usr/lib/libsrv_init.so:\
${pvr}/usr/lib/libsrv_um.so:\
${pvr}/usr/lib/libIMGegl.so:\
${pvr}/usr/lib/libusc.so:\
${pvr}/usr/lib/libpvrws_KMS.so:\
${pvr}/usr/lib/libpvr2d.so:\
${pvr}/usr/lib/libpvrws_WAYLAND.so:\
${pvr}/usr/lib/libpvrws_OMAPDRI2.so:\
${pvr}/usr/lib/libGLESv2.so:\
${pvr}/usr/lib/libglslcompiler.so:\
${pvr}/usr/lib/libEGL.so \
CLUTTER_BACKEND=x11 \
HILDON_DESKTOP_APPS_PRESTART=auto \
COGL_DRIVER=gles2 COGL_RENDERER=egl_xlib \
hildon-desktop.launch
# chmod +x test-hd.sh

But it will mostly just render a black screen.