Skip to content

[HOWTO] ROCKPro64 - Boot

Verschoben Hardware
  • Im IRC von Pine64 bekomme ich die letzten Tage immer wieder mit, das die Leute Schwierigkeiten haben ihren ROCK64 zu booten. Da es auf dem ROCKPro64 genauso läuft, möchte ich hier mal eine kleine Anleitung dazu schreiben.

    0_1527157167158_IMG_20180523_111136.jpg
    Ob der ROCKPro64 auch davon booten kann werden wir dann zu einem späteren Zeitpunkt testen. Aktuell funktioniert die PCIe Schnittstelle noch nicht.

    Fangen wir an damit, was auf den ROCK's vorhanden ist.

    Some of PINE64 devices, such as the Rock64 and SOPine, are equipped with SPI Flash. This allows users to flash u-boot onto the SPI and boot from an external USB 2.0 or USB 3.0 SSD/HDD/thumb-drive, thereby forgoing using eMMC or an microSD card.
    Quelle: http://wiki.pine64.org/index.php/NOOB#Flashing_u-boot_to_SPI_Flash

    Kurze Erklärung:

    Serial EEPROMs are low power, non-volatile memory devices with robust operating ranges, small size and byte alterability, making them ideal for data and program storage. Serial EEPROMs can be written more than 1 Million times.
    Quelle: https://www.microchip.com/design-centers/memory

    Also für Laien, so ähnlich wie Euer BIOS in einem normalen Rechner. Dort liegt dann der u-boot, das Bootprogramm. Vorteil, man braucht dann keine SD-Karte mehr zum Booten, sondern kann direkt von z.B. einer HDD oder SDD booten.

    Boot Reihenfolge:

    • SPI flash
    • eMMC (disable with jumper)
    • microSD
    • USB drive
    • PXE

    Gut, damit haben wir einen Überblick wie das Booten auf den ROCK's so vonstatten geht. Im Auslieferungszustand ist im SPI-Speicher nichts drin. Somit kann ich ganz einfach mit einer microSD-Karte oder einer eMMC-Karte booten.

    Wichtig! Der aktuelle U-Boot unterstützt kein booten von einer PCIe Festplatte!


    microSD-Karte / eMMC-Karte

    Sicherstellen, das der SPI-Speicher leer ist! Wenn man das nicht zu 100% weiß, kann man ein Tool vom Ayufan benutzen um den SPI-Speicher zu löschen.

    https://forum.frank-mankel.org/category/19/tools

    Ob das Aktuell auf dem ROCKPro64 funktioniert, kann ich nicht bestätigen Das Tool funktioniert!

    Danach das Image auf die Karte schreiben, dazu kann man gut den Pine64-Installer benutzen. Der Pine64-Installer ist ein Fork von Etcher. Großer Vorteil von Etcher ist, das man sehr schwer versehentlich das falsche Laufwerk flasht und das das Ergebnis kontrolliert wird. Und viele weitere Vorteile.

    Dann die microSD-Karte in den Schacht und das Board damit booten.


    USB Laufwerk

    Um ein USB-Laufwerk zu booten, benutzt man jetzt den SPI-Speicher und schreibt dort den u-boot rein. Dann kommt auf die USB Platte das Linuxsystem und beim nächsten Start des ROCKPro64 wird dann von der Platte gestartet.

    Um den u-boot in den SPI-Speicher zu bekommen, gibt es ein Tool.

    https://forum.frank-mankel.org/category/19/tools

    Ob das Aktuell auf dem ROCKPro64 funktioniert, kann ich nicht bestätigen Das Tool funktioniert!

    Auf eine microSD-Karte damit, den ROCK gebootet und das Tool schreibt den u-boot in den SPI-Speicher.

    Danach microSD-Karte entfernen, eMMC-Karte entfernen und die vorbereitete USB-Platte anschließen. Auf dieser Platte muss ein Linuxsystem drauf sein. Also, z.B. mit Etcher das Image auf das Laufwerk schreiben.

    Danach den ROCK einschalten und schauen was passiert 🙂


    PXE Boot

    PXE bezeichnet dabei den Vorgang, um mit Hilfe einer PXE-fähigen Netzwerkkarte via DHCP eine Netzwerkkonfiguration (IP-Adresse, Adresse eines TFTP-Servers, ...) zu erhalten, und anschließend vom TFTP-Server einen Bootloader zu laden und auszuführen.

    https://wiki.ubuntuusers.de/PXE-Boot/

    Ok, das Thema überlassen wir mal den Profis, die werden schon wissen wie man das zum Laufen bekommt. Für uns Hobbybastler wahrscheinlich auch nicht so interessant.


    Wichtig

    Für mich sehr wichtig, egal was ich an den kleinen Platinen mache, eine serielle Konsole wo man alles mitlesen kann was so passiert. Also, so ziemlich das Wichtigste, wenn mal was klemmt.

    0_1527157138727_konsole.png

    Zur seriellen Konsole bitte hier nachlesen.


    Quellen

    http://wiki.pine64.org/index.php/NOOB#Flashing_u-boot_to_SPI_Flash

  • Mal ein paar Dinge aufschreiben zum Thema.

    Aktuell ist kein Booten von einer PCIe SSD möglich. Der U-Boot unterstützt das zur Zeit nicht! Schade 😞

    SPI Erase scheint zu funktionieren, aber Fehler bei den LED's
    SPI Flash funktioniert nicht

    18:49:37) tllim: the RK SPI Flash implementation is EFI and they will make an open source release.

    Das heißt, aktuell kann man nur von SD-Karte oder eMMC booten. Wobei eMMC, so weit ich weiß, nicht getestet ist.

  • Als kurze Ergänzung. Mittlerweile kann man von

    • SD-Karte
    • eMMC
    • USB2
    • PXE (nicht getestet)

    booten. USB3 funktioniert aus irgendeinem Grund nicht. On man mal von einer PCIe NVMe SSD oder einer PCIe SATA HDD booten kann, wird die Zukunft zeigen. Aktuell unterstützt der u-boot das nicht.

  • Von eMMC unter Mainline kann man im Moment nicht booten. Es besteht aber Hoffnung, das man das Problem gelöst bekommt. Mit diesem Patch geht es.

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

  • ROCKPro64 - RTL8111/8168/8411 Netzwerkkarte

    Hardware
    4
    +0
    0 Stimmen
    4 Beiträge
    405 Aufrufe
    K
    na denn, tippe ich mal so auf default konfiguriert per dhcp
  • NVMe - Booten jetzt möglich

    Angeheftet ROCKPro64
    7
    0 Stimmen
    7 Beiträge
    763 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.
  • Images 0.9.x

    Images
    13
    0 Stimmen
    13 Beiträge
    819 Aufrufe
    FrankMF
    0.9.16: gitlab-ci-linux-build-163 released 0.9.x 0.9.16: Bump kernel to 4.4.197, 0.9.15: Bump kernel to 4.4.193, 0.9.14: Bump kernel to 4.4.190, 0.9.14: Fix Firefox video playback, 0.9.13: Bump sound volume for Pinebook Pro, 0.9.12: Fix LXDE for Rock64, 0.9.10: Fix support for power/standby LEDs for all boards,
  • ROCKPro64 - Armbian - Schnelltest 5.75 Debian Stretch

    Armbian
    1
    1 Stimmen
    1 Beiträge
    392 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 (4GB) - Probleme mit der PCIe SATA-Karte??

    ROCKPro64
    8
    +0
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    FrankMF
    Die Verlinkung hatte ich überlesen, sorry. Es gibt nur eine Handvoll Karten, die im PCIe Port funktionieren. Warum, kann ich dir leider nicht beantworten. Es liegt aber mit Sicherheit an falschen Einstellungen im Kernel und an fehlenden Treibern. Ich habe hier auch eine andere Karte rumliegen, die erzeugt immer nur eine Kernel Panic In diesem Thread steht einiges was geht und was nicht. https://forum.pine64.org/showthread.php?tid=6459
  • ROCKPro64 - Alter u-boot im SPI-Flash

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    507 Aufrufe
    Niemand hat geantwortet
  • Benchmark Script

    ROCKPro64
    2
    0 Stimmen
    2 Beiträge
    612 Aufrufe
    FrankMF
    Mainline Mein gekürztes Ergebnis auf einem ROCKPro64 v2.0 mit 4GB RAM und 4.18er Kernel, dieser ROCK benutzt eine SD-Karte! Gekürzt Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic Architecture: arm64 Uptime: 16:14:56 up 4 min, 1 user, load average: 0.08, 0.02, 0.01 Linux 4.18.0-rc5-1048-ayufan-g69e417fe38cf (rockpro64) 07/27/18 _aarch64_ (6 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.54 0.00 0.74 0.39 0.00 98.33 Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn mmcblk0 20.63 634.58 48.26 168380 12804 nvme0n1 0.14 4.01 0.00 1064 0 total used free shared buff/cache available Mem: 3.8G 241M 3.4G 19M 201M 3.5G Swap: 0B 0B 0B ########################################################################## Komplett -> http://ix.io/1ix7
  • Benchmarks

    Angeheftet Verschoben Archiv
    10
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    FrankMF
    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.