From 2691f4f5d0905f56331b447ee81f15ee4fa3a500 Mon Sep 17 00:00:00 2001 From: Michael Kizimov Date: Sun, 10 Mar 2024 22:50:34 +0300 Subject: [PATCH] Add AMDgpu support - Add full amdgpu support - Add flags-configuration support for AMDgpu - Add on-the-fly configuration during installation fot AMDgpu --- AmbientLightFix_RunME.sh | 852 ++++++++++++++++++++++----------- ambientLightFix_amdgpu | 204 ++++++++ ambientLightFix_amdgpu.service | 9 + 3 files changed, 783 insertions(+), 282 deletions(-) mode change 100644 => 100755 AmbientLightFix_RunME.sh create mode 100755 ambientLightFix_amdgpu create mode 100644 ambientLightFix_amdgpu.service diff --git a/AmbientLightFix_RunME.sh b/AmbientLightFix_RunME.sh old mode 100644 new mode 100755 index ee17e07..8c5f182 --- a/AmbientLightFix_RunME.sh +++ b/AmbientLightFix_RunME.sh @@ -1,5 +1,5 @@ -#!/bin/sh -SOURCE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +#!/bin/bash +SOURCE="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" #echo $SOURCE; while true; do read -p " @@ -16,431 +16,719 @@ while true; do Continue? (y/n) " yn case $yn in - [Yy]* ) echo; echo " - Great, let's do it!"; echo; break;; - [Nn]* ) echo; echo " - ... ok, you were supposed to hit Y :-/"; echo; exit;; - * ) echo; echo " - ! You must answer something I understand... - Y or N"; echo;; + [Yy]*) + echo + echo " + Great, let's do it!" + echo + break + ;; + [Nn]*) + echo + echo " + ... ok, you were supposed to hit Y :-/" + echo + exit + ;; + *) + echo + echo " + ! You must answer something I understand... - Y or N" + echo + ;; esac done - -if [ -f "/sys/bus/iio/devices/iio:device0/in_illuminance_raw" ]; - then - echo " +if [ -f "/sys/bus/iio/devices/iio:device0/in_illuminance_raw" ]; then + echo " -------------------------------------------- *** Things are looking up - Found sensor *** - --------------------------------------------"; - sleep 1; echo; - else - echo " + --------------------------------------------" + sleep 1 + echo +else + echo " ------------------------------------------------- | No sensors here... AmbientLightFix won't be | | able to run on your machine :-( | - -------------------------------------------------"; - exit + -------------------------------------------------" + exit fi -if [ -f "/sys/class/backlight/gmux_backlight/brightness" ]; - then +if [ -f "/sys/class/backlight/gmux_backlight/brightness" ]; then - # Letar efter existerande lightfix och erbjuder avinstallation eller uppdatering - if [ -f "/usr/bin/ambientLightFix_gmux" ]; - then - while true; do - read -p " + # Letar efter existerande lightfix och erbjuder avinstallation eller uppdatering + if [ -f "/usr/bin/ambientLightFix_gmux" ]; then + while true; do + read -p " -------| Found existing Ambient Light Fix! |------- Do you want to Uninstall [1] Ambient Light Fix... ... or do you want to Update [2] to a newer version? --------------------------------------------------- " gmux - case $gmux in - [1]* ) echo; - systemctl stop ambientLightFix_gmux.service; - sudo sh -c "rm /usr/bin/ambientLightFix_gmux"; - systemctl disable ambientLightFix_gmux.service; - sudo sh -c "rm /etc/systemd/system/ambientLightFix_gmux.service"; - echo " - ---------------| Uninstalled! |----------------"; - echo; break;; - [2]* ) echo; - systemctl stop ambientLightFix_gmux.service; - sudo sh -c "rm /usr/bin/ambientLightFix_gmux"; - sudo sh -c "cp '$SOURCE'/ambientLightFix_gmux /usr/bin/ambientLightFix_gmux"; - systemctl start ambientLightFix_gmux.service; - echo " - -----------------| Updated! |------------------"; - echo; break;; - * ) echo; echo " + case $gmux in + [1]*) + echo + systemctl stop ambientLightFix_gmux.service + sudo sh -c "rm /usr/bin/ambientLightFix_gmux" + systemctl disable ambientLightFix_gmux.service + sudo sh -c "rm /etc/systemd/system/ambientLightFix_gmux.service" + echo " + ---------------| Uninstalled! |----------------" + echo + break + ;; + [2]*) + echo + systemctl stop ambientLightFix_gmux.service + sudo sh -c "rm /usr/bin/ambientLightFix_gmux" + sudo sh -c "cp '$SOURCE'/ambientLightFix_gmux /usr/bin/ambientLightFix_gmux" + systemctl start ambientLightFix_gmux.service + echo " + -----------------| Updated! |------------------" + echo + break + ;; + *) + echo + echo " ------------- ! type 1 or 2 - -------------"; echo;; - esac - done - else + -------------" + echo + ;; + esac + done + else - echo " + echo " ------------------ *** found gmux *** ------------------ - "; + " - echo " + echo " -> Will test changing brightness before installation... - "; echo; sleep 1 - echo " + " + echo + sleep 1 + echo " -> Current brightness: " - cat /sys/class/backlight/gmux_backlight/brightness; sleep 1; - echo " + cat /sys/class/backlight/gmux_backlight/brightness + sleep 1 + echo " -> Setting brightness to 50, then step up to 500... - "; - sleep 3; - sudo sh -c "echo 50 > /sys/class/backlight/gmux_backlight/brightness"; - sleep 1; - sudo sh -c "echo 100 > /sys/class/backlight/gmux_backlight/brightness"; - sleep 1; - sudo sh -c "echo 150 > /sys/class/backlight/gmux_backlight/brightness"; - sleep 1; - sudo sh -c "echo 200 > /sys/class/backlight/gmux_backlight/brightness"; - sleep 1; - sudo sh -c "echo 250 > /sys/class/backlight/gmux_backlight/brightness"; - sleep 1; - sudo sh -c "echo 300 > /sys/class/backlight/gmux_backlight/brightness"; - sleep 1; - sudo sh -c "echo 350 > /sys/class/backlight/gmux_backlight/brightness"; - sleep 1; - sudo sh -c "echo 400 > /sys/class/backlight/gmux_backlight/brightness"; - sleep 1; - sudo sh -c "echo 450 > /sys/class/backlight/gmux_backlight/brightness"; - sleep 1; - sudo sh -c "echo 500 > /sys/class/backlight/gmux_backlight/brightness"; - echo " - ->Current brightness: "; - cat /sys/class/backlight/gmux_backlight/brightness; sleep 1; echo " + " + sleep 3 + sudo sh -c "echo 50 > /sys/class/backlight/gmux_backlight/brightness" + sleep 1 + sudo sh -c "echo 100 > /sys/class/backlight/gmux_backlight/brightness" + sleep 1 + sudo sh -c "echo 150 > /sys/class/backlight/gmux_backlight/brightness" + sleep 1 + sudo sh -c "echo 200 > /sys/class/backlight/gmux_backlight/brightness" + sleep 1 + sudo sh -c "echo 250 > /sys/class/backlight/gmux_backlight/brightness" + sleep 1 + sudo sh -c "echo 300 > /sys/class/backlight/gmux_backlight/brightness" + sleep 1 + sudo sh -c "echo 350 > /sys/class/backlight/gmux_backlight/brightness" + sleep 1 + sudo sh -c "echo 400 > /sys/class/backlight/gmux_backlight/brightness" + sleep 1 + sudo sh -c "echo 450 > /sys/class/backlight/gmux_backlight/brightness" + sleep 1 + sudo sh -c "echo 500 > /sys/class/backlight/gmux_backlight/brightness" + echo " + ->Current brightness: " + cat /sys/class/backlight/gmux_backlight/brightness + sleep 1 + echo " --------------------------------- ... Everything good so far! Let's start setting things up :-) --------------------------------- - "; - echo; echo; - echo " + " + echo + echo + echo " --------------------- *** Copying files *** --------------------- - "; - sudo sh -c "cp '$SOURCE'/ambientLightFix_gmux /usr/bin/ambientLightFix_gmux"; - sudo sh -c "cp '$SOURCE'/ambientLightFix_gmux.service /etc/systemd/system/ambientLightFix_gmux.service"; - echo; - sleep 1; - echo " + " + sudo sh -c "cp '$SOURCE'/ambientLightFix_gmux /usr/bin/ambientLightFix_gmux" + sudo sh -c "cp '$SOURCE'/ambientLightFix_gmux.service /etc/systemd/system/ambientLightFix_gmux.service" + echo + sleep 1 + echo " ------------------ *** Setting up *** ------------------ - "; - systemctl enable ambientLightFix_gmux.service; - echo; - echo " + " + systemctl enable ambientLightFix_gmux.service + echo + echo " ------------ *** Done *** ------------ - "; - echo; - while true; do - read -p " + " + echo + while true; do + read -p " -----------------| All set! |--------------- You wanna start Ambient Light Fix now? (y/n) -------------------------------------------- " gmux_start - case $gmux_start in - [Yy]* ) echo; echo " + case $gmux_start in + [Yy]*) + echo + echo " --------------| Congratulations! |--------------- You're all done! You can close this terminal now. ------------------------------------------------- - "; systemctl start ambientLightFix_gmux.service; break;; - [Nn]* ) echo; echo " + " + systemctl start ambientLightFix_gmux.service + break + ;; + [Nn]*) + echo + echo " ---------------------| OK |---------------------- Ambient Light Fix will start next time you reboot ------------------------------------------------- - "; echo; exit;; - esac - done - echo "Done :-)"; - fi + " + echo + exit + ;; + esac + done + echo "Done :-)" + fi - - else echo " +else + echo " ------------------------------------------- No hybrid graphics here - checking Radeon... ------------------------------------------- - "; echo; sleep 1 + " + echo + sleep 1 fi -if [ -f "/sys/class/backlight/radeon_bl0/brightness" ]; - then +if [ -f "/sys/class/backlight/radeon_bl0/brightness" ]; then - # Letar efter existerande lightfix och erbjuder avinstallation eller uppdatering - if [ -f "/usr/bin/ambientLightFix_radeon" ]; - then - while true; do - read -p " + # Letar efter existerande lightfix och erbjuder avinstallation eller uppdatering + if [ -f "/usr/bin/ambientLightFix_radeon" ]; then + while true; do + read -p " -------| Found existing Ambient Light Fix! |------- Do you want to Uninstall [1] Ambient Light Fix... ... or do you want to Update [2] to a newer version? --------------------------------------------------- " radeon - case $radeon in - [1]* ) echo; - systemctl stop ambientLightFix_radeon.service; - sudo sh -c "rm /usr/bin/ambientLightFix_radeon"; - systemctl disable ambientLightFix_radeon.service; - sudo sh -c "rm /etc/systemd/system/ambientLightFix_radeon.service"; - echo " - ---------------| Uninstalled! |----------------"; - echo; break;; - [2]* ) echo; - systemctl stop ambientLightFix_radeon.service; - sudo sh -c "rm /usr/bin/ambientLightFix_radeon"; - sudo sh -c "cp '$SOURCE'/ambientLightFix_radeon /usr/bin/ambientLightFix_radeon"; - systemctl start ambientLightFix_radeon.service; - echo " - -----------------| Updated! |------------------"; - echo; break;; - * ) echo; echo " + case $radeon in + [1]*) + echo + systemctl stop ambientLightFix_radeon.service + sudo sh -c "rm /usr/bin/ambientLightFix_radeon" + systemctl disable ambientLightFix_radeon.service + sudo sh -c "rm /etc/systemd/system/ambientLightFix_radeon.service" + echo " + ---------------| Uninstalled! |----------------" + echo + break + ;; + [2]*) + echo + systemctl stop ambientLightFix_radeon.service + sudo sh -c "rm /usr/bin/ambientLightFix_radeon" + sudo sh -c "cp '$SOURCE'/ambientLightFix_radeon /usr/bin/ambientLightFix_radeon" + systemctl start ambientLightFix_radeon.service + echo " + -----------------| Updated! |------------------" + echo + break + ;; + *) + echo + echo " ------------- ! type 1 or 2 - -------------"; echo;; - esac - done - else + -------------" + echo + ;; + esac + done + else - echo " + echo " ------------------ *** found radeon *** ------------------ - "; + " - echo " + echo " -> Will test changing brightness before installation... - "; echo; sleep 1 - echo " + " + echo + sleep 1 + echo " -> Current brightness: " - cat /sys/class/backlight/radeon_bl0/brightness; sleep 1; - echo " + cat /sys/class/backlight/radeon_bl0/brightness + sleep 1 + echo " -> Setting brightness to 50, then step up to 500... - "; - sleep 3; - sudo sh -c "echo 50 > /sys/class/backlight/radeon_bl0/brightness"; - sleep 1; - sudo sh -c "echo 100 > /sys/class/backlight/radeon_bl0/brightness"; - sleep 1; - sudo sh -c "echo 150 > /sys/class/backlight/radeon_bl0/brightness"; - sleep 1; - sudo sh -c "echo 200 > /sys/class/backlight/radeon_bl0/brightness"; - sleep 1; - sudo sh -c "echo 250 > /sys/class/backlight/radeon_bl0/brightness"; - sleep 1; - sudo sh -c "echo 300 > /sys/class/backlight/radeon_bl0/brightness"; - sleep 1; - sudo sh -c "echo 350 > /sys/class/backlight/radeon_bl0/brightness"; - sleep 1; - sudo sh -c "echo 400 > /sys/class/backlight/radeon_bl0/brightness"; - sleep 1; - sudo sh -c "echo 450 > /sys/class/backlight/radeon_bl0/brightness"; - sleep 1; - sudo sh -c "echo 500 > /sys/class/backlight/radeon_bl0/brightness"; - echo " - ->Current brightness: "; - cat /sys/class/backlight/radeon_bl0/brightness; sleep 1; echo " + " + sleep 3 + sudo sh -c "echo 50 > /sys/class/backlight/radeon_bl0/brightness" + sleep 1 + sudo sh -c "echo 100 > /sys/class/backlight/radeon_bl0/brightness" + sleep 1 + sudo sh -c "echo 150 > /sys/class/backlight/radeon_bl0/brightness" + sleep 1 + sudo sh -c "echo 200 > /sys/class/backlight/radeon_bl0/brightness" + sleep 1 + sudo sh -c "echo 250 > /sys/class/backlight/radeon_bl0/brightness" + sleep 1 + sudo sh -c "echo 300 > /sys/class/backlight/radeon_bl0/brightness" + sleep 1 + sudo sh -c "echo 350 > /sys/class/backlight/radeon_bl0/brightness" + sleep 1 + sudo sh -c "echo 400 > /sys/class/backlight/radeon_bl0/brightness" + sleep 1 + sudo sh -c "echo 450 > /sys/class/backlight/radeon_bl0/brightness" + sleep 1 + sudo sh -c "echo 500 > /sys/class/backlight/radeon_bl0/brightness" + echo " + ->Current brightness: " + cat /sys/class/backlight/radeon_bl0/brightness + sleep 1 + echo " --------------------------------- ... Everything good so far! Let's start setting things up :-) --------------------------------- - "; - echo; echo; - echo " + " + echo + echo + echo " --------------------- *** Copying files *** --------------------- - "; - sudo sh -c "cp '$SOURCE'/ambientLightFix_radeon /usr/bin/ambientLightFix_radeon"; - sudo sh -c "cp '$SOURCE'/ambientLightFix_radeon.service /etc/systemd/system/ambientLightFix_radeon.service"; - echo; - sleep 1; - echo " + " + sudo sh -c "cp '$SOURCE'/ambientLightFix_radeon /usr/bin/ambientLightFix_radeon" + sudo sh -c "cp '$SOURCE'/ambientLightFix_radeon.service /etc/systemd/system/ambientLightFix_radeon.service" + echo + sleep 1 + echo " ------------------ *** Setting up *** ------------------ - "; - systemctl enable ambientLightFix_radeon.service; - echo; - echo " + " + systemctl enable ambientLightFix_radeon.service + echo + echo " ------------ *** Done *** ------------ - "; - echo; - while true; do - read -p " + " + echo + while true; do + read -p " -----------------| All set! |--------------- You wanna start Ambient Light Fix now? (y/n) -------------------------------------------- " radeon_start - case $radeon_start in - [Yy]* ) echo; echo " + case $radeon_start in + [Yy]*) + echo + echo " --------------| Congratulations! |--------------- You're all done! You can close this terminal now. ------------------------------------------------- - "; systemctl start ambientLightFix_radeon.service; break;; - [Nn]* ) echo; echo " + " + systemctl start ambientLightFix_radeon.service + break + ;; + [Nn]*) + echo + echo " ---------------------| OK |---------------------- Ambient Light Fix will start next time you reboot ------------------------------------------------- - "; echo; exit;; - esac - done - echo "Done :-)"; - fi - + " + echo + exit + ;; + esac + done + echo "Done :-)" + fi - else echo " +else + echo " ------------------------------------------- - No Radeon graphics here - checking intel... + No Radeon graphics here - checking Intel... ------------------------------------------- - "; echo; sleep 1 + " + echo + sleep 1 fi -if [ -f "/sys/class/backlight/intel_backlight/brightness" ]; - then +if [ -f "/sys/class/backlight/intel_backlight/brightness" ]; then - # Letar efter existerande lightfix och erbjuder avinstallation eller uppdatering - if [ -f "/usr/bin/ambientLightFix_intel" ]; - then - while true; do - read -p " + # Letar efter existerande lightfix och erbjuder avinstallation eller uppdatering + if [ -f "/usr/bin/ambientLightFix_intel" ]; then + while true; do + read -p " --------| Found existing Ambient Light Fix! |------- Do you want to Uninstall [1] Ambient Light Fix... ... or do you want to Update [2] to a newer version? ---------------------------------------------------- " intel - case $intel in - [1]* ) echo; - systemctl stop ambientLightFix_intel.service; - sudo sh -c "rm /usr/bin/ambientLightFix_intel"; - systemctl disable ambientLightFix_intel.service; - sudo sh -c "rm /etc/systemd/system/ambientLightFix_intel.service"; - echo " + case $intel in + [1]*) + echo + systemctl stop ambientLightFix_intel.service + sudo sh -c "rm /usr/bin/ambientLightFix_intel" + systemctl disable ambientLightFix_intel.service + sudo sh -c "rm /etc/systemd/system/ambientLightFix_intel.service" + echo " ------------| Uninstalled! |------------ - "; echo; break;; - [2]* ) echo; - systemctl stop ambientLightFix_intel.service; - sudo sh -c "rm /usr/bin/ambientLightFix_intel"; - sudo sh -c "cp '$SOURCE'/ambientLightFix_intel /usr/bin/ambientLightFix_intel"; - systemctl start ambientLightFix_intel.service; - echo " + " + echo + break + ;; + [2]*) + echo + systemctl stop ambientLightFix_intel.service + sudo sh -c "rm /usr/bin/ambientLightFix_intel" + sudo sh -c "cp '$SOURCE'/ambientLightFix_intel /usr/bin/ambientLightFix_intel" + systemctl start ambientLightFix_intel.service + echo " --------| Updated! |-------- - " echo; break;; - * ) echo " + " echo + break + ;; + *) + echo " ----------------- ! type one or two ----------------- - "; echo;; - esac - done - else + " + echo + ;; + esac + done + else - echo " + echo " ------------------- *** found intel *** ------------------- - "; echo " + " + echo " -> Will test changing brightness before installation... - "; echo; sleep 1 - echo " + " + echo + sleep 1 + echo " -> Current brightness: " - cat /sys/class/backlight/intel_backlight/brightness; sleep 1; - echo " + cat /sys/class/backlight/intel_backlight/brightness + sleep 1 + echo " -> Setting brightness to 50, then step up to 500... - "; - sleep 3; - sudo sh -c "echo 50 > /sys/class/backlight/intel_backlight/brightness"; - sleep 1; - sudo sh -c "echo 100 > /sys/class/backlight/intel_backlight/brightness"; - sleep 1; - sudo sh -c "echo 150 > /sys/class/backlight/intel_backlight/brightness"; - sleep 1; - sudo sh -c "echo 200 > /sys/class/backlight/intel_backlight/brightness"; - sleep 1; - sudo sh -c "echo 250 > /sys/class/backlight/intel_backlight/brightness"; - sleep 1; - sudo sh -c "echo 300 > /sys/class/backlight/intel_backlight/brightness"; - sleep 1; - sudo sh -c "echo 350 > /sys/class/backlight/intel_backlight/brightness"; - sleep 1; - sudo sh -c "echo 400 > /sys/class/backlight/intel_backlight/brightness"; - sleep 1; - sudo sh -c "echo 450 > /sys/class/backlight/intel_backlight/brightness"; - sleep 1; - sudo sh -c "echo 500 > /sys/class/backlight/intel_backlight/brightness"; - echo " - -> Current brightness: "; - cat /sys/class/backlight/intel_backlight/brightness; sleep 1; echo " + " + sleep 3 + sudo sh -c "echo 50 > /sys/class/backlight/intel_backlight/brightness" + sleep 1 + sudo sh -c "echo 100 > /sys/class/backlight/intel_backlight/brightness" + sleep 1 + sudo sh -c "echo 150 > /sys/class/backlight/intel_backlight/brightness" + sleep 1 + sudo sh -c "echo 200 > /sys/class/backlight/intel_backlight/brightness" + sleep 1 + sudo sh -c "echo 250 > /sys/class/backlight/intel_backlight/brightness" + sleep 1 + sudo sh -c "echo 300 > /sys/class/backlight/intel_backlight/brightness" + sleep 1 + sudo sh -c "echo 350 > /sys/class/backlight/intel_backlight/brightness" + sleep 1 + sudo sh -c "echo 400 > /sys/class/backlight/intel_backlight/brightness" + sleep 1 + sudo sh -c "echo 450 > /sys/class/backlight/intel_backlight/brightness" + sleep 1 + sudo sh -c "echo 500 > /sys/class/backlight/intel_backlight/brightness" + echo " + -> Current brightness: " + cat /sys/class/backlight/intel_backlight/brightness + sleep 1 + echo " --------------------------------- ... Everything good so far. Let's start setting things up :-) --------------------------------- - "; echo; echo; - echo " + " + echo + echo + echo " --------------------- *** Copying files *** --------------------- - "; - sudo sh -c "cp '$SOURCE'/ambientLightFix_intel /usr/bin/ambientLightFix_intel"; - sudo sh -c "cp '$SOURCE'/ambientLightFix_intel.service /etc/systemd/system/ambientLightFix_intel.service"; - echo; - sleep 1; - echo " + " + sudo sh -c "cp '$SOURCE'/ambientLightFix_intel /usr/bin/ambientLightFix_intel" + sudo sh -c "cp '$SOURCE'/ambientLightFix_intel.service /etc/systemd/system/ambientLightFix_intel.service" + echo + sleep 1 + echo " ------------------ *** Setting up *** ------------------ - "; - systemctl enable ambientLightFix_intel.service; - echo; - echo " + " + systemctl enable ambientLightFix_intel.service + echo + echo " ------------ *** Done *** ------------ - "; - echo; - while true; do - read -p " + " + echo + while true; do + read -p " ------------------| All set |--------------- You wanna start Ambient Light Fix now? (y/n) -------------------------------------------- " intel_start - case $intel_start in - [Yy]* ) echo; echo " + case $intel_start in + [Yy]*) + echo + echo " ----------------| Congratulations |-------------- You're all done! You can close this terminal now. ------------------------------------------------- - "; systemctl start ambientLightFix_intel.service; break;; - [Nn]* ) echo; echo " + " + systemctl start ambientLightFix_intel.service + break + ;; + [Nn]*) + echo + echo " ----------------------| OK |--------------------- Ambient Light Fix will start next time you reboot ------------------------------------------------- - "; echo; exit;; - esac - done - echo "Done :-)"; + " + echo + exit + ;; + esac + done + echo "Done :-)" + + fi + +else + echo " + ------------------------------------------- + No Intel graphics here - checking AMDgpu... + ------------------------------------------- + " + echo + sleep 1 +fi + +if [ -f "/sys/class/backlight/amdgpu_bl1/brightness" ]; then + + # Letar efter existerande lightfix och erbjuder avinstallation eller uppdatering + if [ -f "/usr/bin/ambientLightFix_amdgpu" ]; then + while true; do + read -p " + --------| Found existing Ambient Light Fix! |------- + Do you want to Uninstall [1] Ambient Light Fix... + ... or do you want to Update [2] to a newer version? + ---------------------------------------------------- + " amdgpu + case $amdgpu in + [1]*) + echo + systemctl disable --now ambientLightFix_amdgpu.service + sudo sh -c "rm /usr/bin/ambientLightFix_amdgpu" + sudo sh -c "rm /etc/systemd/system/ambientLightFix_amdgpu.service" + echo " + ------------| Uninstalled! |------------ + " + echo + break + ;; + [2]*) + echo + systemctl stop ambientLightFix_amdgpu.service + sudo sh -c "rm /usr/bin/ambientLightFix_amdgpu" + sudo sh -c "cp '$SOURCE'/ambientLightFix_amdgpu /usr/bin/ambientLightFix_amdgpu" + systemctl start ambientLightFix_amdgpu.service + echo " + --------| Updated! |-------- + " echo + break + ;; + *) + echo " + ----------------- + ! type one or two + ----------------- + " + echo + ;; + esac + done + else - fi + echo " + ------------------- + *** found intel *** + ------------------- + " + echo " + -> Will test changing brightness before installation... + " + echo + sleep 1 + echo -n " + -> Current brightness: " + cat /sys/class/backlight/amdgpu_bl1/brightness + sleep 1 + echo " + -> Setting brightness to 50, then step up to 500... + " + sleep 3 + sudo sh -c "echo 50 > /sys/class/backlight/amdgpu_bl1/brightness" + sleep 1 + sudo sh -c "echo 100 > /sys/class/backlight/amdgpu_bl1/brightness" + sleep 1 + sudo sh -c "echo 150 > /sys/class/backlight/amdgpu_bl1/brightness" + sleep 1 + sudo sh -c "echo 200 > /sys/class/backlight/amdgpu_bl1/brightness" + sleep 1 + sudo sh -c "echo 250 > /sys/class/backlight/amdgpu_bl1/brightness" + sleep 1 + sudo sh -c "echo 300 > /sys/class/backlight/amdgpu_bl1/brightness" + sleep 1 + sudo sh -c "echo 350 > /sys/class/backlight/amdgpu_bl1/brightness" + sleep 1 + sudo sh -c "echo 400 > /sys/class/backlight/amdgpu_bl1/brightness" + sleep 1 + sudo sh -c "echo 450 > /sys/class/backlight/amdgpu_bl1/brightness" + sleep 1 + sudo sh -c "echo 500 > /sys/class/backlight/amdgpu_bl1/brightness" + echo -n " + -> Current brightness: " + cat /sys/class/backlight/amdgpu_bl1/brightness + sleep 1 + echo " + --------------------------------- + ... Everything good so far. + Let's start setting things up :-) + --------------------------------- + " + echo + echo + echo " + --------------------- + *** Copying files *** + --------------------- + " + sudo sh -c "cp '$SOURCE'/ambientLightFix_amdgpu /usr/bin/ambientLightFix_amdgpu" + sudo sh -c "cp '$SOURCE'/ambientLightFix_amdgpu.service /etc/systemd/system/ambientLightFix_amdgpu.service" + echo + sleep 1 + echo " + ------------------ + *** Setting up *** + ------------------ + " + systemctl enable ambientLightFix_amdgpu.service + echo + echo " + ------------ + *** Done *** + ------------ + " + echo + + while true; do + read -p " + ------------------------| All set |------------------------ + You wanna configure Ambient Light Fix for AMDgpu now? (y/n) + ----------------------------------------------------------- + " amdgpu_start + case $amdgpu_start in + [Yy]*) + echo + echo " + ----------------| Reminder |-------------- + Read out the help for configuration below. + ------------------------------------------ + " + sh -c "bash '$SOURCE'/ambientLightFix_amdgpu --full-help" + read -p " + ------------------| Reminder |---------------- + Change startup flags in service configuration. + ---------------------------------------------- + " + sudo systemctl edit --full ambientLightFix_amdgpu.service + break + ;; + [Nn]*) + echo + echo " + ---------------------------| OK |--------------------------- + Ambient Light Fix for AMDgpu will work with default settings + ------------------------------------------------------------ + " + echo + exit + ;; + esac + done + + while true; do + read -p " + ------------------| All set |--------------- + You wanna start Ambient Light Fix now? (y/n) + -------------------------------------------- + " intel_start + case $intel_start in + [Yy]*) + echo + echo " + ----------------| Congratulations |-------------- + You're all done! You can close this terminal now. + ------------------------------------------------- + " + systemctl start ambientLightFix_amdgpu.service & + break + ;; + [Nn]*) + echo + echo " + ----------------------| OK |--------------------- + Ambient Light Fix will start next time you reboot + ------------------------------------------------- + " + echo + exit + ;; + esac + done + echo "Done :-)" + fi - else echo " +else + echo " ----------| Something didn't go as expected|-------- - ... Ok, this is weird. Didn't find any intel either. + ... Ok, this is weird. Didn't find any AMDgpu either. Report this to hackan! ---------------------------------------------------- - "; + " fi diff --git a/ambientLightFix_amdgpu b/ambientLightFix_amdgpu new file mode 100755 index 0000000..2d49bc5 --- /dev/null +++ b/ambientLightFix_amdgpu @@ -0,0 +1,204 @@ +#!/bin/bash + +load() { + if [ "$max" = "" ]; then + max=$(cat /sys/class/backlight/amdgpu_bl1/max_brightness) + fi + if [ "$sensitivity" = "" ]; then + sensitivity=$((max / 90)) + fi + if [ "$treshold" = "" ]; then + treshold=$((max / 4)) + fi + panOut=$((sensitivity / 4)) + if [ "$min" = "" ]; then + min=0 + fi + if [ "$delay" = "" ]; then + delay=1 + fi + updated=1 + lastSet=0 + justeringUpp=0 + justeringNer=0 + if [ "$verbose" = "" ]; then + verbose=false + fi + if [ "$full_help" = "" ]; then + full_help=false + fi + need_help=false +} + +usage() { + starts=$'\t'"${0}" + _starts=${starts:1} + silent=$'\t'"${_starts//?/ }" + full_silent=${silent}$'\t' + load + echo "Script usage:" + echo "${starts} [-h | --help]" + if [ "$full_help" = true ]; then + echo "${full_silent}↖ Show help message without description." + fi + echo "${silent} [-H | --full-help]" + if [ "$full_help" = true ]; then + echo "${full_silent}↖ Show this message. (${full_help})" + fi + echo "${silent} [-v | --verbose]" + if [ "$full_help" = true ]; then + echo "${full_silent}↖ Enable verbose (debug) mode. (${verbose})" + fi + echo "${silent} [-M | --max ]" + if [ "$full_help" = true ]; then + echo "${full_silent}↖ Set maximum brightness var instead of system. (${max})" + fi + echo "${silent} [-m | --min ]" + if [ "$full_help" = true ]; then + echo "${full_silent}↖ Set minimum brightness var instead of system. (${min})" + fi + echo "${silent} [-s | --sensitivity ]" + if [ "$full_help" = true ]; then + echo "${full_silent}↖ Set . (${sensitivity})" + fi + echo "${silent} [-t | --treshold ]" + if [ "$full_help" = true ]; then + echo "${full_silent}↖ Set . (${treshold})" + fi + echo "${silent} [-d | --delay ]" + if [ "$full_help" = true ]; then + echo "${full_silent}↖ Set . (${delay})" + fi + exit 0 +} + +options=$(getopt -l "max::,min::,sensitivity::,treshold::,delay::,verbose,help,full-help" -o "M::m::s::t::d::vhH" -- "$@") + +eval set -- "$options" + +load + +while true; do + case "$1" in + --max | -M) + shift + max="$1" + ;; + --min | -m) + shift + min="$1" + ;; + --sensitivity | -s) + shift + sensitivity="$1" + ;; + --treshold | -t) + shift + treshold="$1" + ;; + --delay | -d) + shift + delay="$1" + ;; + --verbose | -v) + verbose=true + ;; + --help | -h) + need_help=true + ;; + --full-help | -H) + full_help=true + need_help=true + ;; + --) + break + ;; + esac + shift +done + +if [ "$need_help" = true ]; then + usage +fi + +while true; do + while [ "$updated" -gt 0 ]; do + updated=0 + backlight=$(cat /sys/class/backlight/amdgpu_bl1/brightness) + sensor=$(cat /sys/bus/iio/devices/iio:device0/in_illuminance_raw) + if [ "$verbose" = true ]; then + clear + echo "SensorRaw: " "$sensor" + fi + if [ "$sensor" -lt 0 ]; then + sensor=1 + fi + target=$backlight + if [ "$verbose" = true ]; then + echo "sensorMinst0: " "$sensor" + echo "target: " "$target" ", min: " "$min" ", max: " "$max" + echo "sensitivity: " "$sensitivity" + fi + + if [[ $target -gt $lastSet && $lastSet != 0 ]]; then + justeringUpp=$((target - lastSet)) + justeringNer=0 + else + if [[ $target -lt $lastSet && $lastSet != 0 ]]; then + justeringNer=$((lastSet - target)) + justeringUpp=0 + else + justeringNer=0 + justeringUpp=0 + fi + fi + if [ "$verbose" = true ]; then + echo "justeringNer: " "$justeringNer" + echo "justeringUpp: " "$justeringUpp" + fi + if [ "$sensor" -lt "$treshold" ]; then + sensor=$(((sensor * panOut) + min)) + fi + + if [ "$sensor" -gt $((backlight + sensitivity)) ]; then + updated=1 + target=$((target + (sensitivity / 2) + justeringUpp - justeringNer)) + if [ "$verbose" = true ]; then + echo "Steg: sensorGreater" + fi + fi + + if [ "$sensor" -lt $((backlight - sensitivity)) ]; then + updated=1 + target=$((target - (sensitivity / 2) + justeringUpp - justeringNer)) + if [ "$verbose" = true ]; then + echo "Steg: sensorLess" + fi + fi + + if [ "$target" -gt "$max" ]; then + target=$max + if [ "$verbose" = true ]; then + echo "Stoppad till: targetMax" + fi + fi + + if [ "$target" -lt 1 ]; then + target=$((min + justeringUpp - justeringNer)) + if [ "$verbose" = true ]; then + echo "Stoppad till: targetMin" + fi + fi + + if [ "$updated" -gt 0 ]; then + echo "$target" >/sys/class/backlight/amdgpu_bl1/brightness + lastSet=$target + if [ "$verbose" = true ]; then + echo "lastSet: " "$lastSet" + fi + fi + sleep "$delay" + updated=1 + done + +done diff --git a/ambientLightFix_amdgpu.service b/ambientLightFix_amdgpu.service new file mode 100644 index 0000000..5559f34 --- /dev/null +++ b/ambientLightFix_amdgpu.service @@ -0,0 +1,9 @@ +[Unit] +Description=Automatically adjust screen-brightness + +[Service] +Type=oneshot +ExecStart=/usr/bin/ambientLightFix_amdgpu + +[Install] +WantedBy=multi-user.target