Armbian

Home Station Default OS

Armbian supports hundreds of devices, given you plenty of hardware options for your home station.

Increase Reliability

Disable Automatic Power Saving

To completely disable all power-saving features in Armbian, follow these steps:

1. Disable CPU Frequency Scaling

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

2. Disable CPU Idle States (C-States)

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.

3. Disable Auto-Suspend for USB 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.

4. Disable Power Management for Network Interfaces

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

5. Disable Power Management for PCI Devices

sudo sed -i 's/^HOOKS=.*$/HOOKS="base udev resume"/' /etc/mkinitcpio.conf

This might not be available on some devices.

6. Disable Power-Related Kernel Modules

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.

7. Disable 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.

8. Disable Power-Saving at Boot (Kernel Parameters)

Edit /boot/armbianEnv.txt and add:

extraargs=intel_pstate=disable processor.max_cstate=0

usbcore

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.

Check if usbcore is Built-In

Run:

grep -i usbcore /lib/modules/$(uname -r)/modules.builtin

If you see an entry, it means usbcore is built into the kernel.

Modify usbcore Parameters in cmdline.txt or armbianEnv.txt

Since usbcore is compiled into the kernel, you need to pass its parameters via the bootloader:

For Armbian on SBCs using armbianEnv.txt

  1. Open the file:
    sudo nano /boot/armbianEnv.txt
    
  2. Add this line (or update it if already exists):
    extraargs=usbcore.autosuspend=-1
    

For Devices Using /boot/cmdline.txt (e.g., Raspberry Pi-based Armbian)

  1. Edit the kernel boot parameters:
    sudo nano /boot/cmdline.txt
    
  2. Add this at the end of the line (without a newline):
    usbcore.autosuspend=-1
    

Verify the Change After Reboot

After rebooting, check if the autosuspend value has been updated:

cat /sys/module/usbcore/parameters/autosuspend

It should now show -1.