Initial commit: Acer Nitro GPU power and turbo mode setup
Script to enable predator_v4 mode, set platform profile to performance, and enable nvidia-powerd for Dynamic Boost on Acer Nitro/Predator laptops. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
6fec0f2e5d
2 changed files with 167 additions and 0 deletions
88
README.md
Normal file
88
README.md
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
# Acer Power Control - Omarchy
|
||||||
|
|
||||||
|
GPU power and turbo mode setup for Acer Nitro/Predator laptops running [Omarchy](https://omarchy.com).
|
||||||
|
|
||||||
|
Unlocks the full GPU power range (up to 60W) by enabling the `acer_wmi` predator mode kernel module option, setting the platform profile to performance, and enabling NVIDIA Dynamic Boost via `nvidia-powerd`.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- **OS**: [Omarchy](https://omarchy.com) (Arch Linux)
|
||||||
|
- **Hardware**: Acer Nitro or Predator laptop with NVIDIA dGPU
|
||||||
|
- **Kernel**: Must have `CONFIG_ACER_WMI` enabled (default on Arch)
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/28allday/Acer-Power-Control-Omarchy.git
|
||||||
|
cd Acer-Power-Control-Omarchy
|
||||||
|
chmod +x setup-acer-turbo.sh
|
||||||
|
./setup-acer-turbo.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
The script will re-run with `sudo` automatically if not run as root.
|
||||||
|
|
||||||
|
**First run requires a reboot** - the `predator_v4` module option only takes effect after reboot. Run the script again after rebooting to complete setup.
|
||||||
|
|
||||||
|
## What It Does
|
||||||
|
|
||||||
|
The script performs four steps:
|
||||||
|
|
||||||
|
### 1. Configure acer_wmi Module
|
||||||
|
|
||||||
|
Writes `/etc/modprobe.d/acer-wmi.conf` with `predator_v4=1` to enable turbo power mode support in the Acer WMI kernel module.
|
||||||
|
|
||||||
|
### 2. Activate Predator Mode
|
||||||
|
|
||||||
|
Checks `/sys/module/acer_wmi/parameters/predator_v4` to verify the module option is active. If not, prompts for a reboot.
|
||||||
|
|
||||||
|
### 3. Set Platform Profile to Performance
|
||||||
|
|
||||||
|
Writes `performance` to `/sys/firmware/acpi/platform_profile`, unlocking higher GPU power states controlled by the laptop's Embedded Controller (EC).
|
||||||
|
|
||||||
|
### 4. Enable nvidia-powerd
|
||||||
|
|
||||||
|
Enables and starts `nvidia-powerd.service` for NVIDIA Dynamic Boost, which allows the GPU to dynamically allocate power between the CPU and GPU based on workload.
|
||||||
|
|
||||||
|
## Usage After Setup
|
||||||
|
|
||||||
|
After each reboot, press the **Turbo Key** (NitroSense button) on your keyboard to cycle through GPU power levels:
|
||||||
|
|
||||||
|
```
|
||||||
|
35W -> 40W -> 50W -> 60W (max)
|
||||||
|
```
|
||||||
|
|
||||||
|
Press it 3-4 times until you reach the desired power level.
|
||||||
|
|
||||||
|
### Quick Check
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nvidia-smi -q -d POWER | grep 'Current Power Limit'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Files Modified
|
||||||
|
|
||||||
|
| Path | Purpose |
|
||||||
|
|------|---------|
|
||||||
|
| `/etc/modprobe.d/acer-wmi.conf` | Enables `predator_v4=1` module option |
|
||||||
|
| `/sys/firmware/acpi/platform_profile` | Set to `performance` (runtime, not persistent) |
|
||||||
|
|
||||||
|
## Uninstalling
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Remove module config
|
||||||
|
sudo rm -f /etc/modprobe.d/acer-wmi.conf
|
||||||
|
|
||||||
|
# Disable nvidia-powerd if desired
|
||||||
|
sudo systemctl disable nvidia-powerd
|
||||||
|
|
||||||
|
# Reboot to restore defaults
|
||||||
|
```
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
- [Omarchy](https://omarchy.com) - The Arch Linux distribution this was built for
|
||||||
|
- [Acer WMI kernel module](https://www.kernel.org/) - Provides predator/turbo mode support
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is provided as-is for the Omarchy community.
|
||||||
79
setup-acer-turbo.sh
Executable file
79
setup-acer-turbo.sh
Executable file
|
|
@ -0,0 +1,79 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "=== Acer Nitro GPU Power Setup ==="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Check if running as root
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo "This script needs root. Re-running with sudo..."
|
||||||
|
exec sudo "$0" "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
CONF="/etc/modprobe.d/acer-wmi.conf"
|
||||||
|
|
||||||
|
# Step 1: Ensure predator_v4 module option is configured
|
||||||
|
if ! grep -qs "predator_v4=1" "$CONF" 2>/dev/null; then
|
||||||
|
echo "Configuring acer_wmi with predator_v4=1 ..."
|
||||||
|
echo "options acer_wmi predator_v4=1" > "$CONF"
|
||||||
|
echo "Written: $CONF"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Step 2: Check if predator_v4 is active (requires reboot after first run)
|
||||||
|
CURRENT=$(cat /sys/module/acer_wmi/parameters/predator_v4 2>/dev/null || echo "unknown")
|
||||||
|
|
||||||
|
if [[ "$CURRENT" != "Y" ]]; then
|
||||||
|
echo ""
|
||||||
|
echo "predator_v4 is not active yet."
|
||||||
|
echo "A reboot is required for the module option to take effect."
|
||||||
|
echo ""
|
||||||
|
read -p "Reboot now? [y/N] " answer
|
||||||
|
if [[ "$answer" =~ ^[Yy]$ ]]; then
|
||||||
|
echo "Rebooting..."
|
||||||
|
systemctl reboot
|
||||||
|
else
|
||||||
|
echo "Reboot when ready, then run this script again."
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "predator_v4: active"
|
||||||
|
|
||||||
|
# Step 3: Set platform profile to performance
|
||||||
|
echo "performance" > /sys/firmware/acpi/platform_profile 2>/dev/null && \
|
||||||
|
echo "Platform profile: performance" || \
|
||||||
|
echo "Warning: Could not set platform profile"
|
||||||
|
|
||||||
|
# Step 4: Enable nvidia-powerd for Dynamic Boost
|
||||||
|
if systemctl is-enabled nvidia-powerd &>/dev/null; then
|
||||||
|
echo "nvidia-powerd: enabled"
|
||||||
|
else
|
||||||
|
if systemctl enable --now nvidia-powerd &>/dev/null; then
|
||||||
|
echo "nvidia-powerd: enabled and started"
|
||||||
|
else
|
||||||
|
echo "nvidia-powerd: not available (optional)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Show current GPU power state
|
||||||
|
echo ""
|
||||||
|
CURRENT_PL=$(nvidia-smi -q -d POWER 2>/dev/null | grep "Current Power Limit" | head -1 | awk '{print $5, $6}')
|
||||||
|
MAX_PL=$(nvidia-smi -q -d POWER 2>/dev/null | grep "Max Power Limit" | head -1 | awk '{print $5, $6}')
|
||||||
|
echo "GPU power limit: ${CURRENT_PL:-unknown} (max: ${MAX_PL:-unknown})"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=== Setup complete ==="
|
||||||
|
echo ""
|
||||||
|
echo "The platform profile is set to 'performance' but GPU power is"
|
||||||
|
echo "controlled by the EC (Embedded Controller) via the Turbo key."
|
||||||
|
echo ""
|
||||||
|
echo "After each reboot, press the TURBO KEY (NitroSense button) on"
|
||||||
|
echo "your keyboard to cycle through GPU power levels:"
|
||||||
|
echo ""
|
||||||
|
echo " 35W -> 40W -> 50W -> 60W (max)"
|
||||||
|
echo ""
|
||||||
|
echo "Press it 3-4 times until nvidia-smi shows 60W."
|
||||||
|
echo ""
|
||||||
|
echo "Quick check command:"
|
||||||
|
echo " nvidia-smi -q -d POWER | grep 'Current Power Limit'"
|
||||||
|
echo ""
|
||||||
Loading…
Add table
Reference in a new issue