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!

  • Crowdsec - Ein fail2ban Ersatz?

    Linux
    2
    0 Stimmen
    2 Beiträge
    502 Aufrufe
    FrankMF

    Ich kann jetzt hier von meiner ersten Erfahrung berichten und wie CrowdSec mich gebannt hat 🙂

    Was war passiert? Ich war gestern sehr intensiv mit der Konfiguration von Nextcloud <-> Collabora Online beschäftigt. Nachdem ich irgendwie nicht weiterkam habe ich mich der Erstellung eines Dokumentes gewidmet. Nach einiger Zeit war die Nextcloud nicht mehr erreichbar.

    Ok, hatte ich bei der Konfiguration auch schon mal, den Server einmal neugestartet und fertig. Doch jetzt kam es, Server neugestartet - hilft nicht. Gut, schauen wir mal nach, Der SSH Login ging auch nicht 😞

    Jetzt war guter Rat gefragt. Zu diesem Zeitpunkt ging ich noch davon aus, das auf diesem Server kein CrowdSec installiert war, sondern fail2ban. Und fail2ban hatte eine sehr kurze Bantime vom 10M.

    Also blieb wohl nur noch das Rescue System von Hetzner.

    488866bc-3dcf-4abc-9e98-6107d65aa4c7-grafik.png

    Da hatte ich ja so gut wie gar keine Erfahrung mit. Also mal kurz den Nico angetriggert und es kam folgender Link.

    Link Preview Image Hetzner Rescue-System - Hetzner Docs

    favicon

    (docs.hetzner.com)

    Das Laufwerk war schnell bestimmt und schnell nach /tmp gemountet. Danach musste man sich noch mit chroot in diese Umgebung anmelden.

    chroot-prepare /mnt chroot /mnt

    Nachdem das klappte, habe ich eben fail2ban disabled.

    sysmctl disable fail2ban

    Danach das Rescue beendet. Der Server startete wieder und ich kam wieder per SSH drauf. Puuh.
    Bei meiner ersten Kontrolle fiel mir was auf

    root@:~# pstree systemd─┬─2*[agetty] ├─atd ├─cron ├─crowdsec─┬─journalctl │ └─8*[{crowdsec}] ├─crowdsec-firewa───9*[{crowdsec-firewa}]

    Wie? Da läuft CrowdSec? Da ich dabei bin die Server auf CrowdSec umzustellen, war das wohl hier schon gemacht, aber leider nicht vernünftig. fail2ban hätte mindestens disabled werden müssen und in meiner Dokumentation war das auch nicht enthalten. 6 setzen!

    CrowdSec besteht ja aus zwei Diensten, CrowdSec und dem Firewall-Bouncer. Der CrowdSec Dienst lief aber nicht, der war irgendwie failed. Ok, starten wir ihn und schauen was passiert. Nachdem er gestarte war mal die Banliste angeschaut.

    cscli decisions list

    ergab diesen Eintrag.

    2551501 │ crowdsec │ Ip:5.146.xxx.xxx │ crowdsecurity/http-crawl-non_statics │ ban │ │ │ 53 │ 1h5m55.391864693s │ 1671

    Meine IP war gebannt. Dann wissen wir ja , woher die Probleme kamen.

    cscli decisions delete --id 2551501

    Nach Eingabe war der Ban entfernt. Na gut, aber da ich aktuell immer noch an der richtigen Konfiguration von NC <-> CODE bastel, könnte das ja wieder passieren. Was machen? Kurz gegoogelt. Es gibt eine Whitelist. Aha!

    /etc/crowdsec/parsers/s02-enrich/whitelists.yaml

    name: crowdsecurity/whitelists description: "Whitelist events from private ipv4 addresses" whitelist: reason: "private ipv4/ipv6 ip/ranges" ip: - "127.0.0.1" - "::1" - "5.146.XXX.XXX" cidr: - "192.168.0.0/16" - "10.0.0.0/8" - "172.16.0.0/12" # expression: # - "'foo.com' in evt.Meta.source_ip.reverse"

    Danach den Dienst neustarten. Jetzt hoffen wir mal, das es hilft.

    Zum Schluss noch was, was mir aufgefallen war und was mich auch sehr verwirrt hatte. CrowdSec hatte wegen einem crowdsecurity/http-crawl-non_statics gebannt. Dadurch konnte ich meine
    subdomain.<DOMAIN> nicht erreichen. Ok, logisch, wenn der Ban von da ausgeht. Ich konnte aber gleichzeitig eine andere subdomain mit derselben <DOMAIN> auch nicht erreichen. Komplett verwirrte es mich dann, als ich eine andere <DOMAIN> auf dem selben Server erreichen konnte. Und zum Schluss ging auch der SSH nicht.

    Also, wieder viel gelernt.. 🤓

  • Kopia - Aufbau und Funktionsweise

    Kopia
    1
    0 Stimmen
    1 Beiträge
    749 Aufrufe
    Niemand hat geantwortet
  • SATA Adapter - SSD kopieren

    Hardware
    1
    0 Stimmen
    1 Beiträge
    180 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    246 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - SD-Karte

    Hardware
    1
    0 Stimmen
    1 Beiträge
    521 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    639 Aufrufe
    Niemand hat geantwortet
  • bionic-minimal-rockpro64

    Verschoben Linux
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    FrankMF
    Neue Version 0.7.3

    Soll gefixt sein.

    USB2/3 PCIe LED's LED's

    Weiße LED starten nach dem Booten dauerhaft OK

    PCIe

    Treiber soll drin sein, aber die 3,3V werden nicht zur Karte durchgeschaltet. Somit funktioniert PCIe nicht.
    Nicht OK

    USB2

    USB-Funkadapter wird erkannt

    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 1113:3163 Medion AG Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    Funktastur getestet OK

    USB3

    Angeschlossene SSD wird erkannt OK

    Kurzer Speed-Test. Bitte dran denken, wir haben hier noch kein optimiertes Release, sondern einen ersten Gehversuch. Da sind noch ganz viele Dinge anzupassen, was sicherlich noch Wochen, wenn nicht Monate dauert! Also, die Messergebnisse mit der nötigen Vorsicht genießen. Und dran denken, wenn @tkaiser das Ding richtig untersucht, dann haben wir auch ordentliche Meßergebnisse! 😉

    Haupt-PC

    2,5Zoll am USB3-Port

    sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync [sudo] Passwort für frank: 4096+0 Datensätze ein 4096+0 Datensätze aus 4294967296 bytes (4,3 GB, 4,0 GiB) copied, 38,171 s, **113 MB/s** ROCKPro64

    Ich benutze eine SAN Disk 240GB SSD an einem Inateck USB 3.0 2,5 Zoll Adapter.

    Info zum USB-Adapter

    lsusb Bus 004 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge

    2,5 Zoll SSD am USB2-Port

    sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 160.058 s, **26.8 MB/s**

    2,5 Zoll SSD am USB3 Port

    sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 36.2588 s, **118 MB/s**

    Der @tkaiser erreicht deutlich höhere Geschwindigkeiten. Bis zu 400 MB/s. Hier nachzulesen.

    Wenn ich so einen iozone Test mache wie der Thomas, dann erreiche ich ähnliche Werte

    sudo iozone -a -g 1000m -s 1000m -i 0 -i 1 -r 16384K Iozone: Performance Test of File I/O Version $Revision: 3.429 $ Compiled for 64 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner, Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone, Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root, Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer, Vangel Bojaxhi, Ben England, Vikentsi Lapa. Run began: Sat May 26 05:16:40 2018 Auto Mode Using maximum file size of 1024000 kilobytes. File size set to 1024000 kB Record Size 16384 kB Command line used: iozone -a -g 1000m -s 1000m -i 0 -i 1 -r 16384K Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 16384 383912 348782 1515506 1659394

    Da muss ich den Thomas nochmal was zu fragen. ?? 🤔

    UART2

    Und zum Schluss ist mir noch aufgefallen, das die UART2 Schnittstelle jetzt funktioniert 🙂 Ok, den Adapter, der morgen kommt, habe ich dann umsonst bestellt. LOL

    OK

  • Wiki zum ROCKPro64 veröffentlicht!

    Verschoben ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet