5

Rebooting ubuntu causes the laptop to not be able to boot unless I have a bootable USB or something other than my SSD plugged in. Shutting down and booting again from either windows or ubuntu works fine, and so does restarting from windows. I tried updating the BIOS, reinstalling a number of different ubuntu versions (including 16.04.3 and 17.10), but both present the same issue. It is probably also worth mentioning that the issue still persists if I do not actually install ubuntu, but reboot from the "Try ubuntu" option of my bootable USB. My specs:

Dell XPS 15 9950:

SSD: Samsung NVMe PM951 512GB

Processor: Intel i7-6700HQ (2.6 Ghz)

GPU: Intel Graphics 530/NVIDIA GeForce 960M

I did switch the SATA Operation from RAID On to AHCI, while windows was in safe mode, as per all the tutorials that I found. Partitioning was done with the default partition manager (though I tried with intact partitions while rebooting from the live stick). Secure boot is off from the BIOS and I also deacctivated it from a previous linux I had installed. I also reset Windows 10 a number of times during the process. Lastly, I am aware of an almost identical question posted, but it has neither upvotes, nor replies, and I'm at my wit's end. I probably wouldn't mind giving up on Ubuntu and installing Debian instead, but I have no idea how (am new to linux and no tutorials are available).

P.S.: At a certain point I had a properly working ubuntu 16.04 (possibly 16.04.1 since the stick I used is a good few months old), but upgrading to 17.10 went wrong and I decided to reinstall.

Edit: I also thought I should mention the fact that on reboot the PC goes directly to Dell support assist and says "Hard drive not installed" (or hard disk, can't remember) and that apart from this issue ubuntu seems to work fine.

14
  • 1
    You turned RAID on? All the instructions I have seen are turn RAID off and turn AHCI on. Windows needs AHCI drivers installer first, though. Have you updated UEFI from Dell and NVMe SSD firmware? Are you using nomodeset until you install and then install nVidia drivers? dell.com/support/article/us/en/19/sln299303/… & askubuntu.com/questions/884991/…
    – oldfred
    Nov 2, 2017 at 17:26
  • I'm not using nomodeset, I don't really know what it is. Should I find out and try? Also, is the dell.com link providing instructions that I should follow before or after installing? Yes I updated UEFI from dell this morning and I have all the latest drivers that dell offered for my system.
    – cluntraru
    Nov 2, 2017 at 17:48
  • If UEFI boot see screens on editing grub line that starts with Linux, replacing quiet splash entires. You have to edit installer and also after install until you install proprietary driver. askubuntu.com/questions/162075/…
    – oldfred
    Nov 2, 2017 at 18:15
  • @oldfred When you say until I install the proprietary driver, do you mean for the SSD or for nvidia? If nvidia, would that really have an impact on the laptop thinking it has no hard disk installed?
    – cluntraru
    Nov 2, 2017 at 19:02
  • @oldfred I did as you said and replaced quiet splash --- with nvme_load=YES on the linux line and the issue persists. Nothing seems to have changed, when rebooting after the ubuntu installation completes, the only bootable device available is the live stick I installed from.
    – cluntraru
    Nov 2, 2017 at 19:13

4 Answers 4

3

I was having the same issue on my Dell XPS 15 9550 using kernel 4.16; after a lot of research I found a solution that works for me:

TLDR: Boot with kernel parameter nvme_core.default_ps_max_latency_us=4950

  • I do this by modifying GRUB_LINUX_CMDLINE_DEFAULT in /etc/default/grub and then running sudo grub-install.

The Issue

As Cristian Velasquez Ramos posted earlier in this thread, a quirk that disables APST (Autonomous Power State Transition) for the NVMe Samsung 950 (Firmware ID: BXV76D0Q) was merged into mainline kernel 4.11.0rc7 to fix bugs such as these:

Discussion from the linux-nvme mailing list:

Samsung 950 series SSDs in Dell XPS 15 9550 and Precision 5510 laptops (which are essentially the same laptop) can lose their PCIe link if they're allowed to use the deepest APST state. Samsung engineers have an affected system and are working on it. The same exact SSDs in other machines (even an XPS 13) seem to work fine.

Because of this quirk, the default APST controller state is set to off for our device, which causes the issues with soft reboot we were seeing.

Here's the discussion about the quirk that was merged into mainline 4.11:

We need to disable the quirk somehow in order to fix the issue with soft reboot.

We can entirely disable the quirk by using nvme_core.force_apst=1, but this can cause the bugs with read/write after extended usage (it happened for me after 3 days of uptime). Because of this, simply overriding apst will not work.

However, we can disable the lowest power state by using the kernel parameter: nvme_core.default_ps_max_latency_us=4950

This fixes all issues! Thanks again to Cristian Velasquez Ramos for the fix.

4
  • I realise my delay is pretty huge, but I wasn't in possession of my Dell for this period. I tried the 4950 latency, but it did not work. Also, now a failed reboot also removes ubuntu from boot options and recovery is pretty tedious (so trial and error just got way harder). I am going to experiment with a few more values, but as far as I've read they should only affect uptime before crashing from read/write errors. This is on Ubuntu 18.04. Do you believe I should try an older Ubuntu version?
    – cluntraru
    Mar 10, 2019 at 13:19
  • 16.04 yields the same results. Edit: 18.04 with nvme_core.default_ps_max_latency_us=0, same result
    – cluntraru
    Mar 10, 2019 at 14:51
  • Have you tried disabling the apst quirk entirely via nvme_core.force_apst=1? As far as I can tell, different parties with the same hardware have experienced crashing with varying power states (nvme ps latency values). It seems you've tried all of them, so perhaps your issue is not with a specific power state (as mine was)
    – tuxxi
    Mar 13, 2019 at 21:55
  • I did not specifically try that. I will give it a shot, but shouldn't that have the same effect as setting the max latency to 0? Moreover, given the read/write bugs you (and many others) spoke about, it doesn't seem like a permanent solution. I did try with Debian 9 though, and everything seems to be working fine (kernel 4.9.0-8).
    – cluntraru
    Mar 29, 2019 at 12:02
1

perhaps you are no longer worried, but I had the same problem as you.

After much research I have found the source of the problem.

In kernel version 4.11 they added a NVMe controller that saves power. After the kernel version 4.11.0rc7 they added in this patch:

static const struct nvme_core_quirk_entry core_quirks[] = {
    /*
     * Seen on a Samsung "SM951 NVMe SAMSUNG 256GB": using APST causes
     * the controller to go out to lunch.  It dies when the watchdog
     * timer reads CSTS and gets 0xffffffff.
     */
    {
        .vid = 0x144d,
        .fr = "BXW75D0Q",
        .quirks = NVME_QUIRK_NO_APST,
    },

Apparently this causes problems with our SSD when rebooting, making it so it is not detected. If you want to switch to another distribution aside from Debian or wanting to change kernels, be sure to use a kernel that is either v4.11.0rc7 or below.

Now, my only question is: Is it possible to disable this in newer kernels? I wouldn't really know how to go about this at all. I'd hope it's as simple as adding a boot parameter.

1

Was looking to update this, but the grub file I have has slightly different context (grub version 5.4.0-26-generic) ubuntu 20.04.

The file is as follows. My question is whether GRUB_LINUX_CMDLINE_DEFAULT is the same as GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" or are these 2 different things altogether

The file enclosed below:

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
1
  • You've got it. quiet and splash are kernel boot params, so you want to add the param to that string like this: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ${YOUR_OPTION_HERE}" For more info see here: wiki.archlinux.org/index.php/Kernel_parameters#GRUB
    – tuxxi
    May 2, 2020 at 6:13
0

The issue seems to be a faulty SSD. I replaced it with an Intel 760p and everything was fine. Tried to reuse the old SSD in a different hardware setup and it simply died.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .