We use cookies to provide our visitors with an optimal site experience. View our privacy notice and cookie notice to learn more about how we use cookies and how to manage your settings. By proceeding on our website you consent to the use of cookies.
There are some power saving modes in Linux:
suspend, hibernate, and hybrid-sleep.
All of these modes are under condition:
where execution of the OS is paused.
Not very clear to me what exactly means the execution of OS is paused.
There are system drivers, daemon threads, services, Network devices, CAN buses activities, DataBase Servers, and application processes, etc. They are running all the time. And there is no input devices, such as keyboard and mouse for our Linux devices.
In Windows, I guess the system is checking keyboard and mouse activities and the system determines to enter power saving mode based on settings.
Could you please give me some explanations how to implement power saving mode in Linux?
For the BBB, “suspend to ram” is exactly that, you set your wake up condition (gpio pin), then the system suspends to ram, and everything shut’s down. Main core is off, and nothing can be done… Till the system resumes…
For other power savings, look to cpu frequency, or just disable USB, which takes a bit.
It enters power saving to ram:
echo -n mem > /sys/power/state
But is there a default wake-up GPIO pin already defined/configured in the BBB?
(GPOI 7 ?) . I guess the power button is not used for wake-up purpose, either.
Or I have to compile it with
wakeup_gpio_pins: pinmux_wakeup in the device tree?
Hi Robert,
Thank you for the guide. It is very useful.
I have made standby and wakeup by rtc. But I have hard time to set wakeup by gpio. Based on the document:
echo uart0_rxd.gpio1_10=0x27,rising > standby_gpio_pad_conf
it gives me Permission Denied. Even if I use a different gpio, say gpio_20 pin.
The standby_gpio_pad_conf can not be found under /sys or under /debugfs.
Anything I have missed?
Best Regards,
David
Proceed without cd to the folder ./board
echo … cmd returns with Permission Denied.
The second way I tried, directly goes to folder /sys/power/state
and /sys/class/gpio/gpio115
But found no ./gpio115/power/wakeup
sudo -i, as root, without creating /debugfs
echo … cmd works, it creates standby_gpio_pad_conf file, with gpio3_19=0x73, rising written. It certainly will not trigger a wakeup.
On BBBw, the PWR_BUT is on P9_9, which can wake up from sleep mode.
On System reference Manual: Section 5.10: Power Button
Can alert processor to wake up from sleep mode and restore state before sleep was entered.
It seems to me it is directly controls TPS65217 PMIC. PWR_BUT is not on any gpio. Am I right?
The BBBw has TPS65217 PMIC for power management. I tried RTC, PWR_BUT, and UART0 Tx, they all work. But GPIO pins (on Bank0) are con configurable for a wakeup. I didn’t find any gpio pin with exported wakeup. Or is it just not exportable, and works internally. Please confirm that. If yes, please give a few guidelines to recompile a dtbo for a gpio wakeup.
Also, is TPS65217 PMIC chip required for a GPIO pin wake-up?