Skip to content

Acer Predator PHN14-51 #232

Open
Open
@Todd0042

Description

@Todd0042

RGB working on CachyOS with 6.12 LTS Kernel - controlled via python script.
Turbo Unknown - no apparent change.
Unable to install on CachyOS with up to date 6.14 Kernel.

❯ sudo dmidecode | grep "Product Name" -B 2 -A 4

System Information
Manufacturer: Acer
Product Name: Predator PHN14-51
Version: V1.01
Serial Number: NHQRNAA00141215DF83400
UUID: d2565073-e8e4-ee11-80f2-40c2baf2e7d5
Wake-up Type: Power Switch

Base Board Information
Manufacturer: MTL
Product Name: Taycan_MTH
Version: V1.01
Serial Number: NBQQM11004412D64A13400
Asset Tag:
Features:

---------------------------- dsdt.aml ---------------------------
#!/bin/bash

This script can install or uninstall acer turbo fan service. It means, that your turbo fan button still will be available even after rebooting.

To install service just run this script as the root (sudo) user.

After installation you can manage it as a usual service manually. Example: 'systemctl start/stop turbo-fan', 'systemctl enable/disable turbo-fan'

To uninstall service, run this script with 'remove' argument. Example: 'sudo bash ./install_service.sh remove'.

Note!!! Before removing, don't forget to switch off the turbo button because you will have forever turbo fan :)

mode=${1:-install} # Allowed modes: "install" and "remove". Default: install.
service=turbo-fan # Service name
target_dir=/opt/turbo-fan # Instalation folder
service_dir=/etc/systemd/system # Service setup folder (where all services are stored)
service_start_delay=5 # Delay in seconds before the service starts.

echo "[Mode: $mode]";

Sudo check

if [[ $(id -u) -ne 0 ]] ; then echo "Please run as root" ; exit 1 ; fi

Check systemctl is installed

if [[ -z "$(whereis systemctl | sed 's/systemctl: //')" ]]; then echo "systemctl is not installed"; exit 1; fi

Check rsync is installed

if [[ -z "$(whereis rsync | sed 's/rsync: //')" ]]; then echo "rsync is not installed"; exit 1; fi

if [[ "$mode" == "install" || "$mode" == "remove" ]]; then
# Check service is presented and remove if yes.
if [[ "$(systemctl --type=service | grep $service)" ]]; then
echo "['$service' service is presented. Remove it.]";
systemctl stop $service;
systemctl disable $service;
rm $service_dir/turbo-fan.service
systemctl daemon-reload
fi

# Remove old files
echo "[Remove old data]";
rm -rvf $target_dir;

fi;

if [[ "$mode" == "install" ]]
then
echo "[Create directories]";
mkdir -p $target_dir

echo "[Copy new data]";
rsync -av ./* $target_dir --exclude=".git/*"

echo "[Create turbo-fan service]"
cat << EOF > $service_dir/turbo-fan.service

[Unit]
Description = Enables turbo button
After=sysinit.target
StartLimitIntervalSec=$service_start_delay

[Service]
Type=simple
Restart=no
RemainAfterExit=yes
User=root
WorkingDirectory=$target_dir
ExecStart=/bin/bash $target_dir/service.sh
ExecStop=/bin/bash ./uninstall.sh

[Install]
WantedBy=multi-user.target
EOF
chown -R root:root $target_dir

KERNELVERSION=$(uname -r)

cat << EOF > service.sh

KERNELVERSION="$KERNELVERSION"
cd $target_dir

rm /dev/acer-gkbbl-0 /dev/acer-gkbbl-static-0 -f

if [ "$(uname -r)" != "$KERNELVERSION" ]; then
make clean
source install.sh
sed -i "s/^KERNELVERSION.*/KERNELVERSION="$(uname -r)"/" service.sh
else
rmmod acer_wmi
rmmod facer
modprobe wmi
modprobe sparse-keymap
modprobe video
insmod src/facer.ko
fi
EOF

#locking down service file for security
chown -R root:root $target_dir
chmod 744 $target_dir/service.sh

systemctl daemon-reload
systemctl start $service
systemctl enable $service

fi

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions