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.

  • WLan auf der Konsole einrichten

    Angeheftet Linux
    3
    0 Stimmen
    3 Beiträge
    645 Aufrufe
    FrankMF
    Ich kann im Manjaro keine WPA3 Sicherheit auswählen, dann bekomme ich keine Verbindung. Es geht nur WPA2 Personal. Gegenstelle ist eine FRITZ!Box 6591 Cable. [image: 1638114013848-2021-11-28_16-37.png] In der Fritzbox sieht das so aus [image: 1638114096062-50d23aa8-5f67-485e-a994-244ef4f6a270-image.png] Das kam als Fehlermeldung Nov 28 11:03:07 frank-pc wpa_supplicant[700]: wlan0: Trying to associate with SSID 'FRITZ!Box 6591 Cable AK' Nov 28 11:03:07 frank-pc wpa_supplicant[700]: wlan0: WPA: Failed to select authenticated key management type Nov 28 11:03:07 frank-pc wpa_supplicant[700]: wlan0: WPA: Failed to set WPA key management and encryption suites Ich denke, der Treiber unterstützt das nicht.
  • ROCKPro64 - Release 0.10.6 Was geht?

    Angeheftet ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    415 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 (2GB) - Probleme mit der PCIe SATA-Karte??

    ROCKPro64
    1
    3
    0 Stimmen
    1 Beiträge
    494 Aufrufe
    Niemand hat geantwortet
  • Der 3. ROCKPro64

    ROCKPro64
    3
    0 Stimmen
    3 Beiträge
    975 Aufrufe
    FrankMF
    Nachdem ich jetzt mein NAS neu gemacht habe, schauen wir mal, was die Chinesen geliefert haben. Bestellt hatte ich ROCKPro64 v2.1 2GB RAM Kühlkörper Netzteil 3A USB-Adapter für eMMC-Modul Endlich habe ich mal an den USB-Adapter für das eMMC-Modul gedacht [image: 1540029625079-img_20181020_115348_ergebnis-resized.jpg] Was ist mir aufgefallen? Das Versionsdatum ist neu (siehe oben) Die PCIe NVMe Karte ist neu Bei der PCIe NVMe Karte liegt eine Abstandshülse aus Messing und eine winzig kleine Schraube bei. Damit bekomme ich aber nicht die NVMe-SSD befestigt. Ich habe dann gemurkst Da sollte Pine64 unbedingt nachbessern! So sieht das dann zusammengebaut aus. [image: 1540029757102-img_20181020_115425_ergebnis-resized.jpg] [image: 1540029767472-img_20181020_115438_ergebnis.jpg] Da ich ein paarmal gelesen hatte, das Leute Probleme mit dem PCIe NVMe Adapter hatten, direkt als erstes mal ein Test ob das reibungslos funktioniert. Sys rock64@rockpro64:/mnt$ uname -a Linux rockpro64 4.4.132-1075-rockchip-ayufan-ga83beded8524 #1 SMP Thu Jul 26 08:22:22 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux lspci rock64@rockpro64:/mnt$ sudo lspci -vvv [sudo] password for rock64: 00:00.0 PCI bridge: Rockchip Inc. RK3399 PCI Express Root Port Device 0100 (prog-if 00 [Normal decode]) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort+ <MAbort+ >SERR+ <PERR+ INTx- Latency: 0 Interrupt: pin A routed to IRQ 238 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 00000000-00000fff Memory behind bridge: fa000000-fa0fffff Prefetchable memory behind bridge: 00000000-000fffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [80] Power Management version 3 Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0+,D1+,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME+ Capabilities: [90] MSI: Enable+ Count=1/1 Maskable+ 64bit+ Address: 00000000fee30040 Data: 0000 Masking: 00000000 Pending: 00000000 Capabilities: [b0] MSI-X: Enable- Count=1 Masked- Vector table: BAR=0 offset=00000000 PBA: BAR=0 offset=00000008 Capabilities: [c0] Express (v2) Root Port (Slot+), MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0 ExtTag- RBE+ DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L1, Exit Latency L0s <256ns, L1 <8us ClockPM- Surprise- LLActRep- BwNot+ ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt+ AutBWInt+ LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise- Slot #0, PowerLimit 0.000W; Interlock- NoCompl- SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg- Control: AttnInd Off, PwrInd Off, Power+ Interlock- SltSta: Status: AttnBtn- PowerFlt- MRL+ CmdCplt- PresDet- Interlock- Changed: MRL- PresDet- LinkState- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR+, OBFF Via message ARIFwd+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [274 v1] Transaction Processing Hints Interrupt vector mode supported Device specific mode supported Steering table in TPH capability structure Kernel driver in use: pcieport 01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 (prog-if 02 [NVM Express]) Subsystem: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 237 Region 0: Memory at fa000000 (64-bit, non-prefetchable) [size=16K] Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [70] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L0s unlimited, L1 <64us ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+ LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk- ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt- LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Not Supported DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [b0] MSI-X: Enable+ Count=8 Masked- Vector table: BAR=0 offset=00003000 PBA: BAR=0 offset=00002000 Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [148 v1] Device Serial Number 00-00-00-00-00-00-00-00 Capabilities: [158 v1] Power Budgeting <?> Capabilities: [168 v1] #19 Capabilities: [188 v1] Latency Tolerance Reporting Max snoop latency: 0ns Max no snoop latency: 0ns Capabilities: [190 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+ PortCommonModeRestoreTime=10us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- T_CommonMode=0us LTR1.2_Threshold=0ns L1SubCtl2: T_PwrOn=10us Kernel driver in use: nvme Da sieht alles gut aus. x4 alles Bestens! iozone 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 Oct 20 10:08:28 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 63896 108269 91858 95309 32845 73173 102400 16 123393 236653 273766 275807 118450 199130 102400 512 471775 570571 484612 496942 441345 575817 102400 1024 544229 642558 508895 511834 486506 647765 102400 16384 1044520 1100322 1069825 1092146 1089301 1086757 iozone test complete. Das sieht nicht optimal aus, schau ich mir später an. Das hier soll nur ein kurzer Test sein ob das Board rennt Nachdem ich mittlerweile zwei ROCKPro64 im "produktiven" Einsatz habe, war es immer sehr mühsam mal eben was zu testen. Man will die anderen ja nicht immer ausmachen, dran rumhantieren usw. Deswegen jetzt der dritte, der im Moment dann die Rolle des Testkandidaten einnimmt. Ab sofort kann ich wieder nach Lust und Laune, neue Images testen usw.
  • ROCKPro64 - Reset & Power Taster (extern)

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

    Hardware
    1
    0 Stimmen
    1 Beiträge
    544 Aufrufe
    Niemand hat geantwortet
  • Ubuntu Bionic - Namen der Interfaces umstellen

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    581 Aufrufe
    Niemand hat geantwortet
  • Shop-Bestellung

    ROCKPro64
    10
    1
    0 Stimmen
    10 Beiträge
    2k Aufrufe
    V
    @FrankM besten Dank für die ausführliche Infos.