diff options
| author | Nippy <nippy@Nippy-Mac-mini.local> | 2026-11-01 18:13:54 +0100 |
|---|---|---|
| committer | Nippy <nippy@Nippy-Mac-mini.local> | 2026-11-01 18:13:54 +0100 |
| commit | a64ef966534f8dba6af889ba4bfce15691bfc85b (patch) | |
| tree | b30f284d05b80fa115569ab220deae13797fad6f /raveos-center/adat/actions/corectrl.sh | |
| parent | 919f977b40016f588b0c8532c8a57f6035056b95 (diff) | |
| download | RaveOS-PKGBUILD-a64ef966534f8dba6af889ba4bfce15691bfc85b.tar.gz RaveOS-PKGBUILD-a64ef966534f8dba6af889ba4bfce15691bfc85b.zip | |
új telepítő
Diffstat (limited to 'raveos-center/adat/actions/corectrl.sh')
| -rwxr-xr-x | raveos-center/adat/actions/corectrl.sh | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/raveos-center/adat/actions/corectrl.sh b/raveos-center/adat/actions/corectrl.sh new file mode 100755 index 0000000..3d122ed --- /dev/null +++ b/raveos-center/adat/actions/corectrl.sh @@ -0,0 +1,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 |