Package: parted Version: 3.2-22 Severity: normal Tags: patch, d-i parted currently exposes the same generic model name for all NVMe devices:
# parted /dev/nvme0n1 -s print | grep Model Model: NVMe Device (nvme) That can make it difficult to distinguish devices in your system, especially at install-time. This is fixed upstream in the following commit, which applies to Debian's package with only minor offset adjustments: 279bd554 Read NVMe model names from sysfs -- System Information: Debian Release: buster/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.19.0-rc3-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages parted depends on: ii libc6 2.27-6 ii libparted2 3.2-22 ii libreadline7 7.0-5 ii libtinfo6 6.1+20180714-1 parted recommends no packages. Versions of packages parted suggests: pn parted-doc <none> -- no debconf information
>From 279bd5540a59e3bdc4e3702ff062f87fd842c0e9 Mon Sep 17 00:00:00 2001 From: dann frazier <dann.fraz...@canonical.com> Date: Fri, 7 Sep 2018 13:31:15 -0600 Subject: [PATCH] Read NVMe model names from sysfs parted currently shows the same generic model name for all NVMe devices: # parted /dev/nvme0n1 -s print | grep Model Model: NVMe Device (nvme) If the model information is available in sysfs, display that instead: # parted /dev/nvme0n1 -s print | grep Model Model: THNSN5512GPU7 NVMe TOSHIBA 512GB (nvme) Signed-off-by: Brian C. Lane <b...@redhat.com> --- libparted/arch/linux.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c index 02d7a52c..7d83dfbb 100644 --- a/libparted/arch/linux.c +++ b/libparted/arch/linux.c @@ -1405,6 +1405,22 @@ init_sdmmc (PedDevice* dev) return init_generic(dev, id); } +static int +init_nvme (PedDevice* dev) +{ + int ret; + char *model = read_device_sysfs_file (dev, "model"); + + if (!model) + ret = init_generic (dev, _("NVMe Device")); + else { + ret = init_generic (dev, model); + free (model); + } + + return ret; +} + static PedDevice* linux_new (const char* path) { @@ -1489,7 +1505,7 @@ linux_new (const char* path) break; case PED_DEVICE_NVME: - if (!init_generic (dev, _("NVMe Device"))) + if (!init_nvme (dev)) goto error_free_arch_specific; break; -- 2.19.1