Skip to content

Benchmarks

Angeheftet Verschoben Archiv
  • Hier möchte ich alle Benchmarks usw. sammeln. Bitte unbedingt das vorher lesen! Ich werde die Version des Images dabei schreiben. Einsetzen werde ich ausschließlich folgendes Image.

    https://frank-mankel.org/topic/69/bionic-minimal-rockpro64-0-7-x-228-arm64-img-xz

    Macht bis jetzt für mich den stabilsten Eindruck.

  • USB2/3 (Version 0.7.3)

    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.

    Ich habe mich mit @tkaiser noch mal unterhalten. Scheint sehr deutlich ein Problem des Adapters zu sein. Da müsste eigentlich mehr gehen. Mal sehen....

  • 7-zip (Version 0.7.3)

    Kleiner Stresstest für die CPU

    Installation

    sudo apt-get install p7zip p7zip-full p7zip-rar 
    

    Test

    7zr b
    
    7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
    p7zip Version 16.02 (locale=de_DE.UTF-8,Utf16=on,HugeFiles=on,64 bits,6 CPUs LE)
    
    LE
    CPU Freq:   904  1276  1530  1721  1794  1793  1793  1794  1794
    
    RAM size:    3876 MB,  # CPU hardware threads:   6
    RAM usage:   1323 MB,  # Benchmark threads:      6
    
                           Compressing  |                  Decompressing
    Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
             KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS
    
    22:       4400   502    852   4281  |      92530   522   1513   7891
    23:       4227   513    840   4307  |      90668   523   1500   7845
    24:       4180   534    842   4495  |      88868   525   1486   7800
    25:       4207   564    852   4804  |      86102   526   1457   7663
    ----------------------------------  | ------------------------------
    Avr:             528    847   4472  |              524   1489   7800
    Tot:             526   1168   6136
    
  • LAN (Version 0.7.3)

    Geschwindigkeit der Schnittstelle

    iperf3 -c 192.168.3.213
    Connecting to host 192.168.3.213, port 5201
    [  4] local 192.168.3.12 port 42350 connected to 192.168.3.213 port 5201
    [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
    [  4]   0.00-1.00   sec   116 MBytes   971 Mbits/sec    0    921 KBytes       
    [  4]   1.00-2.00   sec   112 MBytes   941 Mbits/sec   11    460 KBytes       
    [  4]   2.00-3.00   sec   112 MBytes   941 Mbits/sec   11    339 KBytes       
    [  4]   3.00-4.00   sec   112 MBytes   941 Mbits/sec   10    355 KBytes       
    [  4]   4.00-5.00   sec   112 MBytes   942 Mbits/sec   11    339 KBytes       
    [  4]   5.00-6.00   sec   112 MBytes   941 Mbits/sec    0    382 KBytes       
    [  4]   6.00-7.00   sec   112 MBytes   941 Mbits/sec   11    324 KBytes       
    [  4]   7.00-8.00   sec   112 MBytes   942 Mbits/sec   11    243 KBytes       
    [  4]   8.00-9.00   sec   112 MBytes   941 Mbits/sec   10    315 KBytes       
    [  4]   9.00-10.00  sec   112 MBytes   942 Mbits/sec   11    308 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  1.10 GBytes   944 Mbits/sec   86             sender
    [  4]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec                  receiver
    
    iperf Done.
    rock64@rockpro64:~$ iperf3 -s
    -----------------------------------------------------------
    Server listening on 5201
    -----------------------------------------------------------
    Accepted connection from 192.168.3.213, port 35834
    [  5] local 192.168.3.12 port 5201 connected to 192.168.3.213 port 35836
    [ ID] Interval           Transfer     Bandwidth
    [  5]   0.00-1.00   sec   108 MBytes   908 Mbits/sec                  
    [  5]   1.00-2.00   sec   112 MBytes   941 Mbits/sec                  
    [  5]   2.00-3.00   sec   112 MBytes   941 Mbits/sec                  
    [  5]   3.00-4.00   sec   112 MBytes   941 Mbits/sec                  
    [  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec                  
    [  5]   5.00-6.00   sec   112 MBytes   941 Mbits/sec                  
    [  5]   6.00-7.00   sec   112 MBytes   941 Mbits/sec                  
    [  5]   7.00-8.00   sec   112 MBytes   941 Mbits/sec                  
    [  5]   8.00-9.00   sec   112 MBytes   941 Mbits/sec                  
    [  5]   9.00-10.00  sec   112 MBytes   941 Mbits/sec                  
    [  5]  10.00-10.02  sec  1.85 MBytes   930 Mbits/sec                  
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth
    [  5]   0.00-10.02  sec  0.00 Bytes  0.00 bits/sec                  sender
    [  5]   0.00-10.02  sec  1.09 GBytes   938 Mbits/sec                  receiver
    -----------------------------------------------------------
    Server listening on 5201
    -----------------------------------------------------------
    ^Ciperf3: interrupt - the server has terminated
    
  • Speichertest (Version 0.7.3)

    Mit dem Tool tinymembench die Geschwindigkeit des Speichers testen.

    ./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                                     :   2868.1 MB/s (0.3%)
     C copy backwards (32 byte blocks)                    :   2860.8 MB/s
     C copy backwards (64 byte blocks)                    :   2851.0 MB/s
     C copy                                               :   2724.3 MB/s (0.1%)
     C copy prefetched (32 bytes step)                    :   2775.6 MB/s
     C copy prefetched (64 bytes step)                    :   2778.9 MB/s
     C 2-pass copy                                        :   2546.9 MB/s
     C 2-pass copy prefetched (32 bytes step)             :   2577.6 MB/s
     C 2-pass copy prefetched (64 bytes step)             :   2577.3 MB/s
     C fill                                               :   4897.9 MB/s (0.4%)
     C fill (shuffle within 16 byte blocks)               :   4895.2 MB/s
     C fill (shuffle within 32 byte blocks)               :   4896.9 MB/s
     C fill (shuffle within 64 byte blocks)               :   4898.0 MB/s
     ---
     standard memcpy                                      :   2841.6 MB/s
     standard memset                                      :   4897.1 MB/s (0.4%)
     ---
     NEON LDP/STP copy                                    :   2842.3 MB/s
     NEON LDP/STP copy pldl2strm (32 bytes step)          :   2863.3 MB/s (0.3%)
     NEON LDP/STP copy pldl2strm (64 bytes step)          :   2863.2 MB/s
     NEON LDP/STP copy pldl1keep (32 bytes step)          :   2784.3 MB/s
     NEON LDP/STP copy pldl1keep (64 bytes step)          :   2777.8 MB/s
     NEON LD1/ST1 copy                                    :   2839.5 MB/s
     NEON STP fill                                        :   4896.0 MB/s (0.4%)
     NEON STNP fill                                       :   4862.2 MB/s
     ARM LDP/STP copy                                     :   2841.1 MB/s
     ARM STP fill                                         :   4896.6 MB/s (0.4%)
     ARM STNP fill                                        :   4861.4 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)                 :    606.2 MB/s
     NEON LDP/STP 2-pass copy (from framebuffer)          :    560.0 MB/s
     NEON LD1/ST1 copy (from framebuffer)                 :    672.9 MB/s
     NEON LD1/ST1 2-pass copy (from framebuffer)          :    614.2 MB/s
     ARM LDP/STP copy (from framebuffer)                  :    451.0 MB/s
     ARM LDP/STP 2-pass copy (from framebuffer)           :    433.7 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.3 ns          /    22.8 ns 
       2097152 :  110.8 ns          /   169.8 ns 
       4194304 :  157.2 ns          /   213.9 ns 
       8388608 :  185.0 ns          /   234.5 ns 
      16777216 :  198.8 ns          /   244.2 ns 
      33554432 :  206.9 ns          /   249.3 ns 
      67108864 :  218.7 ns          /   261.9 ns 
    

    Vergleichsergebnisse findet man hier.

    Speichertest (Version 0.7.5)

    Nachdem die Version 0.7.4 unstabil lief, hier die Ergebnisse von 0.7.5

    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                                     :   2668.2 MB/s
     C copy backwards (32 byte blocks)                    :   2662.3 MB/s
     C copy backwards (64 byte blocks)                    :   2659.3 MB/s
     C copy                                               :   2673.1 MB/s
     C copy prefetched (32 bytes step)                    :   2648.6 MB/s
     C copy prefetched (64 bytes step)                    :   2653.3 MB/s
     C 2-pass copy                                        :   2404.3 MB/s
     C 2-pass copy prefetched (32 bytes step)             :   2441.8 MB/s
     C 2-pass copy prefetched (64 bytes step)             :   2442.8 MB/s (1.1%)
     C fill                                               :   4808.3 MB/s (0.4%)
     C fill (shuffle within 16 byte blocks)               :   4793.4 MB/s
     C fill (shuffle within 32 byte blocks)               :   4801.1 MB/s (0.4%)
     C fill (shuffle within 64 byte blocks)               :   4810.3 MB/s (0.2%)
     ---
     standard memcpy                                      :   2677.8 MB/s
     standard memset                                      :   4809.4 MB/s (0.4%)
     ---
     NEON LDP/STP copy                                    :   2673.6 MB/s
     NEON LDP/STP copy pldl2strm (32 bytes step)          :   2691.4 MB/s (0.9%)
     NEON LDP/STP copy pldl2strm (64 bytes step)          :   2690.8 MB/s
     NEON LDP/STP copy pldl1keep (32 bytes step)          :   2743.8 MB/s (1.1%)
     NEON LDP/STP copy pldl1keep (64 bytes step)          :   2741.6 MB/s
     NEON LD1/ST1 copy                                    :   2793.6 MB/s
     NEON STP fill                                        :   4897.8 MB/s (0.6%)
     NEON STNP fill                                       :   4864.0 MB/s (0.2%)
     ARM LDP/STP copy                                     :   2802.0 MB/s
     ARM STP fill                                         :   4898.0 MB/s (0.4%)
     ARM STNP fill                                        :   4863.8 MB/s (0.2%)
    
    ==========================================================================
    == 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)                 :    539.1 MB/s (1.8%)
     NEON LDP/STP 2-pass copy (from framebuffer)          :    522.1 MB/s
     NEON LD1/ST1 copy (from framebuffer)                 :    583.0 MB/s
     NEON LD1/ST1 2-pass copy (from framebuffer)          :    564.2 MB/s
     ARM LDP/STP copy (from framebuffer)                  :    373.2 MB/s (0.1%)
     ARM LDP/STP 2-pass copy (from framebuffer)           :    418.2 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.1 ns          /     6.5 ns 
        131072 :    6.2 ns          /     8.7 ns 
        262144 :    8.9 ns          /    11.6 ns 
        524288 :   10.3 ns          /    13.3 ns 
       1048576 :   15.0 ns          /    21.3 ns 
       2097152 :  112.3 ns          /   173.0 ns 
       4194304 :  159.5 ns          /   217.2 ns 
       8388608 :  187.3 ns          /   237.9 ns 
      16777216 :  201.0 ns          /   246.2 ns 
      33554432 :  208.5 ns          /   250.8 ns 
      67108864 :  219.7 ns          /   264.1 ns
    
  • Cpu Sysbench (Version 0.7.3)

    sysbench --test=cpu --cpu-max-prime=20000 run
    WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
    sysbench 1.0.11 (using system LuaJIT 2.1.0-beta3)
    
    Running the test with following options:
    Number of threads: 1
    Initializing random number generator from current time
    
    
    Prime numbers limit: 20000
    
    Initializing worker threads...
    
    Threads started!
    
    CPU speed:
        events per second:   697.34
    
    General statistics:
        total time:                          10.0006s
        total number of events:              6983
    
    Latency (ms):
             min:                                  1.42
             avg:                                  1.43
             max:                                  6.58
             95th percentile:                      1.42
             sum:                               9993.83
    
    Threads fairness:
        events (avg/stddev):           6983.0000/0.00
        execution time (avg/stddev):   9.9938/0.00
    
  • Memtester (Version 0.7.5)

    Installation

    rock64@rockpro64:~$ sudo apt-get install memtester
    

    Test

    Im Beispiel testen wir 3072 MB und zwar einmal. Bei 1024 5 würde man 1024 MB fünfmal testen.

    rock64@rockpro64:~$ sudo memtester 3072 1
    memtester version 4.3.0 (64-bit)
    Copyright (C) 2001-2012 Charles Cazabon.
    Licensed under the GNU General Public License version 2 (only).
    
    pagesize is 4096
    pagesizemask is 0xfffffffffffff000
    want 3072MB (3221225472 bytes)
    got  3072MB (3221225472 bytes), trying mlock ...locked.
    Loop 1/1:
      Stuck Address       : ok         
      Random Value        : ok
      Compare XOR         : ok
      Compare SUB         : ok
      Compare MUL         : ok
      Compare DIV         : ok
      Compare OR          : ok
      Compare AND         : ok
      Sequential Increment: ok
      Solid Bits          : ok         
      Block Sequential    : ok         
      Checkerboard        : ok         
      Bit Spread          : ok         
      Bit Flip            : ok         
      Walking Ones        : ok         
      Walking Zeroes      : ok         
      8-bit Writes        : ok
      16-bit Writes       : ok
    
    Done.
    
  • cryptsetup benchmark (v.0.6.44)

    Dient dem Test des verbauten Speichers.

    Installation

    sudo apt-get install cryptsetup
    

    Test

    rock64@rockpro64:/usr/local/sbin$ cryptsetup benchmark
    # Tests are approximate using memory only (no storage IO).
    PBKDF2-sha1       793173 iterations per second for 256-bit key
    PBKDF2-sha256    1483134 iterations per second for 256-bit key
    PBKDF2-sha512     499321 iterations per second for 256-bit key
    PBKDF2-ripemd160  381023 iterations per second for 256-bit key
    PBKDF2-whirlpool  172463 iterations per second for 256-bit key
    argon2i       4 iterations, 387040 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
    argon2id      4 iterations, 374949 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
    #     Algorithm | Key |  Encryption |  Decryption
            aes-cbc   128b   621.7 MiB/s   851.2 MiB/s
        serpent-cbc   128b           N/A           N/A
        twofish-cbc   128b    80.7 MiB/s    82.7 MiB/s
            aes-cbc   256b   536.2 MiB/s   759.3 MiB/s
        serpent-cbc   256b           N/A           N/A
        twofish-cbc   256b    81.0 MiB/s    82.7 MiB/s
            aes-xts   256b   686.9 MiB/s   691.4 MiB/s
        serpent-xts   256b           N/A           N/A
        twofish-xts   256b           N/A           N/A
            aes-xts   512b   637.8 MiB/s   638.4 MiB/s
        serpent-xts   512b           N/A           N/A
        twofish-xts   512b           N/A           N/A
    

    Zum Vergleich die Ergebnisse meines Haupt-PC's

    frank@frank-MS-7A34 ~ $ cryptsetup benchmark
    # Die Tests sind nur annähernd genau, da sie nicht auf die Festplatte zugreifen.
    PBKDF2-sha1      1106092 iterations per second
    PBKDF2-sha256     740519 iterations per second
    PBKDF2-sha512     555389 iterations per second
    PBKDF2-ripemd160  668734 iterations per second
    PBKDF2-whirlpool  262144 iterations per second
    #  Algorithm | Key |  Encryption |  Decryption
         aes-cbc   128b  1022,9 MiB/s  3369,1 MiB/s
     serpent-cbc   128b    94,4 MiB/s   345,8 MiB/s
     twofish-cbc   128b   189,5 MiB/s   342,5 MiB/s
         aes-cbc   256b   779,6 MiB/s  2751,3 MiB/s
     serpent-cbc   256b    96,9 MiB/s   343,8 MiB/s
     twofish-cbc   256b   195,0 MiB/s   335,0 MiB/s
         aes-xts   256b  2653,5 MiB/s  2619,4 MiB/s
     serpent-xts   256b   339,4 MiB/s   339,3 MiB/s
     twofish-xts   256b   340,5 MiB/s   338,3 MiB/s
         aes-xts   512b  2294,2 MiB/s  2329,1 MiB/s
     serpent-xts   512b   327,4 MiB/s   337,8 MiB/s
     twofish-xts   512b   351,5 MiB/s   343,3 MiB/s
    
  • Gestern mal was praxistaugliches aufgebaut. Auf dem ROCKPro64 einen NFS-Server installiert. Die Freigabe lag auf der NVMe SSD. Das ganze dann auf meinem Haupt-PC gemountet und mal einen Star Wars Film kopiert. 8,5 GB

    Konstant 97 MB/s

    Das sieht doch schon mal sehr erfreulich aus!

  • iozone Test (0.6.52)

    Hardware

    Hardware ist eine Samsung EVO 960 m.2 mit 250GB

    Eingabe

    sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 
    

    Ausgabe

    Run began: Thu Jun 14 12:04:01 2018
    
    	Include fsync in write timing
    	O_DIRECT feature enabled
    	Auto Mode
    	File size set to 102400 kB
    	Record Size 4 kB
    	Record Size 16 kB
    	Record Size 512 kB
    	Record Size 1024 kB
    	Record Size 16384 kB
    	Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
    	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
              102400       4    40859    79542   101334   101666    31721    60459                                                          
              102400      16   113215   202566   234307   233091   108334   154750                                                          
              102400     512   362864   412548   359279   362810   340235   412626                                                          
              102400    1024   400478   453205   381115   385746   372378   453548                                                          
              102400   16384   583762   598047   595752   596251   590950   604690
    

    Zum direkten Vergleich hier heute mal mit 4.17.0-rc6-1019

    rock64@rockpro64:/mnt$ uname -a
    Linux rockpro64 4.17.0-rc6-1019-ayufan-gfafc3e1c913f #1 SMP PREEMPT Tue Jun 12 19:06:59 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    iozone Test

    rock64@rockpro64:/mnt$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 
    	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 Jun 16 06:34:43 2018
    
    	Include fsync in write timing
    	O_DIRECT feature enabled
    	Auto Mode
    	File size set to 102400 kB
    	Record Size 4 kB
    	Record Size 16 kB
    	Record Size 512 kB
    	Record Size 1024 kB
    	Record Size 16384 kB
    	Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
    	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
              102400       4    48672   104754   115838   116803    47894   103606                                                          
              102400      16   168084   276437   292660   295458   162550   273703                                                          
              102400     512   566572   597648   580005   589209   534508   597007                                                          
              102400    1024   585621   624443   590545   599177   569452   630098                                                          
              102400   16384   504871   754710   765558   780592   777696   753426                                                          
    
    iozone test complete.
    

  • Mainline 5.4.x

    Images
    2
    0 Stimmen
    2 Beiträge
    352 Aufrufe
    FrankMF

    Bootet bei mir weder von USB3-SSD noch von SD-Karte.

    USB3-SSD -> https://pastebin.com/QAS92sme
    SD-Karte -> https://pastebin.com/Bsr3WLJ7

  • ROCKPro64 - Das erste Mal

    Angeheftet Verschoben Hardware
    5
    1 Stimmen
    5 Beiträge
    883 Aufrufe
    FrankMF

    Ich kann heute die Fragen aller Fragen beantworten 🙂

    Damit ist leider die Frage immer noch unbeantwortet ob WLan und PCIe zusammen nutzbar ist!! Es geht!!

    Ich habe von MrFixit ein Testimage der RecalBox, benutzt das selbe Debian wie oben. Die Tage konnte man im IRC verfolgen, wie man dem Grundproblem näher kam und wohl einen Fix gebastelt hat, damit beides zusammen funktioniert. Mr.Fixit hat das in RecalBox eingebaut und ich durfte testen.

    # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP8000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP8000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether ac:83:f3:e6:1f:b2 brd ff:ff:ff:ff:ff:ff inet 192.168.178.27/24 brd 192.168.178.255 scope global wlan0 valid_lft forever preferred_lft forever inet6 2a02:908:1262:4680:ae83:f3ff:fee6:1fb2/64 scope global dynamic valid_lft 7145sec preferred_lft 3545sec inet6 fe80::ae83:f3ff:fee6:1fb2/64 scope link valid_lft forever preferred_lft forever # ls /mnt bin etc media recalbox sd.img test2.img boot home mnt root selinux tmp crypthome lib opt run srv usr dev lost+found proc sbin sys var # fdisk BusyBox v1.27.2 (2019-02-01 22:43:19 EST) multi-call binary. Usage: fdisk [-ul] [-C CYLINDERS] [-H HEADS] [-S SECTORS] [-b SSZ] DISK Change partition table -u Start and End are in sectors (instead of cylinders) -l Show partition table for each DISK, then exit -b 2048 (for certain MO disks) use 2048-byte sectors -C CYLINDERS Set number of cylinders/heads/sectors -H HEADS Typically 255 -S SECTORS Typically 63 # fdisk -l Disk /dev/mmcblk0: 15 GB, 15931539456 bytes, 31116288 sectors 486192 cylinders, 4 heads, 16 sectors/track Units: cylinders of 64 * 512 = 32768 bytes Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type /dev/mmcblk0p1 * 2,10,9 10,50,40 32768 163839 131072 64.0M c Win95 FAT32 (LBA) Partition 1 does not end on cylinder boundary /dev/mmcblk0p2 * 16,81,2 277,102,17 262144 4456447 4194304 2048M 83 Linux Partition 2 does not end on cylinder boundary /dev/mmcblk0p3 277,102,18 1023,254,63 4456448 31115263 26658816 12.7G 83 Linux Partition 3 does not end on cylinder boundary Disk /dev/nvme0n1: 233 GB, 250059350016 bytes, 488397168 sectors 2543735 cylinders, 12 heads, 16 sectors/track Units: cylinders of 192 * 512 = 98304 bytes Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type /dev/nvme0n1p1 1,0,1 907,11,16 2048 488397167 488395120 232G 83 Linux #

    Oben sieht man eine funktionierende WLan-Verbindung, das LAN-Kabel war entfernt. Unten sieht man die PCIe NVMe SSD, gemountet nach /mnt und Inhaltsausgabe.

    Das sollte beweisen, das der Ansatz der Lösung funktioniert. Leider kann ich nicht sagen, das es zum jetzigen Zeitpunkt stabil läuft. Ich habe einfach so Reboots, kann den Fehler aktuell aber nicht fangen. Mal sehen ob ich noch was finde.

    Aber, es ist ein Anfang!

  • ROCKPro64 - RP64.GPIO

    Angeheftet Verschoben Hardware
    6
    0 Stimmen
    6 Beiträge
    6k Aufrufe
    FrankMF

    Hallo zusammen,

    da ich weiß das dieser Artikel recht beliebt ist, wollen wir den heute mal aktualisieren. Vieles aus den vorherigen Beiträgen passt noch. Es gibt aber kleine Anpassungen.

    Hardware ROCKPro64v21. 2GB RAM Software Kamils Release 0.10.9 Linux rockpro64 5.6.0-1132-ayufan-g81043e6e109a #ayufan SMP Tue Apr 7 10:07:35 UTC 2020 aarch64 GNU/Linux Installation apt install python

    Danach laden wir das Projekt

    git clone https://github.com/Leapo/Rock64-R64.GPIO

    PIN Nummern anpassen

    cd Rock64-R64.GPIO/R64 nano _GPIO.py

    Datei ergänzen

    # Define GPIO arrays #ROCK_valid_channels = [27, 32, 33, 34, 35, 36, 37, 38, 64, 65, 67, 68, 69, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 96, 97, 98, 100, 101, 102, 103, 104] #BOARD_to_ROCK = [0, 0, 0, 89, 0, 88, 0, 0, 64, 0, 65, 0, 67, 0, 0, 100, 101, 0, 102, 97, 0, 98, 103, 96, 104, 0, 76, 68, 69, 0, 0, 0, 38, 32, 0, 33, 37, 34, 36, 0, 35, 0, 0, 81, 82, 87, 83, 0, 0, 80, 79, 85, 84, 27, 86, 0, 0, 0, 0, 0, 0, 89, 88] #BCM_to_ROCK = [68, 69, 89, 88, 81, 87, 83, 76, 104, 98, 97, 96, 38, 32, 64, 65, 37, 80, 67, 33, 36, 35, 100, 101, 102, 103, 34, 82] ROCK_valid_channels = [52,53,152,54,50,33,48,39,41,43,155,156,125,122,121,148,147,120,36,149,153,42,45,44,124,126,123,127] BOARD_to_ROCK = [0,0,0,52,0,53,0,152,148,0,147,54,120,50,0,33,36,0,149,48,0,39,153,41,42,0,45,43,44,155,0,156,124,125,0,122,126,121,123,0,127] BCM_to_ROCK = [43,44,52,53,152,155,156,45,42,39,48,41,124,125,148,147,124,54,120,122,123,127,33,36,149,153,121,50]

    Abspeichern.

    Datei test.py anlegen

    nano test.py

    Inhalt

    #!/usr/bin/env python # Frank Mankel, 2018, LGPLv3 License # Rock 64 GPIO Library for Python # Thanks Allison! Thanks smartdave! import R64.GPIO as GPIO from time import sleep print("Output Test R64.GPIO Module...") # Set Variables var_gpio_out = 156 var_gpio_in = 155 # GPIO Setup GPIO.setwarnings(True) GPIO.setmode(GPIO.ROCK) GPIO.setup(var_gpio_out, GPIO.OUT, initial=GPIO.HIGH) # Set up GPIO as an output, with an initial state of HIGH GPIO.setup(var_gpio_in, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set up GPIO as an input, pullup enabled # Test Output print("") print("Testing GPIO Input/Output:") while True: var_gpio_state_in = GPIO.input(var_gpio_in) var_gpio_state = GPIO.input(var_gpio_out) # Return State of GPIO if var_gpio_state == 0 and var_gpio_state_in == 1: GPIO.output(var_gpio_out,GPIO.HIGH) # Set GPIO to HIGH print("Input State: " + str(var_gpio_state_in)) # Print results print("Output State IF : " + str(var_gpio_state)) # Print results else: GPIO.output(var_gpio_out,GPIO.LOW) # Set GPIO to LOW print("Input State: " + str(var_gpio_state_in)) # Print results print("Output State ELSE: " + str(var_gpio_state)) # Print results sleep(0.5) exit() Beispiel

    Bild Text

    Wenn der Taster im Bild betätigt wird, soll die LED blinken.

    Wir benutzen folgende Ein- Augänge des ROCKPro64.

    # Set Variables var_gpio_out = 156 var_gpio_in = 155

    Das heißt:

    an Pin 1 (3,3V) kommt eine Strippe des Tasters an Pin 29 (Input) kommt eine Strippe des Tasters an Pin 31 (Output) kommt der Plus-Pol der LED an Pin 39 (GND) kommt der Minus-Pol der LED

    Somit wird auf den Eingang (Pin 29) bei Betätigung des Tasters 3,3 Volt angelegt. Damit wird dann der Eingang als High (1) erkannt. Die LED wird über den Ausgang (Pin 31) gesteuert.

    Starten kann man das Script mit

    python test.py

  • ROCKPro64 - USB3 Probleme

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    859 Aufrufe
    Niemand hat geantwortet
  • USB 3.0 - SATA Adapter

    Hardware
    2
    0 Stimmen
    2 Beiträge
    758 Aufrufe
    FrankMF

    Heute das Ganze mal mit einer Samsung 860 Pro mit 256GB. Eingesetztes Filesystem ext4

    rock64@rockpro64v2_1:/mnt$ uname -a Linux rockpro64v2_1 4.4.132-1077-rockchip-ayufan-gbaf35a9343cb #1 SMP Mon Jul 30 14:06:57 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux Speedtest rock64@rockpro64v2_1:/mnt$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 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: Tue Jul 31 14:27:17 2018 Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 102400 kB Record Size 4 kB Record Size 16 kB Record Size 512 kB Record Size 1024 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 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 102400 4 17896 23350 30390 31362 21611 14611 102400 16 56756 59180 86296 93819 51778 57327 102400 512 201347 221961 220840 222338 210887 230781 102400 1024 253752 273695 263884 266256 250153 273528 102400 16384 351112 356007 366417 372264 368721 356177 iozone test complete. DD Schreiben rock64@rockpro64v2_1:/mnt$ 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, 12.8358 s, 335 MB/s Lesen rock64@rockpro64v2_1:/mnt$ sudo dd if=sd.img of=/dev/null bs=1M count=4096 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 11.4787 s, 374 MB/s Fazit

    Damit scheint der Adapter ganz gut am USB3.0 zu funktionieren. Die Schreibgeschwindigkeit ist ca. dreimal höher als mit der anderen SSD. 😉

  • ROCKPro64 - Der Bootvorgang

    Verschoben Hardware
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    FrankMF

    Um einen neuen Kernel booten zu können, brauche ich diese 4 Dateien unter /boot

    config-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 System.map-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06

    Und den Ordner /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 mit folgendem Inhalt

    rock64@rockpro64v2_0:/boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06$ ls -la total 104 drwxr-xr-x 26 root root 4096 Sep 30 09:54 . drwxr-xr-x 6 root root 4096 Sep 30 09:55 .. drwxr-xr-x 2 root root 4096 Sep 30 09:54 al drwxr-xr-x 2 root root 4096 Sep 30 09:54 allwinner drwxr-xr-x 2 root root 4096 Sep 30 09:54 altera drwxr-xr-x 2 root root 4096 Sep 30 09:54 amd drwxr-xr-x 2 root root 4096 Sep 30 09:54 amlogic drwxr-xr-x 2 root root 4096 Sep 30 09:54 apm drwxr-xr-x 2 root root 4096 Sep 30 09:54 arm drwxr-xr-x 4 root root 4096 Sep 30 09:54 broadcom drwxr-xr-x 2 root root 4096 Sep 30 09:54 cavium drwxr-xr-x 2 root root 4096 Sep 30 09:54 exynos drwxr-xr-x 2 root root 4096 Sep 30 09:54 freescale drwxr-xr-x 2 root root 4096 Sep 30 09:54 hisilicon drwxr-xr-x 2 root root 4096 Sep 30 09:54 lg drwxr-xr-x 2 root root 4096 Sep 30 09:54 marvell drwxr-xr-x 2 root root 4096 Sep 30 09:54 mediatek drwxr-xr-x 2 root root 4096 Sep 30 09:54 nvidia drwxr-xr-x 2 root root 4096 Sep 30 09:54 qcom drwxr-xr-x 2 root root 4096 Sep 30 09:54 renesas drwxr-xr-x 2 root root 4096 Sep 30 09:54 rockchip drwxr-xr-x 2 root root 4096 Sep 30 09:54 socionext drwxr-xr-x 2 root root 4096 Sep 30 09:54 sprd drwxr-xr-x 2 root root 4096 Sep 30 09:54 synaptics drwxr-xr-x 2 root root 4096 Sep 30 09:54 xilinx drwxr-xr-x 2 root root 4096 Sep 30 09:54 zte

    Unter /boot/extlinux liegt dann die Datei extlinux.conf

    Die sieht bei mir dann so aus

    timeout 10 menu title select kernel label kernel-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 kernel /boot/vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd /boot/initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 devicetreedir /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=TEST rootwait rootfstype=ext4 label kernel-4.19.0-rc4-1065-ayufan-g72e04c7b3e06-memtest kernel /boot/vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd /boot/initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 devicetreedir /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=TEST rootwait rootfstype=ext4 memtest

    Darunter kommen dann evt. die alten Kernel die installiert waren, das habe ich hier im Beispiel weg gelassen.

  • [HOWTO] ROCKPro64 - Boot

    Verschoben Hardware
    5
    0 Stimmen
    5 Beiträge
    4k Aufrufe
    FrankMF

    Das Problem sollte mit Kernel 4.19.0-rc4-1069-ayufan behoben sein.

  • Links

    Angeheftet Linux
    1
    0 Stimmen
    1 Beiträge
    771 Aufrufe
    Niemand hat geantwortet