Jetson ORIN sleep mode

Hello, I’m currently experiments regarding sleep and wake-up functionalities on Jetson ORIN devices. I used the following command to put the device into suspend mode:
sudo bash -c \"echo mem > /sys/power/state\".

After the device entered sleep mode, I woke it up using two methods:

  1. Sending a WOL magic packet to wake it up from the LAN network.
  2. Pressing the power button to wake it up.

However, when I use the power button, the Jetson wakes up but immediately goes back to sleep again. Therefore, I have to press the power button once more for it to wake up correctly. When using the WOL magic packet, the Jetson wakes up correctly.

I used this command to Log the ‘demsg’ output:
sudo dmesg | grep -i 'suspend\|power\|button\|sleep\|wake

  • I’m not understand why after i pressed power button, then the sleep command is sent to the system again.

  • if i use sudo systemctl suspend then the sleep not send after pressed power button anymore.

  • my purpose is put the Jetson device in sleep mode from inside a docker container so that sudo systemctl suspend will not work. i used sudo bash -c \"echo mem > /sys/power/state\" for the replace solution.

@mehmetdeniz maybe you might know what’s going wrong?

To summarise, we use sudo bash -c "echo mem > /sys/power/state" to put the device in suspend. We then encounter an issue when doing a short button press to wake the system where it wakes up for about 5 seconds and then goes back to suspend. We then do a second short press and this time it’s fine.

Hi @alex247

If you are not using one of the latest JetPack version, there is a manual fix to use sudo systemctl suspend again

1 Like

Hello,

Your topic will be best served in the Jetson category.

I will move this post over so the team has visibility.

Cheers,
Tom

1 Like

Hi @mehmetdeniz , thank for the reply. I’ve read your attached Link. So that, as i understand, after suspended and press short button, i must send 0x000000ED to memory address 0x0c2f1080 to make the system wake correctly?

We are not use the “systemctl suspend” to suspend the system. instead, we used " sudo bash -c "echo mem > /sys/power/state"

But after the system suspended by sudo bash -c "echo mem > /sys/power/state and we pressed short button to wake it up, but it wake up for about 5 seconds and then goes back again. We must press 1 more time, then the system will wake correct

There is a known issue that WOL does not work on Orin Nano now. We are checking the cause.

Please try other wake event can work fine or not.

Also, does systemctl suspend work on your side or not?

Hi, yeh the systemctl suspend can work normally in our side. But because we want to trigger the suspend event inside the container so that we used " sudo bash -c "echo mem > /sys/power/state " instead

Could you share us the full uart log when such issue reproduced?

Also, is this on NV devkit or custom board and which jetpack release you are using?

1 Like

@WayneWWW . how can i get the UART log?
and this is the custom board from @forecr

Please check with the board vendor. We don’t know 3rdparty board is able to dump uart log or not.

You could at least reply the version of jetpack so that we can check that on our NV devkit…

Hi, sorry for the lack of information:
The board we use Jetpack 5.1.1
But we can’t capture the UART log right now because the board is not here

Hi,

We notice you are using container. This is not something we ever tested.

Thus, we suggest to use sudo systemctl suspend instead of that echo command.

That echo mem > /sys/power/state command directly controls through kernel which does not inform userspace services. This may lead to uncertain behavior.

If you want us to help check the issue in container, please share the method to set up it on NV devkit.

We tested this in docker but cannot reproduce the error you reported.

# put DUT into SC7 and wake it up by RTC alarm
$ docker run -it --rm -v /sys/power/state:/sys/power/state -v /sys/kernel/debug:/sys/kernel/debug -v /sys/class/rtc/rtc1:/sys/class/rtc/rtc1 ubuntu:20.04 bash -c "head -n1 /sys/kernel/debug/suspend_stats ; echo 0 > /sys/class/rtc/rtc1/wakealarm; echo +20 > /sys/class/rtc/rtc1/wakealarm; echo mem > /sys/power/state ; sleep 5 ; head -n1 /sys/kernel/debug/suspend_stats"

success: 7

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.