Skip to content

ROCKPro64 - PCIe NVMe SSD installieren

Hardware
  • Hardware

    • ROCKPro64
    • PCIe NVMe SSD Adapater
    • beliebige NVMe SSD

    Software

    Software installieren

    Der einfachste Weg ist, den PCIe NVMe Adapter in einen anderen PC zu stecken. Ich habe da ja was hier rumstehen 😉 Der PC hat ein Debian Buster 10 drauf. Karte rein, Image runterladen und mit dem Schreiber von Laufwerksabbildern auf die NVMe SSD bügeln. Dazu habe ich vorher das Image ausgepackt.

    unxz buster-minimal-rockpro64-0.9.16-1163-arm64.img.xz
    

    Hardware installieren

    Danach die Karte in den ROCKPro64 einbauen. Damit der ROCKPro64 jetzt von der NVMe SSD bootet, brauchen wir im SPI Speicher einen uboot. Dazu setze ich momentan den uboot von Sigmaris ein.

    Eine Anleitung dazu findet ihr hier.

    Der Start

    Nach dem Start fragt er ja erst mal das neue Passwort ab.

    rank@debian:~$ ssh rock64@192.168.178.29
    The authenticity of host '192.168.178.29 (192.168.178.29)' can't be established.
    ECDSA key fingerprint is SHA256:MLxSpWMhjYQ5FpnA8ZzFUYIodN4JfXJLKMulhKFzBOM.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.178.29' (ECDSA) to the list of known hosts.
    rock64@192.168.178.29's password: 
    You are required to change your password immediately (administrator enforced)
                    _                     __   _  _   
     _ __ ___   ___| | ___ __  _ __ ___  / /_ | || |  
    | '__/ _ \ / __| |/ / '_ \| '__/ _ \| '_ \| || |_ 
    | | | (_) | (__|   <| |_) | | | (_) | (_) |__   _|
    |_|  \___/ \___|_|\_\ .__/|_|  \___/ \___/   |_|  
                        |_|                           
    Linux rockpro64 4.4.197-1236-rockchip-ayufan-g30faab37e339 #1 SMP Tue Oct 22 11:35:10 UTC 2019 aarch64
    
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    WARNING: Your password has expired.
    You must change your password now and login again!
    Changing password for rock64.
    Current password: 
    New password: 
    Retype new password: 
    passwd: password updated successfully
    Connection to 192.168.178.29 closed.
    

    Danach können wir uns mit dem neuen Passwort anmelden. Um administrative Aufgaben durchzuführen, muss man jetzt ein sudo vorne anstellen. Ich finde das mittlerweile furchtbar. Deswegen bauen wir das jetzt um.

    su passwd
    

    Damit setzen wir ein Passwort für den Root User. Danach können wir uns jetzt mittels

    su -
    

    anmelden. Damit wären wir im /root Verzeichnis. Mit

    su
    

    würden wir im aktuellen Verzeichnis bleiben. Nun steht euch frei, das Tool sudo zu deinstallieren. Auf Systemen, die von außen erreichbar sind, ist das empfehlenswert. Nun kann ich wieder vernünftig arbeiten 🙂

    Festplatte

    Die NVMe SSD ist ein wenig klein 😞

    root@rockpro64:~# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            960M     0  960M   0% /dev
    tmpfs           193M  7.7M  185M   4% /run
    /dev/nvme0n1p7  1.9G  1.1G  669M  62% /
    tmpfs           963M     0  963M   0% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           963M     0  963M   0% /sys/fs/cgroup
    /dev/nvme0n1p6  112M  4.0K  112M   1% /boot/efi
    tmpfs           193M     0  193M   0% /run/user/1000
    

    Wir müssen das Filesystem vergrößern. Dazu hat Kamil ein Script geschrieben, was wir uns ein wenig anpassen und damit das Filesystem vergrößern. Dazu findet man hier meinen Beitrag.

    Danach sieht das dann schon besser aus.

    root@rockpro64:/usr/local/sbin# ./resize_rootfs.sh 
    Resizing /dev/nvme0n1 (pcie/nvme -- /dev/nvme0n1p7)...
    + sgdisk -e /dev/nvme0n1
    Warning: The kernel is still using the old partition table.
    The new table will be used at the next reboot or after you
    run partprobe(8) or kpartx(8)
    The operation has completed successfully.
    + sfdisk /dev/nvme0n1 -N7 --force
    + echo ,+,,,
    Checking that no-one is using this disk right now ... FAILED
    
    This disk is currently in use - repartitioning is probably a bad idea.
    Umount all file systems, and swapoff all swap partitions on this disk.
    Use the --no-reread flag to suppress this check.
    
    Disk /dev/nvme0n1: 465.8 GiB, 500107862016 bytes, 976773168 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    Disk identifier: 4252573B-53A6-4918-89A6-7802D8D8031F
    
    Old situation:
    
    Device          Start     End Sectors  Size Type
    /dev/nvme0n1p1     64    8063    8000  3.9M Linux filesystem
    /dev/nvme0n1p2   8064    8191     128   64K Linux filesystem
    /dev/nvme0n1p3   8192   16383    8192    4M Linux filesystem
    /dev/nvme0n1p4  16384   24575    8192    4M Linux filesystem
    /dev/nvme0n1p5  24576   32767    8192    4M Linux filesystem
    /dev/nvme0n1p6  32768  262143  229376  112M Microsoft basic data
    /dev/nvme0n1p7 262144 4186111 3923968  1.9G Linux filesystem
    
    /dev/nvme0n1p7: 
    New situation:
    Disklabel type: gpt
    Disk identifier: 4252573B-53A6-4918-89A6-7802D8D8031F
    
    Device          Start       End   Sectors   Size Type
    /dev/nvme0n1p1     64      8063      8000   3.9M Linux filesystem
    /dev/nvme0n1p2   8064      8191       128    64K Linux filesystem
    /dev/nvme0n1p3   8192     16383      8192     4M Linux filesystem
    /dev/nvme0n1p4  16384     24575      8192     4M Linux filesystem
    /dev/nvme0n1p5  24576     32767      8192     4M Linux filesystem
    /dev/nvme0n1p6  32768    262143    229376   112M Microsoft basic data
    /dev/nvme0n1p7 262144 976773134 976510991 465.7G Linux filesystem
    
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Re-reading the partition table failed.: Device or resource busy
    The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
    Syncing disks.
    + partprobe /dev/nvme0n1
    + resize2fs /dev/nvme0n1p7
    resize2fs 1.44.5 (15-Dec-2018)
    Filesystem at /dev/nvme0n1p7 is mounted on /; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 59
    The filesystem on /dev/nvme0n1p7 is now 122063873 (4k) blocks long.
    
    root@rockpro64:/usr/local/sbin# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            960M     0  960M   0% /dev
    tmpfs           193M  7.7M  185M   4% /run
    /dev/nvme0n1p7  459G  1.1G  439G   1% /
    tmpfs           963M     0  963M   0% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           963M     0  963M   0% /sys/fs/cgroup
    /dev/nvme0n1p6  112M  4.0K  112M   1% /boot/efi
    tmpfs           193M     0  193M   0% /run/user/1000
    

    Erledigt 🙂

    Nun haben wir ein funktionales Debian Buster 10 auf einer PCIe NVMe SSD und können uns nun anderen Aufgaben zuwenden.

    Nicht vergessen, als erstes ein

    root@rockpro64:/home# apt update
    Get:1 http://security.debian.org buster/updates InRelease [65.4 kB]
    Get:4 http://deb.ayufan.eu/orgs/ayufan-rock64/releases  InRelease [1343 B]
    Get:5 http://security.debian.org buster/updates/non-free Sources [688 B]
    Get:2 http://cdn-fastly.deb.debian.org/debian buster InRelease [122 kB]
    Get:6 http://security.debian.org buster/updates/main Sources [108 kB]             
    Get:7 http://security.debian.org buster/updates/main arm64 Packages [186 kB]
    Get:8 http://security.debian.org buster/updates/main Translation-en [100 kB]             
    Get:9 http://security.debian.org buster/updates/non-free Translation-en [344 B]           
    Get:3 http://cdn-fastly.deb.debian.org/debian buster-updates InRelease [49.3 kB]        
    Get:10 http://deb.ayufan.eu/orgs/ayufan-rock64/releases  Packages [199 kB]
    Get:11 http://cdn-fastly.deb.debian.org/debian buster/non-free Sources [86.3 kB]
    Get:12 http://cdn-fastly.deb.debian.org/debian buster/main Sources [7832 kB]
    Get:13 http://cdn-fastly.deb.debian.org/debian buster/main arm64 Packages [7737 kB]
    Get:14 http://cdn-fastly.deb.debian.org/debian buster/main Translation-en [5970 kB]
    Get:15 http://cdn-fastly.deb.debian.org/debian buster/main arm64 Contents (deb) [35.3 MB]
    Get:16 http://cdn-fastly.deb.debian.org/debian buster/contrib arm64 Contents (deb) [82.7 kB]
    Get:17 http://cdn-fastly.deb.debian.org/debian buster/non-free arm64 Packages [53.9 kB]
    Get:18 http://cdn-fastly.deb.debian.org/debian buster/non-free Translation-en [88.7 kB]
    Get:19 http://cdn-fastly.deb.debian.org/debian buster/non-free arm64 Contents (deb) [757 kB]
    Get:20 http://cdn-fastly.deb.debian.org/debian buster-updates/main Sources.diff/Index [2212 B]
    Get:21 http://cdn-fastly.deb.debian.org/debian buster-updates/main arm64 Packages.diff/Index [2212 B]
    Get:22 http://cdn-fastly.deb.debian.org/debian buster-updates/main Translation-en.diff/Index [2212 B]
    Get:23 http://cdn-fastly.deb.debian.org/debian buster-updates/main Sources 2020-02-23-2017.41.pdiff [924 B]
    Get:23 http://cdn-fastly.deb.debian.org/debian buster-updates/main Sources 2020-02-23-2017.41.pdiff [924 B]
    Get:24 http://cdn-fastly.deb.debian.org/debian buster-updates/main arm64 Packages 2020-02-23-2017.41.pdiff [2161 B]
    Get:24 http://cdn-fastly.deb.debian.org/debian buster-updates/main arm64 Packages 2020-02-23-2017.41.pdiff [2161 B]
    Get:25 http://cdn-fastly.deb.debian.org/debian buster-updates/main Translation-en 2020-02-23-2017.41.pdiff [1700 B]
    Get:25 http://cdn-fastly.deb.debian.org/debian buster-updates/main Translation-en 2020-02-23-2017.41.pdiff [1700 B]
    Get:26 http://cdn-fastly.deb.debian.org/debian buster-updates/main arm64 Contents (deb) [42.3 kB]
    Fetched 58.8 MB in 18s (3263 kB/s)                                                                                                                                                                                
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    44 packages can be upgraded. Run 'apt list --upgradable' to see them.
    N: Repository 'http://cdn-fastly.deb.debian.org/debian buster InRelease' changed its 'Version' value from '10.1' to '10.3'
    

    Danach

    root@rockpro64:/home# apt upgrade
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Calculating upgrade... Done
    The following packages will be upgraded:
      base-files cron curl distro-info-data e2fsprogs git git-man libbluetooth3 libcom-err2 libcurl3-gnutls libcurl4 libext2fs2 libglib2.0-0 libgnutls30 libicu63 libidn2-0 libncurses6 libncursesw6 libnm0
      libpam-systemd libpython3.7-minimal libpython3.7-stdlib libsasl2-2 libsasl2-modules-db libss2 libsystemd0 libtinfo6 libudev1 linux-libc-dev ncurses-base ncurses-bin network-manager openssh-client
      openssh-server openssh-sftp-server python-apt-common python3-apt python3.7 python3.7-minimal ssh sudo systemd systemd-sysv udev
    44 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Need to get 36.9 MB of archives.
    After this operation, 115 kB of additional disk space will be used.
    Do you want to continue? [Y/n] 
    

    Debian Buster 10.3 haben wir danach!

  • Restic feiert 10. Geburtstag

    Restic
    1
    +0
    0 Stimmen
    1 Beiträge
    136 Aufrufe
    Niemand hat geantwortet
  • Flatpak - Signal

    Linux
    1
    0 Stimmen
    1 Beiträge
    105 Aufrufe
    Niemand hat geantwortet
  • Manjaro KDE Plasma 21.2.2

    Linux
    5
    +1
    0 Stimmen
    5 Beiträge
    192 Aufrufe
    FrankMF
    Ok, geht nicht. Manjaro und ich werden leider keine Freunde. Da sind zu viele Dinge, die nicht besonders gut umgesetzt sind. Heute mal den Test gemacht und mein geliebtes Linux Mint Cinnamon installiert. Passwort für die Verschlüsselung nimmt anstandslos deutsche Sonderzeichen an WiFi geht auch nicht mit WPA3, man kann aber einfach auf WPA2 umstellen und das funktioniert. Damit endet dieser Versuch jetzt..
  • Restic v0.12.0 released

    Restic
    1
    0 Stimmen
    1 Beiträge
    230 Aufrufe
    Niemand hat geantwortet
  • VSCodium

    Linux
    1
    +0
    0 Stimmen
    1 Beiträge
    244 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - PCIe SATA-Karte mit JMicron JMS585- Chip

    Angeheftet Hardware
    13
    +0
    1 Stimmen
    13 Beiträge
    2k Aufrufe
    FrankMF
    Ich möchte das dann hier zum Abschluss bringen, das NAS ist heute zusammengebaut worden. Hier zwei Fotos. [image: 1587814588721-img_20200425_102156_ergebnis.jpg] [image: 1587814595011-img_20200425_102206_ergebnis.jpg]
  • ROCKPro64 - Wo stehen wir?

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    620 Aufrufe
    Niemand hat geantwortet
  • stretch-minimal-rockpro64

    Verschoben Linux
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    FrankMF
    Mal ein Test was der Speicher so kann. rock64@rockpro64:~/tinymembench$ ./tinymembench tinymembench v0.4.9 (simple benchmark for memory throughput and latency) ========================================================================== == Memory bandwidth tests == == == == Note 1: 1MB = 1000000 bytes == == Note 2: Results for 'copy' tests show how many bytes can be == == copied per second (adding together read and writen == == bytes would have provided twice higher numbers) == == Note 3: 2-pass copy means that we are using a small temporary buffer == == to first fetch data into it, and only then write it to the == == destination (source -> L1 cache, L1 cache -> destination) == == Note 4: If sample standard deviation exceeds 0.1%, it is shown in == == brackets == ========================================================================== C copy backwards : 2812.7 MB/s C copy backwards (32 byte blocks) : 2811.9 MB/s C copy backwards (64 byte blocks) : 2632.8 MB/s C copy : 2667.2 MB/s C copy prefetched (32 bytes step) : 2633.5 MB/s C copy prefetched (64 bytes step) : 2640.8 MB/s C 2-pass copy : 2509.8 MB/s C 2-pass copy prefetched (32 bytes step) : 2431.6 MB/s C 2-pass copy prefetched (64 bytes step) : 2424.1 MB/s C fill : 4887.7 MB/s (0.5%) C fill (shuffle within 16 byte blocks) : 4883.0 MB/s C fill (shuffle within 32 byte blocks) : 4889.3 MB/s C fill (shuffle within 64 byte blocks) : 4889.2 MB/s --- standard memcpy : 2807.3 MB/s standard memset : 4890.4 MB/s (0.3%) --- NEON LDP/STP copy : 2803.7 MB/s NEON LDP/STP copy pldl2strm (32 bytes step) : 2802.1 MB/s NEON LDP/STP copy pldl2strm (64 bytes step) : 2800.7 MB/s NEON LDP/STP copy pldl1keep (32 bytes step) : 2745.5 MB/s NEON LDP/STP copy pldl1keep (64 bytes step) : 2745.8 MB/s NEON LD1/ST1 copy : 2801.9 MB/s NEON STP fill : 4888.9 MB/s (0.3%) NEON STNP fill : 4850.1 MB/s ARM LDP/STP copy : 2803.8 MB/s ARM STP fill : 4893.0 MB/s (0.5%) ARM STNP fill : 4851.7 MB/s ========================================================================== == Framebuffer read tests. == == == == Many ARM devices use a part of the system memory as the framebuffer, == == typically mapped as uncached but with write-combining enabled. == == Writes to such framebuffers are quite fast, but reads are much == == slower and very sensitive to the alignment and the selection of == == CPU instructions which are used for accessing memory. == == == == Many x86 systems allocate the framebuffer in the GPU memory, == == accessible for the CPU via a relatively slow PCI-E bus. Moreover, == == PCI-E is asymmetric and handles reads a lot worse than writes. == == == == If uncached framebuffer reads are reasonably fast (at least 100 MB/s == == or preferably >300 MB/s), then using the shadow framebuffer layer == == is not necessary in Xorg DDX drivers, resulting in a nice overall == == performance improvement. For example, the xf86-video-fbturbo DDX == == uses this trick. == ========================================================================== NEON LDP/STP copy (from framebuffer) : 602.5 MB/s NEON LDP/STP 2-pass copy (from framebuffer) : 551.6 MB/s NEON LD1/ST1 copy (from framebuffer) : 667.1 MB/s NEON LD1/ST1 2-pass copy (from framebuffer) : 605.6 MB/s ARM LDP/STP copy (from framebuffer) : 445.3 MB/s ARM LDP/STP 2-pass copy (from framebuffer) : 428.8 MB/s ========================================================================== == Memory latency test == == == == Average time is measured for random memory accesses in the buffers == == of different sizes. The larger is the buffer, the more significant == == are relative contributions of TLB, L1/L2 cache misses and SDRAM == == accesses. For extremely large buffer sizes we are expecting to see == == page table walk with several requests to SDRAM for almost every == == memory access (though 64MiB is not nearly large enough to experience == == this effect to its fullest). == == == == Note 1: All the numbers are representing extra time, which needs to == == be added to L1 cache latency. The cycle timings for L1 cache == == latency can be usually found in the processor documentation. == == Note 2: Dual random read means that we are simultaneously performing == == two independent memory accesses at a time. In the case if == == the memory subsystem can't handle multiple outstanding == == requests, dual random read has the same timings as two == == single reads performed one after another. == ========================================================================== block size : single random read / dual random read 1024 : 0.0 ns / 0.0 ns 2048 : 0.0 ns / 0.0 ns 4096 : 0.0 ns / 0.0 ns 8192 : 0.0 ns / 0.0 ns 16384 : 0.0 ns / 0.0 ns 32768 : 0.0 ns / 0.0 ns 65536 : 4.5 ns / 7.2 ns 131072 : 6.8 ns / 9.7 ns 262144 : 9.8 ns / 12.8 ns 524288 : 11.4 ns / 14.7 ns 1048576 : 16.0 ns / 22.6 ns 2097152 : 114.0 ns / 175.3 ns 4194304 : 161.7 ns / 219.9 ns 8388608 : 190.7 ns / 241.5 ns 16777216 : 205.3 ns / 250.5 ns 33554432 : 212.9 ns / 255.5 ns 67108864 : 222.3 ns / 271.1 ns