DietPi-Drive_Manager | NVMe support/tests

Created on 2 Oct 2018  路  13Comments  路  Source: MichaIng/DietPi

Hardware limited write speed on NanoPC-T4/RK (using 970 EVO)
image

6 partitions?

dd if=/dev/zero of=/dev/nvme0n1 bs=4K count=4000

#reboot

nvme0n1      259:0    0 232.9G  0 disk
鈹溾攢nvme0n1p1  259:1    0     4M  0 part
鈹溾攢nvme0n1p2  259:2    0     4M  0 part
鈹溾攢nvme0n1p3  259:3    0    12M  0 part
鈹溾攢nvme0n1p4  259:4    0    32M  0 part
鈹溾攢nvme0n1p5  259:5    0    32M  0 part
鈹斺攢nvme0n1p6  259:6    0 232.5G  0 part

Samsung/NanoPC-T4 only?

https://itpeernetwork.intel.com/finding-your-new-intel-ssd-for-pcie-think-nvme-not-scsi/
nvme0n1 259:0 0 372.6G 0 disk
鈹斺攢nvme0n1p1 259:1 0 372.6G 0 part

NanoPC T4

Most helpful comment

I've uploaded the Rockchip upstream Kernel version 4.4.154 on https://we.tl/t-241Gjd7EJN. Signaled @Fourdee to edit the install packages. Thanks @james-b-nz !

All 13 comments

Ah this confirms my question in the other topic. I will fix drive_manager accordingly, as currently it might try take /dev/nvme0 as drive instead of /dev/nvme0n1.

Strange about the partition though... If these other ones are somehow always created, we should ignore them in drive_manager. Never found that case when doing naming scheme research 馃.

@MichaIng

Just finished, will send commit.

To do:

dd if=/dev/zero of=/dev/nvme0n1 bs=4K count=10000
reboot

Interesting, appears to match the same as MMC layout:

root@DietPi:~# lsblk /dev/nvme0n1
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0 232.9G  0 disk
鈹溾攢nvme0n1p1 259:1    0     4M  0 part
鈹溾攢nvme0n1p2 259:2    0     4M  0 part
鈹溾攢nvme0n1p3 259:3    0    12M  0 part
鈹溾攢nvme0n1p4 259:4    0    32M  0 part
鈹溾攢nvme0n1p5 259:5    0    32M  0 part
鈹斺攢nvme0n1p6 259:6    0 232.5G  0 part /mnt/nvme
root@DietPi:~# lsblk /dev/mmcblk1
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk1     179:0    0 14.6G  0 disk
鈹溾攢mmcblk1p1 179:1    0    4M  0 part
鈹溾攢mmcblk1p2 179:2    0    4M  0 part
鈹溾攢mmcblk1p3 179:3    0   12M  0 part
鈹溾攢mmcblk1p4 179:4    0   32M  0 part
鈹溾攢mmcblk1p5 179:5    0   32M  0 part
鈹斺攢mmcblk1p6 179:6    0 14.2G  0 part /

Appears to be NanoPC-T4 specific? Sent email to FE, waiting for response.

@MichaIng

First integer might be controller number, second drive number and only third is partition number.

Yep, seems to make sense 馃憤

Zero all partitions, then disk

Seems NanoPC-T4 specific, i've already added a workaround for this in code.

root@DietPi:~# dd if=/dev/zero of=/dev/nvme0n1p6 bs=4K count=10000
10000+0 records in
10000+0 records out
40960000 bytes (41 MB, 39 MiB) copied, 0.233267 s, 176 MB/s
root@DietPi:~# dd if=/dev/zero of=/dev/nvme0n1p5 bs=4K count=10000
dd: error writing '/dev/nvme0n1p5': No space left on device
8193+0 records in
8192+0 records out
33554432 bytes (34 MB, 32 MiB) copied, 0.177884 s, 189 MB/s
root@DietPi:~# dd if=/dev/zero of=/dev/nvme0n1p4 bs=4K count=10000
dd: error writing '/dev/nvme0n1p4': No space left on device
8193+0 records in
8192+0 records out
33554432 bytes (34 MB, 32 MiB) copied, 0.171098 s, 196 MB/s
root@DietPi:~# dd if=/dev/zero of=/dev/nvme0n1p3 bs=4K count=10000
dd: error writing '/dev/nvme0n1p3': No space left on device
3073+0 records in
3072+0 records out
12582912 bytes (13 MB, 12 MiB) copied, 0.11826 s, 106 MB/s
root@DietPi:~# dd if=/dev/zero of=/dev/nvme0n1p2 bs=4K count=10000
dd: error writing '/dev/nvme0n1p2': No space left on device
1025+0 records in
1024+0 records out
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.0477202 s, 87.9 MB/s
root@DietPi:~# dd if=/dev/zero of=/dev/nvme0n1p1 bs=4K count=10000
dd: error writing '/dev/nvme0n1p1': No space left on device
1025+0 records in
1024+0 records out
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.0482256 s, 87.0 MB/s
root@DietPi:~# dd if=/dev/zero of=/dev/nvme0n1 bs=4K count=10000
10000+0 records in
10000+0 records out
40960000 bytes (41 MB, 39 MiB) copied, 0.236246 s, 173 MB/s

#Just to confirm non-disk
root@DietPi:~# dd if=/dev/zero of=/dev/nvme0 bs=4K count=10000
dd: error writing '/dev/nvme0': Invalid argument
1+0 records in
0+0 records out
0 bytes copied, 0.002604 s, 0.0 kB/s

Reboot

root@DietPi:~# lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
mmcblk1      179:0    0  14.6G  0 disk
鈹溾攢mmcblk1p1  179:1    0     4M  0 part
鈹溾攢mmcblk1p2  179:2    0     4M  0 part
鈹溾攢mmcblk1p3  179:3    0    12M  0 part
鈹溾攢mmcblk1p4  179:4    0    32M  0 part
鈹溾攢mmcblk1p5  179:5    0    32M  0 part
鈹斺攢mmcblk1p6  179:6    0  14.2G  0 part /
mmcblk1boot0 179:32   0     4M  1 disk
mmcblk1boot1 179:64   0     4M  1 disk
mmcblk1rpmb  179:96   0     4M  0 disk
nvme0n1      259:0    0 232.9G  0 disk
鈹溾攢nvme0n1p1  259:1    0     4M  0 part
鈹溾攢nvme0n1p2  259:2    0     4M  0 part
鈹溾攢nvme0n1p3  259:3    0    12M  0 part
鈹溾攢nvme0n1p4  259:4    0    32M  0 part
鈹溾攢nvme0n1p5  259:5    0    32M  0 part
鈹斺攢nvme0n1p6  259:6    0 232.5G  0 part
root@DietPi:~# blkid
/dev/mmcblk1p6: UUID="2899cd3f-0af0-4395-934f-e72272e315e2" TYPE="ext4"

And we need to implement a Random R/W benchmark.
https://twitter.com/DietPi_/status/1047191607248936962

for i < 1000

dd if=/dev/zero of=/mnt/.bench_$i bs=4k count=1 & #probably finish before next loop... And, sequential result?

Hi,
I just installed DietPi on a NanoPC T4 with an Intel NVME 600p SSD. I can confirm that the 6 partitions exist by default for this configuration as well:

root@DietPiNanoPCT4:~# lsblk /dev/nvme0n1
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0 119.2G  0 disk
鈹溾攢nvme0n1p1 259:1    0     4M  0 part
鈹溾攢nvme0n1p2 259:2    0     4M  0 part
鈹溾攢nvme0n1p3 259:6    0    12M  0 part
鈹溾攢nvme0n1p4 259:8    0    32M  0 part
鈹溾攢nvme0n1p5 259:9    0    32M  0 part
鈹斺攢nvme0n1p6 259:10   0 118.9G  0 part /mnt/nvme

For anyone interested the results in the DietPi benchmark for the above drive is:

intel_600p_benchmark_dietpi

@james-b-nz

I just installed DietPi on a NanoPC T4 with an Intel NVME 600p SSD. I can confirm that the 6 partitions exist by default for this configuration as well:

Thank you for testing and confirming 馃憤

Ticket now resolved.

Friendly ARM have confirmed this is an issue with the kernel configuration. They have fixed it here:
https://github.com/friendlyarm/kernel-rockchip/commit/a3c93d1b469401211e66fdec965810c1a41087f9

@carlosedp

Any chance you'd be willing to update the NanoPC-T4 kernel for our images, to include the above fix?

Its not critical, as we have a workaround in DietPi code to compensate for block layout, however, would be nice to have it updated.

I've built the latest kernel (4.4.143) from Friendly Elec's source and it does fix that issue:

screenshot from 2018-10-12 01-43-09

Modules are:

root@DietPi:~# find /lib/modules/4.4.143/
/lib/modules/4.4.143/
/lib/modules/4.4.143/modules.alias.bin
/lib/modules/4.4.143/modules.dep.bin
/lib/modules/4.4.143/modules.dep
/lib/modules/4.4.143/modules.softdep
/lib/modules/4.4.143/modules.alias
/lib/modules/4.4.143/modules.devname
/lib/modules/4.4.143/modules.builtin.bin
/lib/modules/4.4.143/modules.symbols.bin
/lib/modules/4.4.143/modules.order
/lib/modules/4.4.143/modules.builtin
/lib/modules/4.4.143/modules.symbols
/lib/modules/4.4.143/kernel
/lib/modules/4.4.143/kernel/lib
/lib/modules/4.4.143/kernel/lib/raid6
/lib/modules/4.4.143/kernel/lib/raid6/raid6_pq.ko
/lib/modules/4.4.143/kernel/lib/zlib_deflate
/lib/modules/4.4.143/kernel/lib/zlib_deflate/zlib_deflate.ko
/lib/modules/4.4.143/kernel/fs
/lib/modules/4.4.143/kernel/fs/xfs
/lib/modules/4.4.143/kernel/fs/xfs/xfs.ko
/lib/modules/4.4.143/kernel/fs/f2fs
/lib/modules/4.4.143/kernel/fs/f2fs/f2fs.ko
/lib/modules/4.4.143/kernel/fs/cifs
/lib/modules/4.4.143/kernel/fs/cifs/cifs.ko
/lib/modules/4.4.143/kernel/fs/ntfs
/lib/modules/4.4.143/kernel/fs/ntfs/ntfs.ko
/lib/modules/4.4.143/kernel/fs/btrfs
/lib/modules/4.4.143/kernel/fs/btrfs/btrfs.ko
/lib/modules/4.4.143/kernel/fs/crypto
/lib/modules/4.4.143/kernel/fs/crypto/fscrypto.ko
/lib/modules/4.4.143/kernel/fs/nfsd
/lib/modules/4.4.143/kernel/fs/nfsd/nfsd.ko
/lib/modules/4.4.143/kernel/net
/lib/modules/4.4.143/kernel/net/openvswitch
/lib/modules/4.4.143/kernel/net/openvswitch/openvswitch.ko
/lib/modules/4.4.143/kernel/net/wireless
/lib/modules/4.4.143/kernel/net/wireless/lib80211.ko
/lib/modules/4.4.143/kernel/net/wireless/lib80211_crypt_tkip.ko
/lib/modules/4.4.143/kernel/net/wireless/lib80211_crypt_wep.ko
/lib/modules/4.4.143/kernel/net/wireless/lib80211_crypt_ccmp.ko
/lib/modules/4.4.143/kernel/net/netfilter
/lib/modules/4.4.143/kernel/net/netfilter/xt_HL.ko
/lib/modules/4.4.143/kernel/net/netfilter/xt_tcpudp.ko
/lib/modules/4.4.143/kernel/net/netfilter/xt_hl.ko
/lib/modules/4.4.143/kernel/net/netfilter/nf_log_common.ko
/lib/modules/4.4.143/kernel/net/netfilter/x_tables.ko
/lib/modules/4.4.143/kernel/net/netfilter/xt_ecn.ko
/lib/modules/4.4.143/kernel/net/ipv4
/lib/modules/4.4.143/kernel/net/ipv4/netfilter
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/iptable_raw.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/nf_log_arp.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/iptable_filter.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/ipt_REJECT.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/arptable_filter.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/nf_reject_ipv4.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/arpt_mangle.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/ip_tables.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/nf_dup_ipv4.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/arp_tables.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/ipt_ECN.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/ipt_ah.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/iptable_mangle.ko
/lib/modules/4.4.143/kernel/net/ipv4/netfilter/nf_log_ipv4.ko
/lib/modules/4.4.143/kernel/net/ipv6
/lib/modules/4.4.143/kernel/net/ipv6/netfilter
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/nf_log_ipv6.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6t_mh.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/nf_dup_ipv6.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6_tables.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6table_filter.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/nf_reject_ipv6.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6t_frag.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6t_eui64.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6t_rpfilter.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6table_raw.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6table_mangle.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6t_ah.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6t_hbh.ko
/lib/modules/4.4.143/kernel/net/ipv6/netfilter/ip6t_rt.ko
/lib/modules/4.4.143/kernel/net/sunrpc
/lib/modules/4.4.143/kernel/net/sunrpc/auth_gss
/lib/modules/4.4.143/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
/lib/modules/4.4.143/kernel/net/mpls
/lib/modules/4.4.143/kernel/net/mpls/mpls_gso.ko
/lib/modules/4.4.143/kernel/drivers
/lib/modules/4.4.143/kernel/drivers/net
/lib/modules/4.4.143/kernel/drivers/net/ppp
/lib/modules/4.4.143/kernel/drivers/net/ppp/bsd_comp.ko
/lib/modules/4.4.143/kernel/drivers/net/ppp/ppp_mppe.ko
/lib/modules/4.4.143/kernel/drivers/net/ppp/ppp_async.ko
/lib/modules/4.4.143/kernel/drivers/net/ppp/pppox.ko
/lib/modules/4.4.143/kernel/drivers/net/ppp/ppp_deflate.ko
/lib/modules/4.4.143/kernel/drivers/net/ppp/pppopns.ko
/lib/modules/4.4.143/kernel/drivers/net/ppp/ppp_synctty.ko
/lib/modules/4.4.143/kernel/drivers/net/ppp/pppoe.ko
/lib/modules/4.4.143/kernel/drivers/net/ppp/pppolac.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless
/lib/modules/4.4.143/kernel/drivers/net/wireless/p54
/lib/modules/4.4.143/kernel/drivers/net/wireless/p54/p54usb.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/p54/p54common.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/mediatek
/lib/modules/4.4.143/kernel/drivers/net/wireless/mediatek/mt7601u
/lib/modules/4.4.143/kernel/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/hostap
/lib/modules/4.4.143/kernel/drivers/net/wireless/hostap/hostap.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/at76c50x-usb.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/mwifiex
/lib/modules/4.4.143/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/mwifiex/mwifiex.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/rndis_wlan.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/libertas_tf
/lib/modules/4.4.143/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/rockchip_wlan
/lib/modules/4.4.143/kernel/drivers/net/wireless/rockchip_wlan/rtl8188eu
/lib/modules/4.4.143/kernel/drivers/net/wireless/rockchip_wlan/rtl8188eu/8188eu.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/brcm80211
/lib/modules/4.4.143/kernel/drivers/net/wireless/brcm80211/brcmutil
/lib/modules/4.4.143/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/brcm80211/brcmfmac
/lib/modules/4.4.143/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/realtek
/lib/modules/4.4.143/kernel/drivers/net/wireless/realtek/rtl8xxxu
/lib/modules/4.4.143/kernel/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/zd1201.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/rt2x00
/lib/modules/4.4.143/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/rt2x00/rt2800lib.ko
/lib/modules/4.4.143/kernel/drivers/net/wireless/zd1211rw
/lib/modules/4.4.143/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko
/lib/modules/4.4.143/kernel/drivers/net/usb
/lib/modules/4.4.143/kernel/drivers/net/usb/r8152.ko
/lib/modules/4.4.143/kernel/drivers/net/usb/rtl8150.ko
/lib/modules/4.4.143/kernel/drivers/input
/lib/modules/4.4.143/kernel/drivers/input/touchscreen
/lib/modules/4.4.143/kernel/drivers/input/touchscreen/atmel_mxt_ts.ko
/lib/modules/4.4.143/kernel/drivers/input/touchscreen/elants_i2c.ko
/lib/modules/4.4.143/kernel/drivers/input/touchscreen/usbtouchscreen.ko
/lib/modules/4.4.143/kernel/drivers/input/keyboard
/lib/modules/4.4.143/kernel/drivers/input/keyboard/cros_ec_keyb.ko
/lib/modules/4.4.143/kernel/drivers/input/mouse
/lib/modules/4.4.143/kernel/drivers/input/mouse/elan_i2c.ko
/lib/modules/4.4.143/kernel/drivers/input/mouse/cyapatp.ko
/lib/modules/4.4.143/kernel/drivers/i2c
/lib/modules/4.4.143/kernel/drivers/i2c/busses
/lib/modules/4.4.143/kernel/drivers/i2c/busses/i2c-cros-ec-tunnel.ko
/lib/modules/4.4.143/kernel/drivers/mfd
/lib/modules/4.4.143/kernel/drivers/mfd/cros_ec_spi.ko
/lib/modules/4.4.143/kernel/drivers/mfd/cros_ec.ko
/lib/modules/4.4.143/kernel/drivers/gpu
/lib/modules/4.4.143/kernel/drivers/gpu/arm
/lib/modules/4.4.143/kernel/drivers/gpu/arm/mali400
/lib/modules/4.4.143/kernel/drivers/gpu/arm/mali400/mali
/lib/modules/4.4.143/kernel/drivers/gpu/arm/mali400/mali/mali.ko
/lib/modules/4.4.143/kernel/crypto
/lib/modules/4.4.143/kernel/crypto/michael_mic.ko
/lib/modules/4.4.143/kernel/crypto/crc32.ko
/lib/modules/4.4.143/kernel/crypto/xts.ko
/lib/modules/4.4.143/kernel/crypto/cts.ko
/lib/modules/4.4.143/kernel/crypto/xor.ko

If anyone would like to test it updated image files (excluding rootfs):
https://wetransfer.com/downloads/985ba0d51f05f4004466bd74183f9b8420181011130139/e5c815740ed8d66578cfaf8cddfe164a20181011130139/890123
~~Module files for inclusion on rootfs are here:

https://wetransfer.com/downloads/083d2f59215848cd6c7f1466d315756b20181011132359/76fc03f897bf998801672a2f813facbf20181011132359/cdda3b~~

(NB: links expire in 7 days from posting)

EDIT: Images did not have mali drivers compiled properly, please see follow up message below

Sorry about the delay guys, I'll build the latest Kernel from Rockchip, 4.4.154. Just finishing up some stuff on my build VM.

So the default kernel config has the Mali driver configured for Android only, I've rebuilt 4.4.143 with the correct options.
Installed the XFCE desktop from dietpi-software and logged in as below:
desktop

I included openvswitch and ip_tables for @carlosedp and similar setups although I was aiming to use it with a GUI. If anyone wants any other modules compiled in let me know and I can update it.

Files for testing with updated boot.img, resource.img, kernel.img and modules in a tar.gz to copy to rootfs:
https://wetransfer.com/downloads/a358f75410b3caeb9ddf26dce1e9d25820181012002709/d2cb9426e31c00c862f39ccadb62eb2720181012002709/c95aab

I've uploaded the Rockchip upstream Kernel version 4.4.154 on https://we.tl/t-241Gjd7EJN. Signaled @Fourdee to edit the install packages. Thanks @james-b-nz !

@carlosedp

I've uploaded the Rockchip upstream Kernel version 4.4.154

Legend, thank you 馃憤

Reopened to update images.


Note to self:

  • NanoPC, SD install, update rootfs to 6.16. Read, package rootfs for RK.

Completed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

oshank picture oshank  路  3Comments

k-plan picture k-plan  路  3Comments

Fourdee picture Fourdee  路  3Comments

1021683053 picture 1021683053  路  3Comments

Fourdee picture Fourdee  路  3Comments