blob: 7f378d453a5b9b0f6fb87af733db4165cba43ec9 (
plain)
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
#!/bin/bash
# CoreCTRL (AMD GPU vezérlő) telepítő script
# Környezeti változók: INSTALL_USER, INSTALL_HOME, REPO_CONFIGS_URL
set -e
USER="$INSTALL_USER"
HOME="$INSTALL_HOME"
REPO_URL="${REPO_CONFIGS_URL:-https://git.rp1.hu/Nippy/Raveos-App-beta/raw/branch/main/raveos-app-installer-beta/configs/}"
ACTION="${1:-install}"
CONFIG_OVERRIDE_DIR="${RAVEOS_CONFIG_OVERRIDE_DIR:-/etc/raveos-beta/configs}"
CONFIG_PACKAGE_DIR="${RAVEOS_CONFIG_PACKAGE_DIR:-/usr/share/raveos-app-installer-beta/configs}"
run_as_user() {
runuser -u "$USER" -- env HOME="$HOME" "$@"
}
resolve_local_config() {
local name="$1"
local candidate
for candidate in \
"$CONFIG_OVERRIDE_DIR/$name" \
"$CONFIG_PACKAGE_DIR/$name"
do
if [[ -f "$candidate" ]]; then
printf '%s\n' "$candidate"
return 0
fi
done
return 1
}
remove_installed_packages() {
local installed=()
local pkg
for pkg in "$@"; do
if pacman -Qq "$pkg" >/dev/null 2>&1; then
installed+=("$pkg")
fi
done
if ((${#installed[@]})); then
pacman -Rcns --noconfirm "${installed[@]}"
fi
}
if [[ "$ACTION" == "remove" ]]; then
echo "Removing CoreCTRL for $USER..."
remove_installed_packages corectrl
rm -f /etc/polkit-1/rules.d/90-corectrl.rules
rm -f "$HOME/.config/autostart/org.corectrl.CoreCtrl.desktop"
rm -rf "$HOME/.config/corectrl"
echo "CoreCTRL removal complete!"
exit 0
fi
echo "Installing CoreCTRL for $USER..."
# CoreCTRL telepítése
pacman -S --noconfirm --needed corectrl
# CoreCTRL config letöltése
echo "Downloading CoreCTRL config..."
run_as_user mkdir -p "$HOME/.config/corectrl"
if local_cfg="$(resolve_local_config corectrl.ini)"; then
cp "$local_cfg" "$HOME/.config/corectrl/corectrl.ini"
else
wget -q -O "$HOME/.config/corectrl/corectrl.ini" "${REPO_URL}corectrl.ini" || true
fi
chown "$USER:$USER" "$HOME/.config/corectrl/corectrl.ini" 2>/dev/null || true
# Autostart beállítása
run_as_user mkdir -p "$HOME/.config/autostart"
cp /usr/share/applications/org.corectrl.CoreCtrl.desktop "$HOME/.config/autostart/"
chown "$USER:$USER" "$HOME/.config/autostart/org.corectrl.CoreCtrl.desktop"
# Polkit szabály létrehozása (jelszó nélküli indítás)
cat > /etc/polkit-1/rules.d/90-corectrl.rules << EOF
polkit.addRule(function(action, subject) {
if ((action.id == "org.corectrl.helper.init" ||
action.id == "org.corectrl.helperkiller.init") &&
subject.local == true &&
subject.active == true &&
subject.isInGroup("$USER")) {
return polkit.Result.YES;
}
});
EOF
# AMD GPU kernel paraméterek hozzáadása (ha systemd-boot)
if [[ -d /boot/loader/entries ]]; then
for conf in /boot/loader/entries/*.conf; do
if [[ -f "$conf" ]]; then
if ! grep -q "amdgpu.ppfeaturemask" "$conf"; then
sed -i '/^options/s/$/ amdgpu.ppfeaturemask=0xffffffff/' "$conf"
fi
fi
done
fi
# GRUB esetén
if [[ -f /etc/default/grub ]]; then
if ! grep -q "amdgpu.ppfeaturemask" /etc/default/grub; then
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="\(.*\)"/GRUB_CMDLINE_LINUX_DEFAULT="amdgpu.ppfeaturemask=0xffffffff \1"/' /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg 2>/dev/null || true
fi
fi
echo "CoreCTRL installation complete!"
echo "Please reboot for kernel parameters to take effect."
|