Page 1 of 2
PM961 NVMe PCIe Samsung SSD not supported? [Solved in Porteus 4.0]
Posted: 03 Nov 2017, 03:49
by rych
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.
new generation SSD disks not yet supported?
Posted: 03 Nov 2017, 04:36
by ncmprhnsbl
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 ..
new generation SSD disks not yet supported?
Posted: 04 Nov 2017, 04:49
by rych
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?
new generation SSD disks not yet supported?
Posted: 04 Nov 2017, 12:59
by ncmprhnsbl
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..
new generation SSD disks not yet supported?
Posted: 06 Nov 2017, 05:56
by rych
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
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 07 Nov 2017, 05:38
by rych
...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?
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 10 Nov 2017, 03:29
by rych
... 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
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 10 Nov 2017, 04:46
by ncmprhnsbl
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* ?
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 11 Nov 2017, 04:48
by rych
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.
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 11 Nov 2017, 07:10
by fanthom
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
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 11 Nov 2017, 08:54
by Blaze
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/
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 13 Nov 2017, 05:56
by rych
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)
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 18 Nov 2017, 18:11
by brokenman
I've updated the kernel and included the driver. I will upload the latest tomorrow evening.
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 20 Nov 2017, 05:30
by rych
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?
PM961 NVMe PCIe Samsung SSD not supported?
Posted: 20 Nov 2017, 11:32
by brokenman
I sent you a PM