arc-addons/cpufreqscaling/install.sh
AuxXxilium c48bbb44f3 cpufreqscaling: rework
Signed-off-by: AuxXxilium <info@auxxxilium.tech>
2024-08-19 20:38:35 +02:00

74 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env ash
#
# Copyright (C) 2023 AuxXxilium <https://github.com/AuxXxilium>
#
# This is free software, licensed under the MIT License.
# See /LICENSE for more information.
#
if [ "${1}" = "late" ]; then
echo "Installing cpufreqscalingscaling - ${1}"
mkdir -p "/tmpRoot/usr/arc/addons/"
cp -vf "${0}" "/tmpRoot/usr/arc/addons/"
cp -vf /usr/sbin/scaler.sh /tmpRoot/usr/sbin/scaler.sh
cp -vf /usr/sbin/unscaler.sh /tmpRoot/usr/sbin/unscaler.sh
cp -vf /usr/sbin/rescaler.sh /tmpRoot/usr/sbin/rescaler.sh
[ ! -f "/tmpRoot/usr/bin/echo" ] && cp -vf /usr/bin/echo /tmpRoot/usr/bin/echo
if [ "${2}" = "userspace" ]; then
mkdir -p "/tmpRoot/usr/lib/systemd/system"
DEST="/tmpRoot/usr/lib/systemd/system/cpufreqscaling.service"
cat << EOF > ${DEST}
[Unit]
Description=Enable CPU Freq scaling
After=multi-user.target
[Service]
Type=simple
Restart=on-failure
RestartSec=10s
ExecStart=/usr/sbin/scaler.sh
[Install]
WantedBy=multi-user.target
[X-Synology]
Author=Virtualization Team
EOF
mkdir -vp /tmpRoot/usr/lib/systemd/system/multi-user.target.wants
ln -vsf /usr/lib/systemd/system/cpufreqscaling.service /tmpRoot/usr/lib/systemd/system/multi-user.target.wants/cpufreqscaling.service
else
[ "${2}" != "schedutil" ] && cp -vf /usr/lib/modules/cpufreq_${2}.ko /tmpRoot/usr/lib/modules/cpufreq_${2}.ko
mkdir -p "/tmpRoot/usr/lib/systemd/system"
DEST="/tmpRoot/usr/lib/systemd/system/cpufreqscaling.service"
cat << EOF > ${DEST}
[Unit]
Description=Enable CPU Freq scaling
After=multi-user.target
[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/usr/sbin/rescaler.sh ${2}
[Install]
WantedBy=multi-user.target
[X-Synology]
Author=Virtualization Team
EOF
mkdir -vp /tmpRoot/usr/lib/systemd/system/multi-user.target.wants
ln -vsf /usr/lib/systemd/system/cpufreqscaling.service /tmpRoot/usr/lib/systemd/system/multi-user.target.wants/cpufreqscaling.service
fi
elif [ "${1}" = "uninstall" ]; then
echo "Installing cpufreqscalingscaling - ${1}"
rm -f "/tmpRoot/usr/lib/systemd/system/multi-user.target.wants/cpufreqscaling.service"
rm -f "/tmpRoot/usr/lib/systemd/system/cpufreqscaling.service"
rm -f /tmpRoot/usr/sbin/scaler.sh
rm -f /tmpRoot/usr/sbin/rescaler.sh
rm -f /tmpRoot/usr/sbin/unscaler.sh
fi