blob: 3d122ed4f9342366a6c465834736398c42d40bca (
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#!/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 -Rnsu --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"
if [[ -d /boot/loader/entries ]]; then
sed -i 's/ amdgpu\.ppfeaturemask=0xffffffff//' /boot/loader/entries/*.conf 2>/dev/null || true
fi
if [[ -f /etc/default/grub ]] && grep -q "amdgpu.ppfeaturemask" /etc/default/grub; then
sed -i 's/amdgpu\.ppfeaturemask=0xffffffff //' /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg 2>/dev/null || true
fi
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
if wget -q -O "$HOME/.config/corectrl/corectrl.ini" "${REPO_URL}corectrl.ini"; then
echo "e3884788efc7ebd5fc004c4158e79bd84e26575cb0146169774e8039ab29968d $HOME/.config/corectrl/corectrl.ini" | sha256sum -c - >/dev/null || {
echo "ERROR: corectrl.ini checksum mismatch"
rm -f "$HOME/.config/corectrl/corectrl.ini"
exit 1
}
fi
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=0
if lspci -nn | grep -E "VGA|3D|Display" | grep -q "\[1002:"; then
AMD_GPU=1
fi
# AMD GPU kernel paraméterek hozzáadása (ha systemd-boot)
if [[ $AMD_GPU -eq 1 && -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 [[ $AMD_GPU -eq 1 && -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!"
if [[ $AMD_GPU -eq 1 ]]; then
echo "Please reboot for kernel parameters to take effect."
else
echo "No AMD GPU found, kernel parameters were not changed."
fi
|