mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
Merge pull request #2148 from sydarn/amlogic-libmali
S922x rockchip libmali merge
This commit is contained in:
@@ -69,10 +69,10 @@
|
||||
# Additional Firmware to use ( )
|
||||
# Space separated list is supported,
|
||||
# e.g. FIRMWARE=""
|
||||
FIRMWARE="libmali-amlogic"
|
||||
FIRMWARE=""
|
||||
|
||||
# Additional packages to install
|
||||
ADDITIONAL_PACKAGES="weston-kiosk-shell-dpms"
|
||||
ADDITIONAL_PACKAGES="weston-kiosk-shell-dpms libmali"
|
||||
|
||||
# Debug tty path
|
||||
DEBUG_TTY="/dev/ttyAML0"
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright (C) 2025-present ROCKNIX (https://github.com/ROCKNIX)
|
||||
|
||||
PKG_NAME="libmali-amlogic-gbm-shim"
|
||||
PKG_VERSION="5bf814354982c7e3ad0cbef73edbf88b389ffe68"
|
||||
PKG_LICENSE="mali_driver"
|
||||
PKG_ARCH="aarch64"
|
||||
PKG_SITE="https://github.com/viraniac/mali-debs"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_DEPENDS_TARGET="toolchain libdrm"
|
||||
PKG_TOOLCHAIN="make"
|
||||
PKG_LONGDESC="GBM shim for Vulkan Mali drivers for S922X SOC"
|
||||
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
cp ${PKG_BUILD}/mali_gbm_shim.so ${INSTALL}/usr/lib/
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright (C) 2025-present ROCKNIX (https://github.com/ROCKNIX)
|
||||
|
||||
SRC_DIR = $(CURDIR)/jammy/arm64/VIM4/wayland/src
|
||||
CFLAGS = -Wall -O2 -fpic -shared -I$(TOOLCHAIN)/include
|
||||
SOURCES = "gbm_bo_create_with_modifiers2.c"
|
||||
BINARY = "mali_gbm_shim.so"
|
||||
|
||||
all:
|
||||
$(CC) $(CFLAGS) -o $(BINARY) $(SRC_DIR)/$(SOURCES)
|
||||
|
||||
clean:
|
||||
rm -f $(BINARY)
|
||||
@@ -1,37 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
|
||||
|
||||
PKG_NAME="libmali-amlogic"
|
||||
PKG_VERSION="r51p0-00eac0"
|
||||
PKG_LICENSE="mali_driver"
|
||||
PKG_ARCH="aarch64"
|
||||
PKG_SITE="https://developer.arm.com/downloads/-/mali-drivers/user-space"
|
||||
PKG_URL="https://developer.arm.com/-/media/Files/downloads/mali-drivers/user-space/odroid-n2plus/BXODROIDN2PL-${PKG_VERSION}.tar"
|
||||
PKG_DEPENDS_TARGET="toolchain mesa vulkan-tools gpudriver vulkan-wsi-layer libmali-amlogic-gbm-shim"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
PKG_LONGDESC="OpenGL ES and Vulkan Mali drivers for s922x soc"
|
||||
|
||||
make_target() {
|
||||
:
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/usr/{lib,share}
|
||||
mkdir -p ${INSTALL}/usr/lib/mali
|
||||
tar -xvJf ${PKG_BUILD}/mali.tar.xz -C ${INSTALL}
|
||||
mv ${INSTALL}/lib/${TARGET_ARCH}-linux-gnu/* ${INSTALL}/usr/lib/mali/
|
||||
mv ${INSTALL}/usr/lib/mali/libmali.* ${INSTALL}/usr/lib/
|
||||
|
||||
rm -r ${INSTALL}/lib
|
||||
tar -xvJf ${PKG_BUILD}/rootfs_additions.tar.xz -C ${INSTALL}/usr/share
|
||||
mv ${INSTALL}/usr/share/etc/vulkan/* ${INSTALL}/usr/share/vulkan/
|
||||
rm -r ${INSTALL}/usr/share/etc
|
||||
# Remove packages WSI layer, we build our own
|
||||
rm -r ${INSTALL}/usr/share/vulkan/implicit_layer.d
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
SHIM_PKG_INSTALL=$(get_pkg_variable libmali-amlogic-gbm-shim PKG_INSTALL)
|
||||
cp -P "${SHIM_PKG_INSTALL}"/usr/lib/mali_gbm_shim.so "${INSTALL}"/usr/lib/
|
||||
patchelf --add-needed mali_gbm_shim.so "${INSTALL}"/usr/lib/libmali.so.0
|
||||
}
|
||||
@@ -26,50 +26,22 @@ load_driver() {
|
||||
modprobe -r @PAN@
|
||||
modprobe mali_kbase
|
||||
|
||||
case ${HW_DEVICE} in
|
||||
"S922X")
|
||||
# Bind mount libmali libraries if required
|
||||
grep -q /usr/lib/libEGL.so /proc/mounts && mount_required=false || mount_required=true
|
||||
|
||||
if [[ $mount_required = true ]]; then
|
||||
mount --bind /usr/lib/mali/libEGL.so.1.4.0 /usr/lib/libEGL.so.1.1.0
|
||||
mount --bind /usr/lib/mali/libGLESv1_CM.so.1.1.0 /usr/lib/libGLESv1_CM.so.1.2.0
|
||||
mount --bind /usr/lib/mali/libGLESv2.so.2.1.0 /usr/lib/libGLESv2.so.2.1.0
|
||||
mount --bind /usr/lib/mali/libgbm.so.1.0.0 /usr/lib/libgbm.so.1.0.0
|
||||
fi
|
||||
|
||||
# Deliberately break OpenGL checks
|
||||
mount --bind /dev/null /usr/lib/libGL.so
|
||||
;;
|
||||
*)
|
||||
grep -q /usr/lib/libEGL.so /proc/mounts || find /usr/{lib,lib32}/mali -type f -exec bash -c 'lib={}; mount --bind $lib ${lib/\/mali\//\/}' ';'
|
||||
# Portmaster is not ready for SDL in glesonly subdir, so override libs the dirty way
|
||||
if [ -d /usr/lib/glesonly ]; then
|
||||
grep -q /usr/lib/libSDL2-2.0.so /proc/mounts || find /usr/{lib,lib32}/glesonly -type f -exec bash -c 'lib={}; mount --bind $lib ${lib/\/glesonly\//\/}' ';'
|
||||
fi
|
||||
mount --bind /dev/null /usr/lib/libGL.so
|
||||
mount --bind /dev/null /usr/lib32/libGL.so
|
||||
;;
|
||||
esac
|
||||
grep -q /usr/lib/libEGL.so /proc/mounts || find /usr/{lib,lib32}/mali -type f -exec bash -c 'lib={}; mount --bind $lib ${lib/\/mali\//\/}' ';'
|
||||
# Portmaster is not ready for SDL in glesonly subdir, so override libs the dirty way
|
||||
if [ -d /usr/lib/glesonly ]; then
|
||||
grep -q /usr/lib/libSDL2-2.0.so /proc/mounts || find /usr/{lib,lib32}/glesonly -type f -exec bash -c 'lib={}; mount --bind $lib ${lib/\/glesonly\//\/}' ';'
|
||||
fi
|
||||
mount --bind /dev/null /usr/lib/libGL.so
|
||||
mount --bind /dev/null /usr/lib32/libGL.so
|
||||
;;
|
||||
"panfrost")
|
||||
modprobe -r mali_kbase
|
||||
modprobe @PAN@
|
||||
|
||||
case ${HW_DEVICE} in
|
||||
"S922X")
|
||||
umount /usr/lib/libEGL.so.1.1.0
|
||||
umount /usr/lib/libGLESv1_CM.so.1.2.0
|
||||
umount /usr/lib/libGLESv2.so.2.1.0
|
||||
umount /usr/lib/libgbm.so.1.0.0
|
||||
;;
|
||||
*)
|
||||
grep -q /usr/lib/libEGL.so /proc/mounts && find /usr/lib/mali -type f -exec bash -c 'lib={}; umount ${lib/\/mali\//\/}' ';'
|
||||
if [ -d /usr/lib/glesonly ]; then
|
||||
grep -q /usr/lib/libSDL2-2.0.so /proc/mounts && find /usr/lib/glesonly -type f -exec bash -c 'lib={}; umount ${lib/\/glesonly\//\/}' ';'
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
grep -q /usr/lib/libEGL.so /proc/mounts && find /usr/lib/mali -type f -exec bash -c 'lib={}; umount ${lib/\/mali\//\/}' ';'
|
||||
if [ -d /usr/lib/glesonly ]; then
|
||||
grep -q /usr/lib/libSDL2-2.0.so /proc/mounts && find /usr/lib/glesonly -type f -exec bash -c 'lib={}; umount ${lib/\/glesonly\//\/}' ';'
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
exit 3
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
PKG_NAME="libmali"
|
||||
PKG_VERSION="g13p0"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="https://github.com/tsukumijima/libmali-rockchip"
|
||||
PKG_SITE="https://github.com/ROCKNIX/libmali"
|
||||
# zip format makes extract very fast (<1s). tgz takes 20 seconds to scan the whole file
|
||||
#PKG_URL="${PKG_SITE}/archive/refs/tags/${PKG_VERSION}.zip"
|
||||
PKG_URL="${PKG_SITE}/archive/master.zip"
|
||||
@@ -31,6 +31,12 @@ case "${DISPLAYSERVER}" in
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "${DEVICE}" = "S922X" ] && [ "${ARCH}" = "aarch64" ]; then
|
||||
PKG_VERSION="r51p0"
|
||||
MALI_FAMILY="meson"
|
||||
PKG_DEPENDS_TARGET+=" vulkan-wsi-layer vulkan-tools"
|
||||
fi
|
||||
|
||||
PKG_MESON_OPTS_TARGET+=" -Darch=${ARCH} -Dgpu=${MALI_FAMILY} -Dversion=${PKG_VERSION} -Dplatform=${PLATFORM} \
|
||||
-Dkhr-header=false -Dvendor-package=true -Dwrappers=enabled -Dhooks=true"
|
||||
|
||||
@@ -41,9 +47,12 @@ unpack() {
|
||||
pwd
|
||||
# Extract only what is needed
|
||||
LIBNAME="libmali-${MALI_FAMILY}-${PKG_VERSION}-${PLATFORM}.so"
|
||||
unzip -q "${SOURCES}/${PKG_NAME}/${PKG_SOURCE_NAME}" "*/hook/*" "*/include/*" "*/scripts/*" "*/meson*" "*/${LIBNAME}"
|
||||
mv libmali-rockchip-*/* .
|
||||
rmdir libmali-rockchip-*
|
||||
unzip -q "${SOURCES}/${PKG_NAME}/${PKG_SOURCE_NAME}" "*/hook/*" "*/include/*" "*/scripts/*" "*/meson*" "*/data/*" "*/${LIBNAME}"
|
||||
mv libmali*/* .
|
||||
rmdir libmali-*
|
||||
if [ "${MALI_FAMILY}" = "meson" ]; then
|
||||
mv data/vulkan/mali_meson.json.in data/vulkan/mali.json.in
|
||||
fi
|
||||
ln -s lib optimize_3
|
||||
}
|
||||
|
||||
@@ -61,4 +70,8 @@ post_makeinstall_target() {
|
||||
if [ ${DEVICE} = "RK3588" ] && [ ${TARGET_ARCH} = "aarch64" ]; then
|
||||
curl -Lo ${INSTALL}/usr/lib/libmali-${MALI_FAMILY}-${PKG_VERSION}-x11-gbm.so ${PKG_SITE}/raw/master/lib/aarch64-linux-gnu/libmali-${MALI_FAMILY}-${PKG_VERSION}-x11-gbm.so
|
||||
fi
|
||||
# S922X - mali vulkan libs need moving
|
||||
if [ "${DEVICE}" = "S922X" ] && [ "${ARCH}" = "aarch64" ]; then
|
||||
mv "${INSTALL}"/usr/lib/mali/libMaliVulkan.* "${INSTALL}"/usr/lib/
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user