Home Station Default OS
Armbian supports hundreds of devices, given you plenty of hardware options for your home station.
Armbian supports hundreds of devices, given you plenty of hardware options for your home station.
To completely disable all power-saving features in Armbian, follow these steps:
By default, Armbian may scale CPU frequency to save power. To set the CPU to performance mode:
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
To make this persistent across reboots:
sed -i "s/ENABLE=.*/ENABLE=true/" /etc/default/cpufrequtils
sed -i "s/GOVERNOR=.*/GOVERNOR=performance/" /etc/default/cpufrequtils
sudo systemctl restart cpufrequtils
If you want to prevent the CPU from entering low-power states:
echo 1 | sudo tee /sys/devices/system/cpu/cpu*/cpuidle/state*/disable
To make it persistent, add the following kernel parameter:
sudo nano /boot/armbianEnv.txt
Add or modify the following line:
extraargs=idle=poll
This might not be available on some devices.
echo -1 | sudo tee /sys/module/usbcore/parameters/autosuspend
To make it persistent:
echo 'options usbcore autosuspend=-1' | sudo tee /etc/modprobe.d/usb-autosuspend.conf
See usbcore section below for cases when usbcore is in kernel.
For Wi-Fi:
sudo iw dev wlan0 set power_save off
For Ethernet:
sudo ethtool -s eth0 wol d
To make Wi-Fi power saving persist:
sudo nano /etc/network/interfaces
Add:
iface wlan0 inet dhcp
wireless-power off
Then restart the network:
sudo systemctl restart networking
sudo sed -i 's/^HOOKS=.*$/HOOKS="base udev resume"/' /etc/mkinitcpio.conf
This might not be available on some devices.
You can blacklist power-saving modules:
echo -e "blacklist intel_pstate\nblacklist cpuidle" | sudo tee /etc/modprobe.d/disable-powersave.conf
This might not be available on some devices.
tlp
and Other Power-Saving Services (If Installed)sudo systemctl disable --now tlp
sudo systemctl mask tlp
This might not be available on some devices.
Edit /boot/armbianEnv.txt
and add:
extraargs=intel_pstate=disable processor.max_cstate=0
Note in some cases usbcore
is built into the kernel (rather than a loadable module), so needs to use a different way to modify its parameters.
usbcore
is Built-InRun:
grep -i usbcore /lib/modules/$(uname -r)/modules.builtin
If you see an entry, it means usbcore
is built into the kernel.
usbcore
Parameters in cmdline.txt
or armbianEnv.txt
Since usbcore
is compiled into the kernel, you need to pass its parameters via the bootloader:
armbianEnv.txt
sudo nano /boot/armbianEnv.txt
extraargs=usbcore.autosuspend=-1
/boot/cmdline.txt
(e.g., Raspberry Pi-based Armbian)sudo nano /boot/cmdline.txt
usbcore.autosuspend=-1
After rebooting, check if the autosuspend value has been updated:
cat /sys/module/usbcore/parameters/autosuspend
It should now show -1
.