Suspend with NVME not working - Default Debian
#1
Suspend stopped working after I installed an NVME drive.  It appears the PBP goes into suspend.   The screen goes black and the led turns red.  However, when pressing the power button the PBP will never wake up again.  I have to hold the power button 6 seconds to reset it and then boot from scratch.
 
The drive I installed was the Intel 660p SSDPEKNW512G8X1 

I am setting power limiting on boot.  I added "sudo nvme set-feature /dev/nvme0 -f 2 -v 2" in /etc/rc.local and have verified that it is setting the feature correctly on boot.

Any ideas how to troubleshoot?  Has anyone else gotten suspend to work with an NVME drive installed?
#2
This is probably related to the same nvme issues I solved for Linux on the Macbook Pro, recently. The drive would "sleep" but then resume as read-only - with unpredictable effects!

The Macs don't support APST, and many nvme units also seem to be "idiosyncratic" about implementations. The fix is to "turn-off" the ability of the kernel to impose sleep states on hardware that does not conform.

After researching a bit about this, my solution was:
echo 0 > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed

This is now featured on the authoritative  Dunedan /mbp-2016-linux github: https://github.com/Dunedan/mbp-2016-linux

This needs to be done in a root shell, sudo user won't cut it. You can elevate by runing 'sudo su -' and have a root shell, without additional login process.
I'd seriously give this a shot, AFTER you determine with lspci the actual device number for your nvme.

If this solves your problem, I supplied scripts and a systemd service wrapper, so you may automate at boot:
https://github.com/cb22/macbook12-spi-dr...-540208177

Create this file:

Quote:/etc/systemd/system/fix_sleep.service

# systemd oneshot service to set sleep boolean on Apple Macbook Pro disks
# Original by Pier Lim. Posted at https://kerpanic.wordpress.com/2018/03/1...in-ubuntu/

   [Unit]
   Description=Job that disables sleep from stopping nvme hardware on MBP
   
   [Service]
   ExecStart=/sbin/fixsleep
   Type=oneshot
   RemainAfterExit=yes

   [Install]
   WantedBy=multi-user.target


And the actual script:

Quote:/sbin/fixsleep

#!/bin/bash
/bin/echo 0 > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed

If you try this out, I'd love to hear how it goes.
— Jeremiah Cornelius
"Be the first person not to do some­thing, that no one has thought of not doing before’’
— Brian Eno, "Oblique Strategies"
#3
(02-06-2020, 08:06 PM)Jeremiah Cornelius Wrote: This is probably related to the same nvme issues I solved for Linux on the Macbook Pro, recently. The drive would "sleep" but then resume as read-only - with unpredictable effects!

The Macs don't support APST, and many nvme units also seem to be "idiosyncratic" about implementations. The fix is to "turn-off" the ability of the kernel to impose sleep states on hardware that does not conform.

After researching a bit about this, my solution was:
echo 0 > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed

This is now featured on the authoritative  Dunedan /mbp-2016-linux github: https://github.com/Dunedan/mbp-2016-linux

This needs to be done in a root shell, sudo user won't cut it. You can elevate by runing 'sudo su -' and have a root shell, without additional login process.
I'd seriously give this a shot, AFTER you determine with lspci the actual device number for your nvme.

If this solves your problem, I supplied scripts and a systemd service wrapper, so you may automate at boot:
https://github.com/cb22/macbook12-spi-dr...-540208177

Create this file:

Quote:/etc/systemd/system/fix_sleep.service

# systemd oneshot service to set sleep boolean on Apple Macbook Pro disks
# Original by Pier Lim. Posted at https://kerpanic.wordpress.com/2018/03/1...in-ubuntu/

   [Unit]
   Description=Job that disables sleep from stopping nvme hardware on MBP
   
   [Service]
   ExecStart=/sbin/fixsleep
   Type=oneshot
   RemainAfterExit=yes

   [Install]
   WantedBy=multi-user.target


And the actual script:

Quote:/sbin/fixsleep

#!/bin/bash
/bin/echo 0 > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed

If you try this out, I'd love to hear how it goes.

My output from lspci:


Code:
00:00.0 PCI bridge: Device 1d87:0100
01:00.0 Non-Volatile memory controller: Intel Corporation Device f1a8 (rev 03)

Do I have to modify that command with this information somehow?
#4
I tried this and it didn't work. I did sudo su,then from there I ran the command and hit suspend and the same wake issue occurred.
#5
(02-06-2020, 08:06 PM)Jeremiah Cornelius Wrote: This is probably related to the same nvme issues I solved for Linux on the Macbook Pro, recently. The drive would "sleep" but then resume as read-only - with unpredictable effects!

The Macs don't support APST, and many nvme units also seem to be "idiosyncratic" about implementations. The fix is to "turn-off" the ability of the kernel to impose sleep states on hardware that does not conform.

After researching a bit about this, my solution was:
echo 0 > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed

This is now featured on the authoritative  Dunedan /mbp-2016-linux github: https://github.com/Dunedan/mbp-2016-linux

This needs to be done in a root shell, sudo user won't cut it. You can elevate by runing 'sudo su -' and have a root shell, without additional login process.
I'd seriously give this a shot, AFTER you determine with lspci the actual device number for your nvme.

If this solves your problem, I supplied scripts and a systemd service wrapper, so you may automate at boot:
https://github.com/cb22/macbook12-spi-dr...-540208177

Create this file:

Quote:/etc/systemd/system/fix_sleep.service

# systemd oneshot service to set sleep boolean on Apple Macbook Pro disks
# Original by Pier Lim. Posted at https://kerpanic.wordpress.com/2018/03/1...in-ubuntu/

   [Unit]
   Description=Job that disables sleep from stopping nvme hardware on MBP
   
   [Service]
   ExecStart=/sbin/fixsleep
   Type=oneshot
   RemainAfterExit=yes

   [Install]
   WantedBy=multi-user.target


And the actual script:

Quote:/sbin/fixsleep

#!/bin/bash
/bin/echo 0 > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed

If you try this out, I'd love to hear how it goes.

****

Hi Jeremiah,

Your suggestion works on imac models that have unofficial nvme setup running Debian. Do you have knowledge as to implementing same mechanism in macos since the issue is ongoing there as well. setpci maybe? Any clues?

Thanks,
#6
(07-12-2020, 01:47 AM)johnny89 Wrote:
(02-06-2020, 08:06 PM)Jeremiah Cornelius Wrote: This is probably related to the same nvme issues I solved for Linux on the Macbook Pro, recently. The drive would "sleep" but then resume as read-only - with unpredictable effects!

The Macs don't support APST, and many nvme units also seem to be "idiosyncratic" about implementations. The fix is to "turn-off" the ability of the kernel to impose sleep states on hardware that does not conform.

After researching a bit about this, my solution was:
echo 0 > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed

This is now featured on the authoritative  Dunedan /mbp-2016-linux github: https://github.com/Dunedan/mbp-2016-linux

This needs to be done in a root shell, sudo user won't cut it. You can elevate by runing 'sudo su -' and have a root shell, without additional login process.
I'd seriously give this a shot, AFTER you determine with lspci the actual device number for your nvme.

If this solves your problem, I supplied scripts and a systemd service wrapper, so you may automate at boot:
https://github.com/cb22/macbook12-spi-dr...-540208177

Create this file:

Quote:/etc/systemd/system/fix_sleep.service

# systemd oneshot service to set sleep boolean on Apple Macbook Pro disks
# Original by Pier Lim. Posted at https://kerpanic.wordpress.com/2018/03/1...in-ubuntu/

   [Unit]
   Description=Job that disables sleep from stopping nvme hardware on MBP
   
   [Service]
   ExecStart=/sbin/fixsleep
   Type=oneshot
   RemainAfterExit=yes

   [Install]
   WantedBy=multi-user.target


And the actual script:

Quote:/sbin/fixsleep

#!/bin/bash
/bin/echo 0 > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed

If you try this out, I'd love to hear how it goes.

****

Hi Jeremiah,

Your suggestion works on imac models that have unofficial nvme setup running Debian. Do you have knowledge as to implementing same mechanism in macos since the issue is ongoing there as well. setpci maybe?  Any clues?

Thanks,
I'm afraid I'm way more familiar with being able to tinker with kernel internals of Linux, than MacOS.
— Jeremiah Cornelius
"Be the first person not to do some­thing, that no one has thought of not doing before’’
— Brian Eno, "Oblique Strategies"


Possibly Related Threads…
Thread Author Replies Views Last Post
  Games compilation howto on the Pinebook-pro (Manjaro Linux and Debian native) astr0baby 198 136,356 06-20-2021, 08:38 AM
Last Post: ImmyChan
  U-Boot with direct NVMe boot support for eMMC/SPI Flash pcm720 118 95,860 06-08-2021, 11:04 PM
Last Post: calinb
  UK Pinebook Pro for sale (UK buyers only, 64GB, eMMC reader, NVME add-on) Z0rua 0 174 06-01-2021, 12:51 PM
Last Post: Z0rua
  high battery drain on suspend/poweroff wiz 3 413 05-12-2021, 07:09 AM
Last Post: tophneal
Sad Webcam not working in pinebook pro with Manjaro jcarball 2 447 04-28-2021, 03:23 PM
Last Post: jcarball
  NVMe SSD and battery life? dieselnutjob 3 717 04-19-2021, 01:55 PM
Last Post: slyecho
  No Sound on Default Manjaro KDE carlosqueso 4 623 04-01-2021, 07:17 AM
Last Post: carlosqueso
  Selling Pinebook Pro 128GB version (w/ NVMe adaptor) due to lack of use VoT 3 1,151 03-19-2021, 03:11 AM
Last Post: jj282
  Built-in Webcam Not Working fozzedout 36 15,237 02-01-2021, 08:59 AM
Last Post: lemaurien19
  [split] U-Boot with NVMe support, keyboard & display working as400 83 35,150 01-27-2021, 12:48 AM
Last Post: as400

Forum Jump:


Users browsing this thread: 1 Guest(s)