[Debian-on-mobile-maintainers] Bug#1018209: osk-sdl: Add all available DRI drivers
Balint Kovacs
dratini0 at gmail.com
Sat Aug 27 01:55:34 BST 2022
Package: osk-sdl
Version: 0.67-2
Severity: normal
Tags: patch
X-Debbugs-Cc: dratini0 at gmail.com
Dear Maintainer,
In the past days, I have found two systems where osk-sdl didn't include the
correct DRI library in the initramfs. (A Steam Deck, which needs
radeonsi_drm.so and an Asus T100TA Bay Trail tablet, which needs crocus_drm.so)
So instead of trying to maintain a list of all the possible DRI libraries that
might be needed, I propose we just include them all. This is reasonable,
because they are already hardlinks of the same file.
I have checked that in Debian main, files ending in "_dri.so" only come from
libgl1-mesa-dri, and that on amd64 and on the Pinephone, all of those files are
hardlinks.
On my Steam Deck, I have checked that my patch changes the size of the initrd
from 120600 to 120601 kB, and that it works. I haven't yet tested it on any
other devices.
-- System Information:
Debian Release: bookworm/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, arm64
Kernel: Linux 5.18.0-4-amd64 (SMP w/16 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages osk-sdl depends on:
ii cryptsetup 2:2.5.0-2
ii cryptsetup-initramfs 2:2.5.0-2
ii debconf [debconf-2.0] 1.5.79
ii fonts-dejavu-core 2.37-2
ii libc6 2.34-3
ii libcryptsetup12 2:2.5.0-2
ii libegl1 1.4.0-1
ii libgcc-s1 12.1.0-8
ii libgl1 1.4.0-1
ii libgles2 1.4.0-1
ii libsdl2-2.0-0 2.0.22+dfsg-6
ii libsdl2-ttf-2.0-0 2.20.0+dfsg-1
ii libstdc++6 12.1.0-8
osk-sdl recommends no packages.
osk-sdl suggests no packages.
-- debconf information excluded
-------------- next part --------------
>From 848e446a00efb3ce5ffb07832659caa5e7a4688f Mon Sep 17 00:00:00 2001
From: Balint Kovacs <dratini0 at gmail.com>
Date: Sat, 27 Aug 2022 01:32:26 +0100
Subject: [PATCH] Include every possible DRI driver
---
debian/initramfs/hooks/osk-sdl | 37 ++++++++++++----------------------
1 file changed, 13 insertions(+), 24 deletions(-)
diff --git a/debian/initramfs/hooks/osk-sdl b/debian/initramfs/hooks/osk-sdl
index 2b65692..1f59fb9 100755
--- a/debian/initramfs/hooks/osk-sdl
+++ b/debian/initramfs/hooks/osk-sdl
@@ -18,52 +18,41 @@ esac
# Many dri modules are kmsro, use a symlink there
dri_inst() {
- so_src="${libdir}/dri/$1"
- shift
- sos=$@
- so_sum=$(md5sum "${so_src}" | awk '{ print $1 }')
-
- copy_exec "${so_src}"
- for so in $sos; do
- if [ "$(md5sum "${libdir}/dri/${so}" | awk '{ print $1 }')" = "${so_sum}" ]; then
- ln -s "$(basename "${so_src}")" "${DESTDIR}/${libdir}/dri/${so}"
+ for so in "${libdir}/dri/"*_dri.so; do
+ current_so_sum="$(md5sum "${so}" | awk '{ print $1 }')"
+ if [ "x${current_so_sum}" = "x${so_sum}" ]; then
+ ln -s "$(basename "${so_src}")" "${DESTDIR}/${so}"
else
- copy_exec "${libdir}/dri/${so}"
+ copy_exec "${so}"
+ so_sum="${current_so_sum}"
+ so_src="${so}"
fi
done
}
-IMX_KMSRO="etnaviv_dri.so imx-drm_dri.so imx-dcss_dri.so mxsfb-drm_dri.so"
-
case "$DPKG_ARCH" in
arm64)
libdir=/usr/lib/aarch64-linux-gnu
+ dri_inst
+ copy_exec "$libdir/libGLESv2.so.2"
+
# Pinephone
if grep -q "allwinner" /proc/device-tree/compatible 2>/dev/null; then
- copy_exec "$libdir/dri/sun4i-drm_dri.so"
- copy_exec "$libdir/libGLESv2.so.2"
manual_add_modules goodix goodix_ts
# Librem 5 and Librem 5 Devkit
elif grep -q "imx" /proc/device-tree/compatible 2>/dev/null; then
- dri_inst ${IMX_KMSRO}
- copy_exec "$libdir/libGLESv2.so.2"
manual_add_modules edt-ft5x06 goodix pwm_vibra goodix_ts
- # PinePhone Pro
- elif grep -q "PinePhonePro" /proc/device-tree/model 2>/dev/null; then
- dri_inst ${IMX_KMSRO} panfrost_dri.so rockchip_dri.so
- copy_exec "$libdir/libGLESv2.so.2"
+ # PinePhone Pro
+ elif grep -q "PinePhonePro" /proc/device-tree/model 2>/dev/null; then
manual_add_modules goodix pwm_vibra goodix_ts
# Generic / Installer (needs to include all of the above)
else
- dri_inst ${IMX_KMSRO} sun4i-drm_dri.so panfrost_dri.so rockchip_dri.so
- copy_exec "$libdir/libGLESv2.so.2"
manual_add_modules edt-ft5x06 goodix pwm_vibra goodix_ts
fi
;;
amd64)
libdir=/usr/lib/x86_64-linux-gnu
- AMD64_KMSRO="vmwgfx_dri.so virtio_gpu_dri.so i965_dri.so iris_dri.so kms_swrast_dri.so"
- dri_inst ${AMD64_KMSRO}
+ dri_inst
copy_exec "$libdir/libGLESv2.so.2"
;;
*)
--
2.37.2
More information about the Debian-on-mobile-maintainers
mailing list