Last active
January 1, 2023 23:36
-
-
Save JohnnyonFlame/bbf3331ae1b1ff0002fb7998501acd21 to your computer and use it in GitHub Desktop.
Jealousy for EVERSD
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# SPDX-License-Identifier: GPL-2.0-or-later | |
# Copyright (C) 2020-present Fewtarius | |
# Maintenance 2022-present BrooksyTech (https://github.com/brooksytech) | |
# Edits for EverSD 2022-present JohnnyonFlame (https://github.com/johnnyonflame) | |
. /etc/profile | |
if [ -e "/storage/roms/ports/PortMaster.sh" ] | |
then | |
mv /storage/roms/ports/PortMaster.sh /storage/roms/ports/PortMaster/ | |
fi | |
cat << 'EOF' > /tmp/portmaster.sh | |
#!/bin/bash | |
. /etc/profile | |
cd /storage/roms/ports/PortMaster | |
./PortMaster.sh 2>/dev/null | |
kill -2 ${PPID} | |
sleep 2 | |
EOF | |
chmod +x /tmp/portmaster.sh | |
kmscon -l /tmp/portmaster.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<inputList> | |
<inputAction type="onfinish"> | |
<command>/usr/bin/bash /usr/bin/retromapper.sh /tmp/joypads</command> | |
</inputAction> | |
</inputList> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# SPDX-License-Identifier: GPL-2.0-or-later | |
# Copyright (C) 2022-present JohnnyonFlame | |
. /etc/profile | |
ln -sf /usr/lib/kernel-overlays/base/lib /var/lib | |
# Ensure we have joydev as some applications _will_ require it. | |
# modprobe joydev | |
# Ensure we have initialized the necessary bits of the filesystem | |
for __conf in jelos-dirs retroarch-userdirs legacy z_01_busybox z_01_openelec z_04_openssh; do | |
echo Populating tmpfiles: "/usr/lib/tmpfiles.d/${__conf}.conf" | |
/usr/bin/systemd-tmpfiles --create "/usr/lib/tmpfiles.d/${__conf}.conf" | |
done | |
# Populate /storage and it's overlays | |
if [[ -z "$(mount | grep /tmp/assets/)" ]]; then | |
mkdir -p /tmp/{cache,assets,cores,database,overlays,shaders,joypads} | |
mkdir -p /storage/{cache,assets,cores,database,overlays,shaders,joypads} | |
mkdir -p /storage/.tmp/{assets,cores,database,overlays,shaders,joypads}-workdir | |
mount -t overlay overlay -o lowerdir=/usr/share/libretro/autoconfig,upperdir=/storage/joypads,workdir=/storage/.tmp/joypads-workdir /tmp/joypads | |
mount -t overlay overlay -o lowerdir=/usr/share/retroarch-assets,upperdir=/storage/assets,workdir=/storage/.tmp/assets-workdir /tmp/assets | |
mount -t overlay overlay -o lowerdir=/usr/lib/libretro,upperdir=/storage/cores,workdir=/storage/.tmp/cores-workdir /tmp/cores | |
mount -t overlay overlay -o lowerdir=/usr/share/libretro-database,upperdir=/storage/database,workdir=/storage/.tmp/database-workdir /tmp/database | |
mount -t overlay overlay -o lowerdir=/usr/share/retroarch-overlays,upperdir=/storage/overlays,workdir=/storage/.tmp/overlays-workdir /tmp/overlays | |
mount -t overlay overlay -o lowerdir=/usr/share/common-shaders:/usr/share/glsl-shaders:/usr/share/slang-shaders,upperdir=/storage/shaders,workdir=/storage/.tmp/shaders-workdir /tmp/shaders | |
fi | |
/usr/bin/userconfig-setup | |
/usr/bin/usercache-setup | |
/usr/bin/openssl-config | |
/usr/lib/autostart/common/001-setup | |
while true; do | |
/usr/bin/emulationstation | |
sleep 1 | |
# Check if any application is running before respawning emulationstation | |
PID=$(pidof runemu.sh) | |
while [ ! -z "$PID" ] && [ -e "/proc/$PID/status" ]; do | |
sleep 1 | |
done | |
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -e | |
# SPDX-License-Identifier: GPL-2.0-or-later | |
# Copyright (C) 2022-present JohnnyonFlame | |
INSTALL="/mnt/sdcard/jealous" | |
LOGS="${INSTALL}/logs.txt" | |
STORAGE="${INSTALL}/STORAGE" | |
SYSTEM="${INSTALL}/SYSTEM" | |
ROMS="${INSTALL}/roms" | |
ENABLEMENT="${INSTALL}/ENABLEMENT" | |
MOUNT_SDCARD=$(mount | grep -r '^/dev/.* on /mnt/sdcard' | cut -d ' ' -f1) | |
# If logs are present, rotate them. | |
[ -f ${LOGS} ] && mv -f ${LOGS} ${LOGS}.old | |
# Let's get rid of the launcher and all... | |
killall -9 killItWithFire launch.sh | |
killall -9 evercade_menu_cobalt | |
# Oh no! /mnt/sdcard has no way to set +x... | |
# ...but we can just make it extremely permissive :) | |
# This workaround (umask=000) allows binaries to have executable permissions | |
# regardless of the filesystem on the sdcard. | |
echo "Remounting ${MOUNT_SDCARD}" > /tmp/mntlog.txt | |
umount "${MOUNT_SDCARD}" > >(tee -a /tmp/mntlog.txt) 2>&1 | |
mount -o rw,umask=000,noatime,nodiratime "${MOUNT_SDCARD}" /mnt/sdcard > >(tee -a /tmp/mntlog.txt) 2>&1 | |
cat /tmp/mntlog.txt >> ${LOGS} | |
# Create the ROMs partition, this will be populated by the first time boot | |
# sequence (init-jealous) | |
mkdir -p ${ROMS} | |
# Lets get some diagnostic data on the logs... | |
mount > >(tee -a ${LOGS}) 2>&1 | |
# Create storage filesystem if not already present | |
if [[ ! -f ${STORAGE} ]]; then | |
echo "No storage, creating filesystem..." > >(tee -a ${LOGS}) 2>&1 | |
truncate --size 512M ${STORAGE} > >(tee -a ${LOGS}) 2>&1 | |
mkfs.ext4 -F ${STORAGE} > >(tee -a ${LOGS}) 2>&1 | |
fi | |
# Setup main rootfs overlay mount | |
mkdir /tmp/{rootfs,enablement,overlay} | |
mount ${SYSTEM} /tmp/rootfs/ | |
mount ${ENABLEMENT} /tmp/enablement/ | |
mount -t overlay overlay -o lowerdir=/tmp/enablement/:/tmp/rootfs/ /tmp/overlay > >(tee -a ${LOGS}) 2>&1 | |
# Setup the tmpfs and storage partitions | |
mount -t tmpfs tmpfs /tmp/overlay/var | |
mount -t tmpfs tmpfs /tmp/overlay/tmp | |
mount ${STORAGE} /tmp/overlay/storage/ > >(tee -a ${LOGS}) 2>&1 | |
mkdir -p /tmp/overlay/var/log | |
# Setup ROMs directories | |
mkdir -p /tmp/overlay/storage/roms ${ROMS} | |
mount --bind ${ROMS} /tmp/overlay/storage/roms > >(tee -a ${LOGS}) 2>&1 | |
# Setup other necessary system partitions | |
mount -t proc /proc /tmp/overlay/proc/ | |
mount --rbind /sys /tmp/overlay/sys/ | |
mount --rbind /dev /tmp/overlay/dev/ | |
mount --rbind /run /tmp/overlay/run/ | |
mount --make-rslave /tmp/overlay/sys/ | |
mount --make-rslave /tmp/overlay/dev/ | |
mount --make-rslave /tmp/overlay/run/ | |
# Jump into it! | |
chroot /tmp/overlay init-jealous > >(tee -a ${LOGS}) 2>&1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# SPDX-License-Identifier: GPL-2.0-or-later | |
# Copyright (C) 2022-present JohnnyonFlame | |
cd /tmp | |
# Setup the basic overlay structure | |
mkdir {rootfs,enablement,overlay} | |
mount /mnt/sdcard/SYSTEM rootfs/ | |
mount /mnt/sdcard/jealous-enablement.squashfs enablement/ | |
mount -t overlay overlay -o lowerdir=enablement/:rootfs/ overlay | |
# Setup the tmpfs and storage partitions | |
mount -t tmpfs tmpfs overlay/var | |
mount -t tmpfs tmpfs overlay/tmp | |
mount /mnt/sdcard/storage.ext4 overlay/storage/ | |
mkdir overlay/var/log | |
# Setup roms dir | |
mkdir -p overlay/storage/roms /mnt/sdcard/roms/ | |
mount --bind /mnt/sdcard/roms/ overlay/storage/roms | |
# Setup other system partitions | |
mount -t proc /proc overlay/proc/ | |
mount --rbind /sys overlay/sys/ | |
mount --rbind /dev overlay/dev/ | |
mount --rbind /run overlay/run/ | |
mount --make-rslave overlay/sys/ | |
mount --make-rslave overlay/dev/ | |
mount --make-rslave overlay/run/ | |
# jump in | |
chroot overlay /bin/bash -l |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# SPDX-License-Identifier: GPL-2.0-or-later | |
# Copyright (C) 2022-present JohnnyonFlame | |
# -- Config & Setup -- | |
# Destination file | |
if [[ -z "$1" ]]; then | |
echo "Usage: mapper.txt [gamecontrollerdb.txt]" | |
exit -1 | |
fi | |
TMP_CONFIG="$1" | |
mkdir -p "$1/udev" | |
# Where the emulationstation configuration file is | |
ES_CONFIG="${HOME}/.config/emulationstation/es_input.cfg" | |
# -- Helpers -- | |
NL=$'\n' | |
# Refine device search | |
function refine_search { | |
[ ${#DEV_MATCHES[@]} -ne 0 ] && readarray -d '' -t DEV_MATCHES < <(grep --null -HlE "${1}\s*=\s*\"${2}\"" "${DEV_MATCHES[@]}") | |
} | |
# Map the actual button/hat/axis | |
function map { | |
map_x_result="" | |
case "${INPUT_NAME}" in | |
"b") TR_NAME="input_b";; | |
"a") TR_NAME="input_a";; | |
"y") TR_NAME="input_y";; | |
"x") TR_NAME="input_x";; | |
"hotkeyenable") TR_NAME="input_menu_toggle";; | |
"up") TR_NAME="input_up";; | |
"down") TR_NAME="input_down";; | |
"left") TR_NAME="input_left";; | |
"right") TR_NAME="input_right";; | |
"leftshoulder") TR_NAME="input_l";; | |
"leftthumb") TR_NAME="input_l3";; | |
"lefttrigger") TR_NAME="input_l2";; | |
"rightshoulder") TR_NAME="input_r";; | |
"rightthumb") TR_NAME="input_r3";; | |
"righttrigger") TR_NAME="input_r2";; | |
"select") TR_NAME="input_select";; | |
"start") TR_NAME="input_start";; | |
"leftanalogdown") TR_NAME="input_l_y_plus";; | |
"leftanalogup") TR_NAME="input_l_y_minus";; | |
"leftanalogleft") TR_NAME="input_l_x_minus";; | |
"leftanalogright") TR_NAME="input_l_x_plus";; | |
"rightanalogdown") TR_NAME="input_r_y_plus";; | |
"rightanalogup") TR_NAME="input_r_y_minus";; | |
"rightanalogleft") TR_NAME="input_r_x_minus";; | |
"rightanalogright") TR_NAME="input_r_x_plus";; | |
*) | |
echo "Invalid mapping ${INPUT_NAME}." | |
return | |
;; | |
esac | |
case "${TYPE}" in | |
"axis") | |
if (( $VALUE < 0 )); then | |
map_x_result="${TR_NAME}_axis = -${ID}$NL" | |
else | |
map_x_result="${TR_NAME}_axis = +${ID}$NL" | |
fi | |
;; | |
"button") | |
map_x_result="${TR_NAME}_btn = ${ID}$NL" | |
;; | |
"hat") | |
case $VALUE in | |
"1") VALUE_TR='up';; | |
"2") VALUE_TR='right';; | |
"4") VALUE_TR='down';; | |
"8") VALUE_TR='left';; | |
*) VALUE_TR='';; | |
esac | |
if [[ ! -z $VALUE_TR ]]; then | |
map_x_result="${TR_NAME}_btn = h${ID}${VALUE_TR}$NL" | |
fi | |
;; | |
*) | |
echo "Invalid entry ${TYPE}" | |
;; | |
esac | |
} | |
function get_map_suffix { | |
map_suffix="" | |
} | |
function get_map_prefix { | |
map_prefix=$(cat <<EOF | |
# $VID:$PID (GUID: $GUID) | |
input_device = "${DEV_NAME}" | |
input_driver = "udev" | |
input_vendor_id = $(( 16#$VID )) | |
input_product_id = $(( 16#$PID )) | |
EOF | |
)$NL$NL | |
} | |
# Query input devices | |
function get_devices { | |
# Get the device data | |
DEV_RAW=$(< /proc/bus/input/devices)"$NL" | |
ACC="" | |
devices=() | |
device_count=0 | |
while read line; do | |
if [[ ! -z "$line" ]]; then | |
ACC="$ACC$line$NL" | |
else | |
[[ -z $ACC ]] && continue | |
devices[device_count]="$ACC" | |
let device_count++ | |
ACC="" | |
fi | |
done <<< "${DEV_RAW}" | |
} | |
# query udev and controllers mapped in emulationstation, ignore devices without a GUID | |
get_devices | |
ES_QUERY="$(xmlstarlet sel -T -t -m "inputList/inputConfig[@deviceGUID!='']" -n -v "concat(@deviceName,';',@deviceGUID)" $ES_CONFIG)" | |
echo "## ES Dev Mapper ##" | |
while IFS=";" read -r NAME GUID; do | |
echo "$NAME :: $GUID" | |
# Ignore keyboards | |
if [[ "${GUID}" == -1 ]]; then | |
continue | |
fi | |
# Check if GUID exists in gamecontrollerdb.txt | |
# if [ -z "$(fgrep -- ${GUID} "${CONTROLLER_DB}")" ]; then | |
if [ true ]; then | |
# Query this specific GUID on the mappings | |
MAPPING_CFG=$(xmlstarlet sel -T -t -m "//inputConfig[@deviceGUID = '${GUID}']/input" -n -v "concat(@name,';',@type,';',@id,';',@value)" $ES_CONFIG) | |
VID=${GUID:10:2}${GUID:8:2} | |
PID=${GUID:18:2}${GUID:16:2} | |
VER=${GUID:26:2}${GUID:24:2} | |
for (( i = 0; i < $device_count; i++ )); do | |
DEV="${devices[$i]}" | |
if [[ -z $(fgrep -- "Vendor=${VID} Product=${PID} Version=${VER}" - <<< "${DEV}") ]]; then | |
DEV="" | |
else | |
break | |
fi | |
done | |
if [[ -z $DEV ]]; then | |
echo "Ignoring $NAME" | |
continue | |
fi | |
DEV_NAME=$(sed -E -n 's|N: Name="(.*)"|\1|p' - <<< "$DEV") | |
MAPPING="" | |
while IFS=";" read -r -e INPUT_NAME TYPE ID VALUE; do | |
# Map the controller | |
map "${INPUT_NAME}" "${TYPE}" "${ID}" "${VALUE}" | |
# Only concatenate valid mappings | |
if [[ ! -z ${map_x_result} ]]; then | |
MAPPING="${MAPPING}${map_x_result}" | |
fi | |
done <<< ${MAPPING_CFG:1} | |
get_map_prefix | |
get_map_suffix | |
if [[ ! -z "${MAPPING}" ]]; then | |
# Properly mapped, see if we need to rid ourselves of some configs... | |
DEV_MATCHES=("${TMP_CONFIG}"/*.cfg) | |
refine_search "input_device" "${DEV_NAME}" | |
refine_search "input_vendor_id" "$(( 16#$VID ))" | |
refine_search "input_product_id" "$(( 16#$PID ))" | |
for DELETUS in "${DEV_MATCHES[@]}"; do | |
rm -f "${DELETUS}" | |
done | |
echo "${map_prefix}${MAPPING}${map_suffix}" > "${TMP_CONFIG}/udev/${GUID}.cfg" | |
echo "${map_prefix}${MAPPING}${map_suffix}" | |
echo "" | |
else | |
echo "Failed to map anything." | |
echo "" | |
fi | |
else | |
echo "Already mapped..." | |
fi | |
done <<< ${ES_QUERY:1} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# SPDX-License-Identifier: GPL-2.0-or-later | |
# Copyright (C) 2022-present JohnnyonFlame | |
# Where your stuff is | |
ROOTFS=${HOME}/SYSTEM | |
# Setup the basic overlay structure | |
cd /tmp | |
sudo mkdir {rootfs,upper,work,overlay} | |
sudo mount ${ROOTFS} rootfs/ | |
sudo mount -t overlay overlay -o lowerdir=rootfs/,upperdir=upper/,workdir=work/ overlay | |
# Setup the tmpfs and storage partitions | |
sudo mount -t tmpfs tmpfs overlay/var | |
sudo mount -t tmpfs tmpfs overlay/tmp | |
sudo mkdir overlay/var/log | |
# Setup other system partitions | |
sudo mount -t proc /proc overlay/proc/ | |
sudo mount --rbind /sys overlay/sys/ | |
sudo mount --rbind /dev overlay/dev/ | |
sudo mount --rbind /run overlay/run/ | |
sudo mount --make-rslave overlay/sys/ | |
sudo mount --make-rslave overlay/dev/ | |
sudo mount --make-rslave overlay/run/ | |
# Download setup files | |
sudo mkdir -p /run/libreelec | |
echo "nameserver 8.8.8.8" | sudo tee -a /run/libreelec/resolv.conf | |
sudo wget https://gist.github.com/JohnnyonFlame/bbf3331ae1b1ff0002fb7998501acd21/raw/setup-dirs -O /tmp/overlay/usr/bin/setup-dirs | |
sudo chmod +x /tmp/overlay/usr/bin/setup-dirs | |
# jump in | |
sudo chroot overlay /bin/bash -l | |
# Tear down partitions | |
sudo umount overlay/proc/ | |
sudo umount -l overlay/sys/ | |
sudo umount -l overlay/dev/ | |
sudo umount -l overlay/run/ | |
sudo umount overlay/ | |
sudo umount rootfs/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# SPDX-License-Identifier: GPL-2.0-or-later | |
# Copyright (C) 2022-present JohnnyonFlame | |
. /etc/profile | |
# Customize the runemu.sh script... | |
if [[ -z "$(grep 'precious ram' /usr/bin/runemu.sh)" ]]; then | |
sed -Ei "s/(### Define the variables used throughout the script)/# Save some precious ram...\nkillall -9 emulationstation\n\n\1/" /usr/bin/runemu.sh | |
fi | |
# Fix the port launching... | |
cp /usr/config/emulationstation/es_systems.cfg /tmp/es_systems.cfg | |
xmlstarlet edit \ | |
--update '//system[./name[contains(text(),"ports")]]/command' \ | |
--value $'/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"' \ | |
/tmp/es_systems.cfg > /usr/config/emulationstation/es_systems.cfg | |
# Customize the PortMaster launcher script | |
# System later copies it into /storage/.config/modules/PortMaster.sh | |
rm /usr/config/modules/PortMaster.sh | |
wget https://gist.github.com/JohnnyonFlame/bbf3331ae1b1ff0002fb7998501acd21/raw/dconfig-modules-PortMaster.sh -O /usr/config/modules/PortMaster.sh | |
chmod +x /usr/config/modules/PortMaster.sh | |
# Add automapper to emulationstation | |
rm /usr/config/emulationstation/es_input.cfg | |
wget https://gist.github.com/JohnnyonFlame/bbf3331ae1b1ff0002fb7998501acd21/raw/es_input.cfg -O /usr/config/emulationstation/es_input.cfg | |
wget https://gist.github.com/JohnnyonFlame/bbf3331ae1b1ff0002fb7998501acd21/raw/retromapper.sh -O /usr/bin/retromapper.sh | |
chmod +x /usr/bin/retromapper.sh | |
# Install KMSCON | |
wget https://github.com/JohnnyonFlame/kmscon/releases/latest/download/kmscon-aarch64.tar.gz -O /tmp/kmscon.tar.gz | |
tar zxvf /tmp/kmscon.tar.gz | |
rm /tmp/kmscon.tar.gz | |
# Download the init script | |
wget https://gist.github.com/JohnnyonFlame/bbf3331ae1b1ff0002fb7998501acd21/raw/init-jealous -O /usr/bin/init-jealous | |
chmod +x /usr/bin/init-jealous | |
# Deploy updated SDL2 | |
rm /usr/lib/libSDL2-2.0.so* | |
rm /usr/lib32/libSDL2-2.0.so* | |
wget https://github.com/JohnnyonFlame/fixvid-evercade/releases/download/0.1/aarch64-libSDL2-2.0.so.0.2700.0 -O /usr/lib/libSDL2-2.0.so.0.2700.0 | |
wget https://github.com/JohnnyonFlame/fixvid-evercade/releases/download/0.1/armhf-libSDL2-2.0.so.0.2700.0 -O /usr/lib32/libSDL2-2.0.so.0.2700.0 | |
ln -s /usr/lib/libSDL2-2.0.so.0.2700.0 /usr/lib/libSDL2-2.0.so | |
ln -s /usr/lib/libSDL2-2.0.so.0.2700.0 /usr/lib/libSDL2-2.0.so.0 | |
ln -s /usr/lib32/libSDL2-2.0.so.0.2700.0 /usr/lib32/libSDL2-2.0.so | |
ln -s /usr/lib32/libSDL2-2.0.so.0.2700.0 /usr/lib32/libSDL2-2.0.so.0 | |
# Change some retroarch.cfg configurations... | |
sed -i "s/video_threaded = \"\(.*\)\"/video_threaded = \"false\"/" /usr/config/retroarch/retroarch.cfg | |
# Change the default soundcard to the hdmi one | |
sed -E -i "s/pcm \"hw:[0-9]+,[0-9]+\"/pcm \"hw:1,0\"/" /usr/config/asound.conf | |
# Setup AARCH64 GPU Mali-450 Drivers | |
rm -f /usr/lib/libGL* /usr/lib/libEGL* /usr/lib/libmali* /usr/lib/libgbm* /usr/lib/libMali* /usr/lib/libOpenCL.so | |
wget https://github.com/JohnnyonFlame/libmali-jelos/raw/main/lib/aarch64-linux-gnu/libmali-utgard-450-r7p0-gbm.so -O /usr/lib/libmali-utgard-450-r7p0-gbm.so | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libEGL.so | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libEGL.so.1 | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libEGL.so.1.0.0 | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libGLESv1_CM.so | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libGLESv1_CM.so.1 | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libGLESv1_CM.so.1.0.0 | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libGLESv2.so | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libGLESv2.so.2 | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libGLESv2.so.2.0.0 | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libOpenCL.so | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libgbm.so | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libgbm.so.1 | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libgbm.so.1.9.0 | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libmali.so | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libmali.so.1 | |
ln -s /usr/lib/libmali-utgard-450-r7p0-gbm.so /usr/lib/libMali.so | |
# Setup ARMHF GPU Mali-450 Drivers | |
rm -f /usr/lib32/libGL* /usr/lib32/libEGL* /usr/lib32/libmali* /usr/lib32/libgbm* /usr/lib32/libMali* /usr/lib32/libOpenCL.so | |
wget https://github.com/JohnnyonFlame/libmali-jelos/raw/main/lib/arm-linux-gnueabihf/libmali-utgard-450-r7p0-gbm.so -O /usr/lib32/libmali-utgard-450-r7p0-gbm.so | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libEGL.so | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libEGL.so.1 | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libEGL.so.1.0.0 | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libGLESv1_CM.so | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libGLESv1_CM.so.1 | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libGLESv1_CM.so.1.0.0 | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libGLESv2.so | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libGLESv2.so.2 | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libGLESv2.so.2.0.0 | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libOpenCL.so | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libgbm.so | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libgbm.so.1 | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libgbm.so.1.9.0 | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libmali.so | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libmali.so.1 | |
ln -s /usr/lib32/libmali-utgard-450-r7p0-gbm.so /usr/lib32/libMali.so | |
# Update cache | |
ldconfig -X | |
# ensure bootloader update isn't present for convenience | |
rm -rf /usr/share/bootloader | |
# Done with first time setup. Package me! |
Author
JohnnyonFlame
commented
Dec 21, 2022
Sources for binaries used here:
- SDL2 (upstream, sdl2 branch, https://github.com/libsdl-org/SDL/tree/SDL2)
- kmscon (downstream, https://github.com/JohnnyonFlame/kmscon)
- libmali (mirror, https://github.com/JohnnyonFlame/libmali-jelos)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment