pmaports/main/osk-sdl/unlock.sh
2022-02-03 15:39:48 -08:00

55 lines
1.6 KiB
Bash

#!/bin/sh
# shellcheck disable=SC1091
partition=$1
. /etc/deviceinfo
# $1: SDL_VIDEODRIVER value (e.g. 'kmsdrm', 'directfb')
run_osk_sdl() {
unset ETNA_MESA_DEBUG
unset SDL_VIDEODRIVER
unset DFBARGS
unset TSLIB_TSDEVICE
unset OSK_EXTRA_ARGS
case "$1" in
"kmsdrm")
# Set up SDL and Mesa env to use kmsdrm backend
export SDL_VIDEODRIVER="kmsdrm"
# needed for librem 5
export ETNA_MESA_DEBUG="no_supertile"
;;
"directfb")
# Set up directfb and tslib
# Note: linux_input module is disabled since it will try to take over
# the touchscreen device from tslib (e.g. on the N900)
# Note: ps2mouse module is disabled because it causes
# jerky/inconsistent touch input on some devices
export DFBARGS="system=fbdev,no-cursor,disable-module=linux_input,disable-module=ps2mouse"
export SDL_VIDEODRIVER="directfb"
# SDL/directfb tries to use gles even though it's not
# actually available, so disable it in osk-sdl
export OSK_EXTRA_ARGS="--no-gles"
# shellcheck disable=SC2154
if [ -n "$deviceinfo_dev_touchscreen" ]; then
export TSLIB_TSDEVICE="$deviceinfo_dev_touchscreen"
fi
;;
esac
# osk-sdl needs evdev for input and doesn't launch without it, so
# make sure the module isn't missed
modprobe evdev
osk-sdl $OSK_EXTRA_ARGS -n root -d "$partition" -c /etc/osk.conf \
-o /boot/osk.conf -v > /osk-sdl.log 2>&1
}
# shellcheck disable=SC2154
if [ -n "$deviceinfo_mesa_driver" ]; then
# try to run osk-sdl with kmsdrm driver, then fallback to
# directfb if that fails
if ! run_osk_sdl "kmsdrm"; then
run_osk_sdl "directfb"
fi
else
run_osk_sdl "directfb"
fi