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.

    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

  • 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.

  • Mainline 5.11.x

    Images
    1
    0 Stimmen
    1 Beiträge
    237 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - RTL8111/8168/8411 Netzwerkkarte

    Hardware
    4
    0 Stimmen
    4 Beiträge
    389 Aufrufe
    K

    na denn, tippe ich mal so auf default konfiguriert per dhcp 🙂

  • ROCKPro64 - Kernel 5.3.0-rc4-1117 angetestet!

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    381 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Armbian nand-sata-install

    Verschoben Armbian
    14
    0 Stimmen
    14 Beiträge
    2k Aufrufe
    FrankMF

    Ich habe heute, nachdem es einige Updates von Armbian gab, mal nachgeschaut ob ein spezieller Fehler verschwunden ist.
    Und zwar geht es um das Resizen der Partion nachdem wir Armbian auf eine USB-HDD (USB3) installiert haben.

    Ich setze dafür folgendes System ein.

    Hardware ROCKPro64v2.0 4GB RAM SanDisk 240GB 2,5 Zoll HDD (nix tolles) Software Welcome to ARMBIAN 5.67.181217 nightly Debian GNU/Linux 9 (stretch) 4.4.167-rockchip64

    Was sehe ich nach dem Reboot?

    root@rockpro64:~# df -h Filesystem Size Used Avail Use% Mounted on udev 1.9G 0 1.9G 0% /dev tmpfs 388M 5.3M 383M 2% /run /dev/sda1 220G 1.3G 207G 1% / tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup tmpfs 1.9G 4.0K 1.9G 1% /tmp /dev/mmcblk0p1 58G 1.3G 57G 3% /media/mmcboot /dev/zram0 49M 3.0M 43M 7% /var/log tmpfs 388M 0 388M 0% /run/user/0

    Korrekt die Größe angepasst!

    Schnell mal den USB3 testen

    root@rockpro64:~# 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, 38.0723 s, 113 MB/s

    Der Adapter

    root@rockpro64:~# lsusb -vvv Bus 004 Device 002: ID 2109:0715 VIA Labs, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 3.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 9 idVendor 0x2109 VIA Labs, Inc. idProduct 0x0715 bcdDevice 1.31 iManufacturer 1 VLI Manufacture String iProduct 2 VLI Product String iSerial 3 000000123ADA bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 121 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 224mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 4 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 98 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 0 Command pipe (0x01) Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 MaxStreams 32 Data-in pipe (0x03) Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x06 EP 6 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 MaxStreams 32 Data-out pipe (0x04) Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 0 MaxStreams 32 Status pipe (0x02) Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 70 bNumDeviceCaps 4 FIXME: alloc bigger buffer for device capability descriptors Device Status: 0x0000 (Bus Powered)

    Ein lästiger Fehler weniger. 😉

  • ROCKPro64 Armbian Image - erster Test

    Verschoben Armbian
    13
    0 Stimmen
    13 Beiträge
    2k Aufrufe
    FrankMF

    Erster dicker Fehlschlag mit Armbian 😞

    Heute versucht mein NAS mit Armbian aufzusetzen. Raid einbinden usw. kein Problem. Als es dann an Restic und GO ging war es vorbei mit lustig. Pakete zu alt, Quellen eingebunden und nur noch Fehler. Hmm!?

    Da ich nach zwei Stunden keine Lust mehr hatte, habe ich das erst mal auf Eis gelegt. Manchmal ist es besser an einem anderen Tag noch mal von vorne anzufangen.

    Nun läuft das NAS wieder mit

    rock64@rockpro64v_2_1:~$ uname -a Linux rockpro64v_2_1 4.19.0-rc4-1071-ayufan-g10a63ec6c2a2 #1 SMP PREEMPT Mon Oct 1 07:33:40 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux

    So schlecht läuft das ja nicht, wenn denn mal die USB3 Schnittstelle vernünftig laufen würde.

    Update: Manchmal muss man es auch richtig machen 🙂 https://forum.frank-mankel.org/topic/420/rockpro64-armbian-go-restic-installieren

  • Benchmark Script

    ROCKPro64
    2
    0 Stimmen
    2 Beiträge
    597 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

  • Zwischenfazit Juni 2018

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    685 Aufrufe
    Niemand hat geantwortet
  • bionic-containers-rockpro64

    Verschoben Linux
    2
    0 Stimmen
    2 Beiträge
    902 Aufrufe
    FrankMF

    Ich habe das jetzt mal endlich getestet 🙂

    https://forum.frank-mankel.org/topic/296/rockpro64-docker-image