Skip to content

ROCKPro64 - Reset per SSH funktioniert nicht (Kernel 4.4.x)

ROCKPro64
  • Mit Kernel 4.4.154-1122 funktioniert ein

    sudo reboot now
    

    nicht! Folgender Fehler taucht dann auf

    U-Boot SPL 2017.09-rockchip-ayufan-1033-gdf02018479 (Aug 06 2018 - 22:29:15)    
    booted from SD                                                                  
    Trying to boot from MMC2                                                        
    mmc_load_image_raw_sector: mmc block read error                                
    SPL: failed to boot from all boot devices                                      
    ### ERROR ### Please RESET the board ###
    

    Logfile -> https://pastebin.com/ysghzKnb

    Der Resettaster auf der Platine funktioniert wie erwartet.

    Mit Kernel 4.19.0-rc4-1071 taucht der Fehler nicht auf.

    Ich habe mal einen Issue auf github.com aufgemacht.

    Danke @Jens, der Fehler ist mir auch schon länger aufgefallen. Aber durch Deine EMail kam der Anstoß, die Sache nochmal ausführlich zu testen!

  • Der Fehler ist mit dem Release von Image 0.7.11 gefixt.

  • Hallo Frank,

    danke für Deine Unterstützung. Bin jetzt auf dem aktuellen Release, habe aber leider weiterhin das gleiche Problem. Image liegt auf einer SD Karte.
    Frage: Wo sehe ich denn das Log File zum nachschauen?

    Grüße
    Jens

  • Hast du nur den Kernel ausgetauscht oder ein komplett neues Image benutzt? Weil ich nicht 100% sicher bin, ob da nicht noch andere Sachen geändert wurden.

    Du kannst mal in die Konsole folgendes eingeben

    dmesg
    

    Da sieht man eigentlich alles Wichtige beim Startvorgang. Ok, die u-boot Meldungen sieht man nur mit der seriellen Konsole. Benutzt du eine serielle Konsole?

    Wenn möglich, mal das 0.7.11 auf eine SD_Karte und damit starten.

  • Ich habe eben mal gerade nachgesehen, der u-boot im Image 0.7.10 ist ein anderer als in 0.7.11
    Und dort wird auch das Problem herkommen (Vermutung).

    Also muss man zwingend ein neues Image benutzen, oder man weiß wie man den u-boot auf einer bestehenden Installation ersetzt. Interessantes Thema für einen neuen Beitrag, oder!?

    u-boot

    0.7.11

    2017.........1033
    

    0.7.10

    2017.........1025
    
  • Hallo Frank,
    so bin jetzt endlich dazu gekommen deine Vorschläge auszuprobieren. Neue SD Karte, 0.7.11 draufgeklatscht, beide akt. Kernels ausprobiert. Ohne Erfolg. Liegt vllt. daran, das mein U-Boot noch jungfräulich ist. Werde ich bei Gelegenheit mal flashen und dann berichten.

    Danke dir auf alle Fälle
    Grüße
    Jens

  • Wo ist denn dein u-boot? Im SPI?

  • Hatte ich wie gesagt noch gar nicht geflasht. Out of the box Image drauf und Kernel Update

  • Ok, dann verstehe ich jetzt nicht, wieso der Reboot nicht funktioniert!?!?!?

    Hast du eine UART-Verbindung um den Bootvorgang zu beobachten?

  • Noch nicht...Aber vielleicht hilft ja ein U-Boot flash. Halte dich auf dem laufenden.

  • So, also erst wenn UBoot drauf ist klappts auch mit dem Reset Jetzt bin ich ein Stück weiter.

    Danke Dir

  • Hallo zusammen,
    habe mir den Rockpro64 jetzt neu angeschafft und das aktuelle Openmediavault (7.11 arm64) auf SD Karte geschrieben. Leider habe ich auch das genannte Problem mit dem reboot.
    Jetzt habe ich probiert das U-Boot auf SPI zu flashen. Denke auch, dass es funktioniert hat (blinken der weissen led).

    Leider funktioniert der reboot nicht. Mache ich was falsch?

    Danke und Gruss

  • Willkommen @killlah78

    Das mit dem Reboot auf dem RockPro64 ist ein leidiges Thema, mal klappt es, mal nicht. Woran es liegt, weiß ich nicht zu 100%, es soll aber wohl an Timingproblemen im Zusammenhang SD-Karte und u-boot liegen.

    Ich habe hier aktuell eine Testinstallation vom Kamil

    rock64@rockpro64:~$ uname -a
    Linux rockpro64 4.4.154-1124-rockchip-ayufan-ged3ce4d15ec1 #1 SMP Mon Oct 22 20:59:41 UTC 2018 aarch64 GNU/Linux
    

    Ich boote dort von SD-Karte und es steckt noch eine PCIe NVMe Karte drin. Als ich eben mehrmals gebootet habe klappte das einwandfrei. Ok, das hilft dir nicht.

    Aber den u-boot in den SPI zu flashen ist auch keine Lösung. Das dient übrigens dazu, von USB oder PXE zu booten, die SD-Karte hat immer noch Vorrang. Der SPI würde erst dann greifen, wenn keine SD-Karte und kein eMMC-Modul verbaut ist. Ändert also nichts am Problem.

    Du hast zwei Möglichkeiten, einmal mit einer hochwertigen SD-Karte testen und einmal mit dem Problem leben. Hier in meinem Fall, teste ich mit den Boards meistens nur rum (sind mir noch zu viele Macken USB3, SATA), da ist es dann kein Problem nach einem erfolgten Reboot mal kurz den Reboot-Taster auf der Platine zu betätigen.

    Ich kann dich aber verstehen, es nervt ein wenig 🙂

  • halli hallo & zusammen,
    in Allgemeinen lässt sich selten empfehlen, auf verdacht alles zu updaten, sobald irgend etwas nicht tut. Oftmals holt man sich lediglich neue Ungewissheit ins Boot. Es hilft eher zu wissen, wo es (denn ungefähr) hakt.

    Wie Frank in etwa bereits angesprochen hat ist es ungemein hilfreich zu sehen "was ab geht". Sprich die serielle "Schnitte" anzuklemmen. Das ist wirklich kein Hexenwerk, braucht aber einen Pegelwandler.
    Andernfalls ist die Gefahr hoch, dass man mit Rätselraten einen Abend ohne Ergebnis in den Sand setzt. Hab ich einmal mit diesem Board hinter mir, dann die serielle Komm angeklemmt.
    Ein ResetProb hab ich zumindest mit eMMC noch nicht beobachtet. Dabei habe ich viel Kernel gewechselt (nie den uboot) und 'reboot' getippt. Ab und an hängt er anscheinend bei Initialisierung der tty's, aber ich mag mich irren. Für das Prob von @killlah78 fehlt für mehr einfach ein output
    gruß

  • Armbian 20.08 (Caple) released

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

    Angeheftet ROCKPro64
    7
    0 Stimmen
    7 Beiträge
    732 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 - LAN Schnittstelle

    Verschoben ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    380 Aufrufe
    Niemand hat geantwortet
  • Mainline 4.20.0-rc6

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    414 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Samsung 970 NVMe M.2 500GB

    Hardware
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Tehuti Networks Ltd. TN9710P 10GBase-T/NBASE-T Ethernet Adapter

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

    This repo contains the tn40xx Linux driver for 10Gbit NICs based on the TN4010 MAC from Tehuti Networks.

    This driver enables the following 10Gb SFP+ NICs:

    D-Link DXE-810S
    Edimax EN-9320SFP+
    StarTech PEX10000SFP
    Synology E10G15-F1
    ... as well as the following 10GBase-T/NBASE-T NICs:

    D-Link DXE-810T
    Edimax EN-9320TX-E
    EXSYS EX-6061-2
    Intellinet 507950
    StarTech ST10GSPEXNB

    Quelle: https://github.com/ayufan-rock64/tn40xx-driver/tree/master

  • Die ersten Schritte nach der Installation!

    Angeheftet ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • stretch-minimal-rockpro64

    Verschoben Linux
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    FrankMF

    Mal ein Test was der Speicher so kann.

    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 : 2812.7 MB/s C copy backwards (32 byte blocks) : 2811.9 MB/s C copy backwards (64 byte blocks) : 2632.8 MB/s C copy : 2667.2 MB/s C copy prefetched (32 bytes step) : 2633.5 MB/s C copy prefetched (64 bytes step) : 2640.8 MB/s C 2-pass copy : 2509.8 MB/s C 2-pass copy prefetched (32 bytes step) : 2431.6 MB/s C 2-pass copy prefetched (64 bytes step) : 2424.1 MB/s C fill : 4887.7 MB/s (0.5%) C fill (shuffle within 16 byte blocks) : 4883.0 MB/s C fill (shuffle within 32 byte blocks) : 4889.3 MB/s C fill (shuffle within 64 byte blocks) : 4889.2 MB/s --- standard memcpy : 2807.3 MB/s standard memset : 4890.4 MB/s (0.3%) --- NEON LDP/STP copy : 2803.7 MB/s NEON LDP/STP copy pldl2strm (32 bytes step) : 2802.1 MB/s NEON LDP/STP copy pldl2strm (64 bytes step) : 2800.7 MB/s NEON LDP/STP copy pldl1keep (32 bytes step) : 2745.5 MB/s NEON LDP/STP copy pldl1keep (64 bytes step) : 2745.8 MB/s NEON LD1/ST1 copy : 2801.9 MB/s NEON STP fill : 4888.9 MB/s (0.3%) NEON STNP fill : 4850.1 MB/s ARM LDP/STP copy : 2803.8 MB/s ARM STP fill : 4893.0 MB/s (0.5%) ARM STNP fill : 4851.7 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) : 602.5 MB/s NEON LDP/STP 2-pass copy (from framebuffer) : 551.6 MB/s NEON LD1/ST1 copy (from framebuffer) : 667.1 MB/s NEON LD1/ST1 2-pass copy (from framebuffer) : 605.6 MB/s ARM LDP/STP copy (from framebuffer) : 445.3 MB/s ARM LDP/STP 2-pass copy (from framebuffer) : 428.8 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.0 ns / 22.6 ns 2097152 : 114.0 ns / 175.3 ns 4194304 : 161.7 ns / 219.9 ns 8388608 : 190.7 ns / 241.5 ns 16777216 : 205.3 ns / 250.5 ns 33554432 : 212.9 ns / 255.5 ns 67108864 : 222.3 ns / 271.1 ns