PM961 NVMe PCIe Samsung SSD not supported? [Solved in Porteus 4.0]

Please reproduce your error on a second machine before posting, and check the error by running without saved changes or extra modules (See FAQ No. 13, "How to report a bug"). For unstable Porteus versions (alpha, beta, rc) please use the relevant thread in our "Development" section.
rych
Black ninja
Black ninja
Posts: 86
Joined: 04 Jan 2014, 04:27
Distribution: Porteus 2.1 32-bit
Location: NZ

PM961 NVMe PCIe Samsung SSD not supported? [Solved in Porteus 4.0]

Post#1 by rych » 03 Nov 2017, 03:49

A M.2 PCIe NVMe SSD host system disk is not seen by Porteus 3.2.2 64. At all. Not in GParted, not anywhere.

Specifically, a new machine that we got is Dell Optiplex 7450 AIO, featuring a novel PM961 NVMe Samsung SSD disk. In Bios, under devices, it is listed not as a SATA disk but as a "M.2 PCIe SSD".

Although an expected development in disk drive design (SSD didn't need to be enclosed in SATA after all), I think it's too novel for porteus (linux?) to handle. Some help please.
Last edited by rych on 11 Dec 2017, 05:48, edited 2 times in total.

User avatar
ncmprhnsbl
DEV Team
DEV Team
Posts: 1021
Joined: 20 Mar 2012, 03:42
Distribution: 3.2.2-64bit xfce/openbox
Location: australia
Contact:

new generation SSD disks not yet supported?

Post#2 by ncmprhnsbl » 03 Nov 2017, 04:36

could be like this?: https://bbs.archlinux.org/viewtopic.php?id=204629
their solution seems to be something to do with switching SATA operations from RAID to AHCI in BIOS ..
Forum Rules : http://forum.porteus.org/viewtopic.php?f=35&t=44

rych
Black ninja
Black ninja
Posts: 86
Joined: 04 Jan 2014, 04:27
Distribution: Porteus 2.1 32-bit
Location: NZ

new generation SSD disks not yet supported?

Post#3 by rych » 04 Nov 2017, 04:49

Thanks, @ncmprhnsbl

In my case SATA is already set to AHCI. There is only one SATA device per se, it's a DVD drive. The problem disk is not listed as SATA, but a PCIe. Maybe it does still use SATA bus, I wonder. Anyhow, I'm only seeing AHCI in Bios. I should add that Windows boots on the same machine just fine, from the disk in question.

The linked Dell thread suggests to add
the following kernel argument at boot time:
nvme_load=YES
Could I do it during porteus boot somewhere?

User avatar
ncmprhnsbl
DEV Team
DEV Team
Posts: 1021
Joined: 20 Mar 2012, 03:42
Distribution: 3.2.2-64bit xfce/openbox
Location: australia
Contact:

new generation SSD disks not yet supported?

Post#4 by ncmprhnsbl » 04 Nov 2017, 12:59

rych wrote:
04 Nov 2017, 04:49
Could I do it during porteus boot somewhere?
i guess you could try it either on the APPEND line(syslinux/porteus.cfg) or for EFI in the refind.conf on the add_options line..
depending on which you're using..
Forum Rules : http://forum.porteus.org/viewtopic.php?f=35&t=44

rych
Black ninja
Black ninja
Posts: 86
Joined: 04 Jan 2014, 04:27
Distribution: Porteus 2.1 32-bit
Location: NZ

new generation SSD disks not yet supported?

Post#5 by rych » 06 Nov 2017, 05:56

No, adding nvme_load=YES to APPEND had no apparent effect: it didn't discover any new disks or devices.

The only mention of the word "Samsung" I've seen so far is in the /tmp/psinfo.txt generated with psinfo:

Code: Select all

...
LSPCI OUTPUT:
...
01:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a804]
	Subsystem: Samsung Electronics Co Ltd Device [144d:a801]
Is this giving me a hope? It's a PCI and a NVM, now it only needs to find the SSD disk connected through it :)

rych
Black ninja
Black ninja
Posts: 86
Joined: 04 Jan 2014, 04:27
Distribution: Porteus 2.1 32-bit
Location: NZ

PM961 NVMe PCIe Samsung SSD not supported?

Post#6 by rych » 07 Nov 2017, 05:38

...have found in http://www.samsung.com/semiconductor/gl ... aper-0.pdf a mention of a driver, nvme-kmp-default-1.17_3.0.76_0.11-0.x86.64.rpm. Should I try and install it? I thought these things are supposed to be in the kernel?

rych
Black ninja
Black ninja
Posts: 86
Joined: 04 Jan 2014, 04:27
Distribution: Porteus 2.1 32-bit
Location: NZ

PM961 NVMe PCIe Samsung SSD not supported?

Post#7 by rych » 10 Nov 2017, 03:29

... have tried to set in BIOS, SATA operation to Disabled -- didn't work, and the disk is not even listed in BIOS anymore. So I'm confused, is a PCIe NVM disk still a SATA disk?

Switched it back to AHCI, and added nvme_load="YES" nvd_load="YES" in porteus.cfg -- no effect

User avatar
ncmprhnsbl
DEV Team
DEV Team
Posts: 1021
Joined: 20 Mar 2012, 03:42
Distribution: 3.2.2-64bit xfce/openbox
Location: australia
Contact:

PM961 NVMe PCIe Samsung SSD not supported?

Post#8 by ncmprhnsbl » 10 Nov 2017, 04:46

don't know if this helps any: https://wiki.archlinux.org/index.php/So ... rives/NVMe
what kernel version do you have? >3.3 right? anything show in /dev/nvme* ?
Forum Rules : http://forum.porteus.org/viewtopic.php?f=35&t=44

rych
Black ninja
Black ninja
Posts: 86
Joined: 04 Jan 2014, 04:27
Distribution: Porteus 2.1 32-bit
Location: NZ

PM961 NVMe PCIe Samsung SSD not supported?

Post#9 by rych » 11 Nov 2017, 04:48

Thank you, @ncmprhnsbl , for staying with me on this

Kernel version: 4.9.0-porteus
none of /dev/nvme* or any other promising /dev/* that I could see

It's interesting that BIOS can see this device yet porteus can't. Perhaps there is more to it,it's a new machine from Dell. I'll try to find where to post on their forum.

User avatar
fanthom
Site Admin
Site Admin
Posts: 4623
Joined: 28 Dec 2010, 02:42
Distribution: Porteus Kiosk
Location: Poland, currently - Cork, IE
Contact:

PM961 NVMe PCIe Samsung SSD not supported?

Post#10 by fanthom » 11 Nov 2017, 07:10

Hi rych,

nvme driver must be compiled directly into Porteus kernel or loaded from initrd before the search for .sgn file is performed.
This is something for brokenman to look after in next release.

Thanks
Please add [Solved] to your thread title if the solution was found.

User avatar
Blaze
DEV Team
DEV Team
Posts: 1549
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus 3.2 Cinnamon x86_64
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

PM961 NVMe PCIe Samsung SSD not supported?

Post#11 by Blaze » 11 Nov 2017, 08:54

The installer of Slackware 14.2 does not support NVMe boot devices (the new type of SSD hard drives with a M.2 PCI-express interface)
https://alien.slackbook.org/blog/build- ... slackware/
I found interesting fix for Slackware-current - look at this post
Probably, this fix may be applicable for Porteus.

For extracting initrd.xz I used this script extract_initramfs.sh

Code: Select all

#/bin/sh
# $Id: extract_initramfs.sh,v 1.8 2016/01/27 20:18:15 root Exp root $
# ----------------------------------------------------------------------------
# Purpose:
#   Create or extract initramfs archives.
# Usage:
#   extract_initramfs <archivename> <target_directory>
#   create_initramfs <archivename> <source_directory>
#
# Author:
#   Eric Hameleers <alien@slackware.com>
#
# ----------------------------------------------------------------------------

# My paranoia:
set -e
# Debugging:
#set -x

# Names by which the script can be called (use symlinks for this!):
EXTRACT_NAME=extract_initramfs.sh
CREATE_NAME=create_initramfs.sh

# Used compression techniques:
A7Z=$(which 7za 2>/dev/null) || true
GZIP=$(which gzip 2>/dev/null) || true
ZIP=$(which zip 2>/dev/null) || true
XZ=$(which xz 2>/dev/null) || true

usage() {
cat <<EOT__

$0 :
   Create or extract initramfs archives.
Usage:
   extract_initramfs <archivename> <target_directory>
   create_initramfs <archivename> <source_directory>
NOTE:
   The target directory will be created if it does not yet exist.
   The initramfs contents will be extracted to this target directory.
   The target directory's existing contents will *not* be erased
    prior to extracting the initramfs, in case the directory already exists.

EOT__
}

compressfs () {
if [ "$(echo "${1}" |rev |cut -d. -f1 | rev)" = "7z" -a -n "$A7Z" ]; then
  7za a ${1} -si
elif [ "$(echo "${1}" |rev |cut -d. -f1 | rev)" = "zip" -a -n "$ZIP" ]; then
  zip "${1}" -
elif [ "$(echo "${1}" |rev |cut -d. -f1 | rev)" = "gz" -a -n "$GZIP" ]; then
  gzip -c > "${1}"
elif [ "$(echo "${1}" |rev |cut -d. -f1 | rev)" = "xz" -a -n "$XZ" ]; then
  xz -c > "${1}"
else
  # Use a safe default and hope for the best:
  gzip -c > ${1}
fi
}

uncompressfs () {
if $(file "${1}" | grep -qi ": 7-zip"); then
  7za x "${1}" -so
elif $(file "${1}" | grep -qi ": zip"); then
  unzip -p "${1}"
elif $(file "${1}" | grep -qi ": gzip"); then
  gzip -cd "${1}"
elif $(file "${1}" | grep -qi ": XZ"); then
  xz -cd "${1}"
else
  # And hope for the best:
  gunzip -cd "${1}"
fi
}

if [ -z "$1" ]; then
  usage
  exit 1
else
  INITRD=$1
  [ "${INITRD:0:1}" != "/" ] && INITRD=$(pwd)/${INITRD}
fi

if [ -z "$2" ]; then
  usage
  exit 2
else
  DIR=$2
fi


if [ "`basename $0`" = "${EXTRACT_NAME}" ]; then
  if [ ! -r ${INITRD} ]; then
    echo "***ERROR*** Can not read initramfs file '${INITRD}'!"
    exit 11
  fi
  if [ ! -d ${DIR} ]; then
    # Try to create the target directory:
    if ! mkdir -p ${DIR} ; then
      echo "***ERROR*** Can not create directory '${DIR}'!"
      exit 11
    fi
  fi
  cd ${DIR}
  echo "--- Extracting the initramfs into the directory '${DIR}'"
  uncompressfs ${INITRD} | cpio -i -d -H newc --no-absolute-filenames
elif [ "`basename $0`" = "${CREATE_NAME}" ]; then
  if [ ! -d ${DIR} ]; then
    echo "***ERROR*** Directory '${DIR}' does not exist!"
    exit 12
  fi
  # Compress the initrd (this is a cpio archive for the 2.6 kernel's initramfs):
  cd ${DIR}
  echo "--- Creating the initramfs from content below '${DIR}'"
  find . | cpio -o -H newc | compressfs ${INITRD}
  RET=$?
  [ $RET -ne 0 ] && echo "An error occured in creating $INITRD (code $RET)"
fi
Create or extract initramfs archives.
Usage:
extract_initramfs <archivename> <target_directory>
create_initramfs <archivename> <source_directory>
NOTE:
The target directory will be created if it does not yet exist.
The initramfs contents will be extracted to this target directory.
The target directory's existing contents will *not* be erased
prior to extracting the initramfs, in case the directory already exists.

Code: Select all

su
toor
cd /home/guest/Загрузки
chmod +x extract_initramfs.sh
mkdir initrd
./extract_initramfs.sh initrd.xz /home/guest/Загрузки/initrd/
rm initrd.xz
# Names by which the script can be called (use symlinks for this!):
# EXTRACT_NAME=extract_initramfs.sh
# CREATE_NAME=create_initramfs.sh
ln -s /home/guest/Загрузки/extract_initramfs.sh /home/guest/Загрузки/create_initramfs.sh
./create_initramfs.sh initrd.xz /home/guest/Загрузки/initrd/
Linux porteus 4.13.3-porteus #1 SMP PREEMPT Sat Sep 23 18:22:13 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

rych
Black ninja
Black ninja
Posts: 86
Joined: 04 Jan 2014, 04:27
Distribution: Porteus 2.1 32-bit
Location: NZ

PM961 NVMe PCIe Samsung SSD not supported?

Post#12 by rych » 13 Nov 2017, 05:56

Thanks fanthom and Spasibo Blaze. Your messages give hope that it's doable and might be fixed in Porteus-4.0 by @brokenman? I'll wait. (In the meantime I guess I should make a RAM disk because there is 8GB of RAM. Otherwise writing-reading off my USB drive all the time is too slow)

User avatar
brokenman
Site Admin
Site Admin
Posts: 5652
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

PM961 NVMe PCIe Samsung SSD not supported?

Post#13 by brokenman » 18 Nov 2017, 18:11

I've updated the kernel and included the driver. I will upload the latest tomorrow evening.
How do i become super user?
Wear your underpants on the outside and put on a cape.

rych
Black ninja
Black ninja
Posts: 86
Joined: 04 Jan 2014, 04:27
Distribution: Porteus 2.1 32-bit
Location: NZ

PM961 NVMe PCIe Samsung SSD not supported?

Post#14 by rych » 20 Nov 2017, 05:30

Thank you, @brokenman, I look forward to trying it. Is it going to appear in http://dl.porteus.org/x86_64/Porteus-v3.2.2/kernel/ or elsewhere - I can't find it?

User avatar
brokenman
Site Admin
Site Admin
Posts: 5652
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

PM961 NVMe PCIe Samsung SSD not supported?

Post#15 by brokenman » 20 Nov 2017, 11:32

I sent you a PM
How do i become super user?
Wear your underpants on the outside and put on a cape.

Post Reply