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