summaryrefslogtreecommitdiff
path: root/pkgbuilds/osk-sdl/osk-sdl-hooks
diff options
context:
space:
mode:
authorXiao Pan <xyz@flylightning.xyz>2024-12-16 18:44:05 -0800
committerXiao Pan <xyz@flylightning.xyz>2024-12-16 18:48:49 -0800
commitcf6365c0957253940b8fae7e1a606105c6a2754c (patch)
treedf259da4c45432c0fc3d2d2b496d226664ca94ce /pkgbuilds/osk-sdl/osk-sdl-hooks
parent75c587ea9c4b8bf19ef6eec11a6e0aed508f3dac (diff)
Add osk-sdl PKGBUILD from danctnix Pine64-Arch
https://github.com/dreemurrs-embedded/Pine64-Arch
Diffstat (limited to 'pkgbuilds/osk-sdl/osk-sdl-hooks')
-rw-r--r--pkgbuilds/osk-sdl/osk-sdl-hooks69
1 files changed, 69 insertions, 0 deletions
diff --git a/pkgbuilds/osk-sdl/osk-sdl-hooks b/pkgbuilds/osk-sdl/osk-sdl-hooks
new file mode 100644
index 0000000..4c73056
--- /dev/null
+++ b/pkgbuilds/osk-sdl/osk-sdl-hooks
@@ -0,0 +1,69 @@
+#!/usr/bin/ash
+
+run_hook() {
+
+ # Set these variables to help osk-sdl display correctly.
+ export ETNA_MESA_DEBUG=no_supertile
+ export SDL_VIDEODRIVER=kmsdrm
+
+ modprobe -a -q dm-crypt >/dev/null 2>&1
+ [ "${quiet}" = "y" ] && CSQUIET=">/dev/null"
+
+ if [ -n "${cryptdevice}" ]; then
+ DEPRECATED_CRYPT=0
+ IFS=: read cryptdev cryptname <<EOF
+$cryptdevice
+EOF
+ else
+ DEPRECATED_CRYPT=1
+ cryptdev="${root}"
+ cryptname="root"
+ fi
+
+ # This may happen if third party hooks do the crypt setup
+ if [ -b "/dev/mapper/${cryptname}" ]; then
+ echo "Device ${cryptname} already exists, not doing any crypt setup."
+ return 0
+ fi
+
+ warn_deprecated() {
+ echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated"
+ echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead."
+ }
+
+ if resolved=$(resolve_device "${cryptdev}" ${rootdelay}); then
+ if cryptsetup isLuks ${resolved} >/dev/null 2>&1; then
+ [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
+ dopassphrase=1
+ # Ask for a passphrase
+ if [ ${dopassphrase} -gt 0 ]; then
+ echo ""
+ echo "A password is required to access the ${cryptname} volume"
+
+ #loop until we get a real password
+ while ! [ -b "/dev/mapper/${cryptname}" ]; do
+ osk-sdl -G -d ${resolved} -n ${cryptname} -c /etc/osk.conf
+ done
+ fi
+ if [ -e "/dev/mapper/${cryptname}" ]; then
+ if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
+ export root="/dev/mapper/root"
+ fi
+ else
+ err "Password succeeded, but ${cryptname} creation failed, aborting..."
+ return 1
+ fi
+ else
+ err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume."
+ fi
+ fi
+
+ IFS=,
+ if [ -n "${osk_kms}" ]; then
+ for i in $osk_kms
+ do
+ echo "Resetting $i module"
+ rmmod -f "$i"
+ done
+ fi
+}