Debian not detecting NVMe, ASUS Zenbook UX430UA

1

I'm trying to set up a Win 10 / Debian 10 dual boot on an Asus UX430UA that I've just bought new. I replaced the OEM SATA SSD with a larger NVMe SSD (ADATA XPG SX8200) and am trying to install both OS's on the same SSD, as I've done before on other systems. Debian installer does not detect the SSD.

Neither Debian Live 10.2 from USB stick, nor Debian 10.1 installer detect the drive:

  • lsblk shows only /dev/sda, which is the USB stick
  • there is no /dev/nvme*

But I know the drive works on this laptop and can work with Debian:

  • Drive works with Windows on the same laptop - boots fine.
  • Drive works with Debian 9 on another machine - I used my Debian desktop to clone the Windows installation to it from the old SSD.
  • UEFI sees the NVMe drive (obviously, since Windows is booting from it).

I've checked everything I can find based on a Google and superuser search:

  • UEFI is the latest version for this machine (307), according to ASUS website.
  • CSM (Compatibility Support Mode) turned on or off, no effect.
  • There is no option for SATA RAID, or Intel RST. In the UEFI, the only SATA option is already set to AHCI, and there are no other options to change it to.
  • Secure Boot is turned off. Fast boot is turned off.
  • There doesn't seem to be any option to update the firmware in the NVMe SSD. I installed Adata's tools program, but the firmware update button just takes you to their website, and there is no firmware download there for this product.

In case it's helpful:

sudo dmesg | grep -i nvme

[    1.441062] nvme nvme0: pci function 0000:03:00.0
[    1.665679] nvme nvme0: missing or invalid SUBNQN field.
[    1.668135]  nvme0n1: p1 p2 p3 p4 p5
[   36.017364] nvme nvme0: controller is down; will reset: CSTS=0xffffffff, PCI_STATUS=0xffff
[   36.049640] print_req_error: I/O error, dev nvme0n1, sector 1000215040
[   36.097358] nvme 0000:03:00.0: Refused to change power state, currently in D3
[   36.097634] nvme nvme0: Removing after probe failure status: -19
[   36.113518] Buffer I/O error on dev nvme0n1, logical block 125026880, async page read
[   36.115717] Buffer I/O error on dev nvme0n1p4, logical block 204784, async page read
[   36.115826] Buffer I/O error on dev nvme0n1p5, logical block 20479984, async page read
[   36.117946] Buffer I/O error on dev nvme0n1p1, logical block 66544, async page read
[   36.197378] nvme nvme0: failed to set APST feature (-19)

Any ideas would be appreciated!

linux
debian
ssd
asus-laptop
nvme
asked on Super User Nov 17, 2019 by dave • edited Nov 17, 2019 by dave

1 Answer

1

Got it working. oldfred's advice in the comments above helped, as well as this post: https://unix.stackexchange.com/questions/470778/nvme-missing-or-invalid-subnqn-field

It seems that the ADATA XPG SX8200 doesn't play well with APST power management, so you have to disable that at boot. To do that I added this option to the linux line when the installer started:

nvme_core.default_ps_max_latency_us=0

Apparently values up to about 5500 work as well. My understanding is that this will cause the SSD not to go into power saving mode.

I contacted ADATA about this. They offered to replace the unit under warranty, but couldn't tell me whether this issue has been addressed in any newer version of their firmware.

answered on Super User Nov 23, 2019 by dave

User contributions licensed under CC BY-SA 3.0