Repository navigation
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·84 lines (71 loc) · 3.5 KB
/
Copy pathinstall.sh
File metadata and controls
executable file
·84 lines (71 loc) · 3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/bash
# ╦╔═╗╔═╗╦╔═╦╔═╔╗╔╦╔═╗╔═╗ ╔═╗╦
# ║╠═╣║ ╠╩╗╠╩╗║║║║╠╣ ║╣ ╠═╣║
# ╚╝╩ ╩╚═╝╩ ╩╩ ╩╝╚╝╩╚ ╚═╝ ╩ ╩╩ JACKKNIFE AI™
#
# Install DisplayLink fix for immutable Fedora (Silverblue/Aurora/Bazzite)
#
# Usage: sudo ./install.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo ""
echo " ██╗ █████╗ ██████╗██╗ ██╗██╗ ██╗███╗ ██╗██╗███████╗███████╗"
echo " ██║██╔══██╗██╔════╝██║ ██╔╝██║ ██╔╝████╗ ██║██║██╔════╝██╔════╝"
echo " ██║███████║██║ █████╔╝ █████╔╝ ██╔██╗ ██║██║█████╗ █████╗ "
echo "██ ██║██╔══██║██║ ██╔═██╗ ██╔═██╗ ██║╚██╗██║██║██╔══╝ ██╔══╝ "
echo "╚█████╔╝██║ ██║╚██████╗██║ ██╗██║ ██╗██║ ╚████║██║██║ ███████╗"
echo " ╚════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚══════╝"
echo " JACKKNIFE AI™"
echo ""
echo "Installing DisplayLink fix for immutable Fedora..."
# Check if running as root
if [ "$EUID" -ne 0 ]; then
echo "Please run as root: sudo ./install.sh"
exit 1
fi
# Check if displaylink package is installed
if ! rpm -q displaylink &>/dev/null; then
echo "ERROR: displaylink package not installed"
echo "Install it first with: rpm-ostree install <displaylink-rpm-url>"
exit 1
fi
# Install the loader script
echo "Installing evdi-loader.sh..."
install -m 755 "${SCRIPT_DIR}/evdi-loader.sh" /usr/local/bin/evdi-loader.sh
# Install the systemd override
echo "Installing systemd override..."
mkdir -p /etc/systemd/system/displaylink-driver.service.d
install -m 644 "${SCRIPT_DIR}/displaylink-driver.service.d/override.conf" \
/etc/systemd/system/displaylink-driver.service.d/override.conf
# Add [Install] section to enable the service
echo "Configuring service to start on boot..."
cat > /etc/systemd/system/displaylink-driver.service.d/enable.conf << 'EOF'
[Install]
WantedBy=graphical.target
EOF
# Reload systemd
echo "Reloading systemd..."
systemctl daemon-reload
# Enable the service for autostart
echo "Enabling displaylink-driver service..."
systemctl enable displaylink-driver
# Build evdi for current kernel if needed
KERNEL=$(uname -r)
if [ ! -f "/var/lib/dkms/evdi/1.14.11/${KERNEL}/x86_64/module/evdi.ko" ] && \
[ ! -f "/var/lib/dkms/evdi/1.14.11/${KERNEL}/x86_64/module/evdi.ko.xz" ]; then
echo "Building evdi for kernel ${KERNEL}..."
dkms autoinstall
fi
# Start the service
echo "Starting displaylink-driver service..."
systemctl restart displaylink-driver
# Check status
if systemctl is-active --quiet displaylink-driver; then
echo ""
echo "SUCCESS! DisplayLink is now running."
echo "Check 'ls /sys/class/drm/' for your display."
else
echo ""
echo "WARNING: Service may not have started correctly."
echo "Check: systemctl status displaylink-driver"
fi