mirror of
https://github.com/nestriness/nestri.git
synced 2025-12-12 16:55:37 +02:00
Fixes gpu_helpers returning "Non-VGA" devices as GPUs. I was curious about DeepSeek's so I tried it's hand with this as my head isn't quite up-to-speed yet 😅 But yeah it seems less error-prone than previous naive string-approach. --------- Co-authored-by: DatCaptainHorse <DatCaptainHorse@users.noreply.github.com> Co-authored-by: Wanjohi <elviswanjohi47@gmail.com> Co-authored-by: Wanjohi <71614375+wanjohiryan@users.noreply.github.com>
61 lines
1.8 KiB
Bash
61 lines
1.8 KiB
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
# Wait for dbus socket to be ready
|
|
echo "Waiting for DBus system bus socket..."
|
|
DBUS_SOCKET="/run/dbus/system_bus_socket"
|
|
for _ in {1..10}; do # Wait up to 10 seconds
|
|
if [ -e "$DBUS_SOCKET" ]; then
|
|
echo "DBus system bus socket is ready."
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
if [ ! -e "$DBUS_SOCKET" ]; then
|
|
echo "Error: DBus system bus socket did not appear. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
# Wait for PipeWire to be ready
|
|
echo "Waiting for PipeWire socket..."
|
|
PIPEWIRE_SOCKET="/run/user/${UID}/pipewire-0"
|
|
for _ in {1..10}; do # Wait up to 10 seconds
|
|
if [ -e "$PIPEWIRE_SOCKET" ]; then
|
|
echo "PipeWire socket is ready."
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
if [ ! -e "$PIPEWIRE_SOCKET" ]; then
|
|
echo "Error: PipeWire socket did not appear. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Detecting GPU vendor and installing necessary GStreamer plugins..."
|
|
source /etc/nestri/gpu_helpers.sh
|
|
|
|
get_gpu_info
|
|
|
|
# Check vendors in priority order
|
|
if [[ -n "${vendor_devices[nvidia]:-}" ]]; then
|
|
echo "NVIDIA GPU detected. Assuming drivers are linked"
|
|
elif [[ -n "${vendor_devices[intel]:-}" ]]; then
|
|
echo "Intel GPU detected, installing required packages..."
|
|
pacman -Sy --noconfirm gstreamer-vaapi gst-plugin-va gst-plugin-qsv
|
|
pacman -Sy --noconfirm vpl-gpu-rt
|
|
elif [[ -n "${vendor_devices[amd]:-}" ]]; then
|
|
echo "AMD GPU detected, installing required packages..."
|
|
pacman -Sy --noconfirm gstreamer-vaapi gst-plugin-va
|
|
else
|
|
echo "Unknown GPU vendor. No additional packages will be installed"
|
|
fi
|
|
|
|
# Clean up remainders
|
|
echo "Cleaning up old package cache..."
|
|
paccache -rk1
|
|
|
|
echo "Switching to nestri user for application startup..."
|
|
# Make sure user home dir is owned properly
|
|
chown ${USER}:${USER} /home/${USER}
|
|
exec sudo -E -u nestri /etc/nestri/entrypoint_nestri.sh
|