Skip to content

ROCKPro64 - Booten von USB3

ROCKPro64
  • Heute mal wieder ein kurzer Test.

    Hardware

    • USB3 SSD Samsung T5 500GB
    • PCIe NVMe SSD Samsung 960 EVO mit 250GB

    Software

    • uboot ins SPI geschrieben uboot 2017.09.....1062

    • Auf der SSD ist das bionic-minimal-rockpro64-0.9.0-1142-arm64.img

      rock64@rockpro64:~$ uname -a
      Linux rockpro64 4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a #1 SMP Sun Jul 7 13:45:25 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
      

    Ein Start ist problemlos möglich.

    df

    rock64@rockpro64:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            991M     0  991M   0% /dev
    tmpfs           199M  568K  199M   1% /run
    /dev/sda7       459G  1.3G  439G   1% /
    tmpfs           995M     0  995M   0% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           995M     0  995M   0% /sys/fs/cgroup
    /dev/sda6       112M  4.0K  112M   1% /boot/efi
    tmpfs           199M     0  199M   0% /run/user/1000
    

    dd

    rock64@rockpro64:~$ sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync
    [sudo] password for rock64: 
    4096+0 records in
    4096+0 records out
    4294967296 bytes (4.3 GB, 4.0 GiB) copied, 12.3658 s, 347 MB/s
    

    iozone

    rock64@rockpro64:/$ 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 16 17:19:46 2019
     
     	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    22066    22866    32054    31620    22357    23561                                                          
               102400      16    65752    58709    61745    79903    61869    89612                                                          
               102400     512   233974   254912   229548   230554   223731   255448                                                          
               102400    1024   288587   308089   275765   277139   268987   307692                                                          
               102400   16384   402823   413363   389810   392131   392335   414199                                                          
     
     iozone test complete.
    

    blkid

    rock64@rockpro64:~$ sudo blkid
    /dev/nvme0n1: LABEL="TEST" UUID="962851a6-b0c8-4fe1-a7eb-1f1a68a120bb" TYPE="ext4"
    /dev/sda1: PARTLABEL="loader1" PARTUUID="552aa722-be77-486f-abfb-f3649606441d"
    /dev/sda2: PARTLABEL="reserved1" PARTUUID="8329ccf3-cfdd-44b8-b654-8bac4d118d18"
    /dev/sda3: PARTLABEL="reserved2" PARTUUID="f81a3d66-7c6c-4605-ab47-7b76ded05d72"
    /dev/sda4: PARTLABEL="loader2" PARTUUID="95fd176f-85f7-4672-8a17-bd034bd9a13a"
    /dev/sda5: PARTLABEL="atf" PARTUUID="2af9051f-1b48-49b9-b326-c11aeed5de35"
    /dev/sda6: SEC_TYPE="msdos" LABEL="boot" UUID="4000-6196" TYPE="vfat" PARTLABEL="boot" PARTUUID="c9c6f3cb-6fd4-469e-952b-2f5e8ee62925"
    /dev/sda7: LABEL="linux-root" UUID="4e124868-d83a-463e-b7ab-68cc7c55cc23" TYPE="ext4" PARTLABEL="root" PARTUUID="84865f57-6395-48fa-b2c3-a3f71fd246e4"
    /dev/zram0: UUID="660548f9-6151-4fd6-a0f0-3980b1f56a54" TYPE="swap"
    /dev/zram1: UUID="25f9ca0a-99f6-408a-a8b7-06e7f80c715d" TYPE="swap"
    /dev/zram2: UUID="f25ef32b-d15d-4100-b544-422aae1be00e" TYPE="swap"
    /dev/zram3: UUID="fb972e95-deb9-4c82-ba72-86a016c5f5a3" TYPE="swap"
    /dev/zram4: UUID="ec437d02-400a-4d17-9a6d-b9143a87e400" TYPE="swap"
    /dev/zram5: UUID="7ebb66d9-3e04-4698-96ea-7f08285cff70" TYPE="swap"
    

    Die NVMe SSD wird sauber angesprochen.

    rock64@rockpro64:/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, 11.7229 s, 366 MB/s
    

    und

    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: Tue Jul 16 17:18:45 2019
    
    	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    81283   110138    93170    95524    33148    73284                                                          
              102400      16   138311   209171   245732   249358   115781   176634                                                          
              102400     512   569812   578828   481322   487712   437363   591439                                                          
              102400    1024   577200   657983   505823   513736   483870   632656                                                          
              102400   16384   983078  1058890  1051166  1105247  1099474  1139649                                                          
    
    iozone test complete.
    

    ip a

     rock64@rockpro64:~$ ip a
     1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
         link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff
         inet 192.168.3.19/24 brd 192.168.3.255 scope global dynamic eth0
            valid_lft 6411sec preferred_lft 6411sec
         inet6 fe80::6003:b0ff:fed6:dcb3/64 scope link 
            valid_lft forever preferred_lft forever
     3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state DORMANT group default qlen 1000
         link/ether ac:83:f3:e6:1f:b2 brd ff:ff:ff:ff:ff:ff
    

    WLan wird erkannt, hier nicht konfiguriert.

    Reboot

    Selten blieb er beim reboot hängen. Müsste mit der PCIe Karte zusammenhängen!? Klappt das Booten von SPI bei Euch da draußen jetzt eigentlich einwandfrei? Immer? Ich gestehe, ich habe da aktuell ein wenig den Überblick verloren, wie da der aktuelle Entwicklungsstand ist.

    Hier sieht es, in dieser Kombination, nutzbar aus.

  • Ich habe hier unterschiedliche Boot-Konfigs gerade am laufen:

    NVMe (root) / SD Karten boot

    emmc 64 GB (root sowie boot)

    USB3 SSD (root) / SD Karten boot

    alle mit:

    shutdown -r seit ayufan 0.8 kein reset / reboot problem

    nur mein "erster" rockpro (nmve root / sd karten boot) trotz ayufan 0.8
    will nicht ohne angeschlossenen monitor (standby) in den uboot nach einem shutdown .. ...

    Wie schön wäre es doch, wenn der SPI boot auch mit NVMe und USB3 problemlos funktioniert, dann könnte ich auf die SD-Kärtchen und Kernel Updates Workarounds verzichten. (für dich vermutlich auch eine entlastung 🙂 )

  • Yeah, genau das worauf ich auch warte.

    Wenn ich das richtig mitbekommen habe, könnte das Kamil's nächster Punkt auf seiner Liste sein.

  • ROCKPro64 - Debian Bullseye Teil 3

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    310 Aufrufe
    Niemand hat geantwortet
  • NVMe - Booten jetzt möglich

    Angeheftet ROCKPro64
    7
    0 Stimmen
    7 Beiträge
    729 Aufrufe
    FrankMF

    Hallo @mabs,

    ja. Der uboot wird in den SPI Speicher geladen. Der sucht dann beim Starten nach einem bootfähigem Device. So wie auf einem ganz normalen PC. Eine richtig coole Sache, wo ich mich freue, das das langsam mal funktioniert.

    Die Performance wird ja dann sicherlich von dem Device bestimmt. Dazu gibt es ja genug Messungen. Ich würde eine NVMe SSD immer einer SATA Platte vorziehen. Es kommt aber auf den Anwendungsfall an.

    Für ein NAS dann eher zwei oder mehr SATA Platten, und von USB3 HDD booten 🙂 So wie ich das schon lange betreibe.

    Aber, da hat auch jeder andere Vorstellungen und Vorlieben für.

  • ROCKPro64 - i2c Bus

    Hardware
    1
    0 Stimmen
    1 Beiträge
    535 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Armbian armbian-config

    Verschoben Armbian
    1
    0 Stimmen
    1 Beiträge
    755 Aufrufe
    Niemand hat geantwortet
  • 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 - eMMC-Modul / SD-Karte auswählen

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

    Echtes Problem gefunden.

    Wenn die eMMC-Karte verbaut ist, ich mit der SD-Karte starte (Jumper gesetzt), kann ich keinen Kernel updaten. Es ist alles ganz normal installiert, er startet aber immer den letzten vorhandenen.

    Jumper entfernt, eMMC-Modul entfernt!

    Bootvorgang mit unveränderter SD-Karte, neuer Kernel wird geladen.

    OK, das verstehe ich im Moment überhaupt nicht !?!?!?

  • [HOWTO] ROCKPro64 - PCIe NVMe Karte mit Samsung 960 EVO m.2

    Verschoben Hardware
    2
    0 Stimmen
    2 Beiträge
    2k Aufrufe
    FrankMF
    Ergänzung

    Eine andere SATA-Karte und eine Riser-Karte mit angeschlossener GPU startet nicht.

    rock64@rockpro64v2_1:~$ uname -a Linux rockpro64v2_1 4.4.132-1075-rockchip-ayufan-ga83beded8524 #1 SMP Thu Jul 26 08:22:22 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
  • Benchmark Mainline 4.17.0-rc6

    Verschoben Archiv
    4
    0 Stimmen
    4 Beiträge
    992 Aufrufe
    FrankMF
    iozone 5GT/s x2 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. 2,5GT/s x2 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: Sun Jun 17 06:54:02 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 49420 91310 102658 103415 47023 90099 102400 16 138141 202088 224648 225918 141642 202457 102400 512 335055 347517 375096 378596 364668 350005 102400 1024 345508 354999 378947 382733 375315 354783 102400 16384 306262 383155 424403 429423 428670 377476 iozone test complete.