Skip to content

ROCKPro64 - eMMC-Modul / SD-Karte auswählen

Hardware
  • Der ROCKPro64 hat ja eine festgelegte Boot Reihenfolge. Nun kann es ja sein, das man bei einem montierten eMMC-Modul mal eben ein Image testen will. Nur bei dem kleinen Modul weiß ich nicht ob das unbedingt sehr gut kommt, wenn man das immer wieder aus- und wieder einbaut. Das selbe hat sich wohl auch der Hersteller gedacht, aus diesem Grund findet man neben dem Platz für das eMMC-Modul einen Pfostenstecker mit zwei Pinnen.

    0_1532770712865_DSC_0036_ergebnis.JPG

    Dieser dient dazu, das eMMC-Modul zu deaktivieren und wieder von SD-Karte zu booten. Sehr praktisch das Ganze! Eine Brücke einlegen und fertig. Vorher den ROCKPro64 ausschalten!

    0_1532770797172_DSC_0037_ergebnis.JPG

    Klappt wunderbar, so kann man schön viele Dinge ausprobieren und mein Hauptsystem auf der eMMC-Karte würde nicht angefasst.

  • Gute Frage heute im IRC "Wie kann man denn was Neues auf das eMMC-Modul schreiben, wenn man den Jumper setzen muss um von SD-Karte zu booten?"

    Die Antwort

    14:27:39) DiscordBot: <pfeerick> If that is the eMMC clock disable jumper like on the rock64, to boot the SD you would put the jumper on, power up the board, and then pull the jumper off after 2-3 seconds. This would make the board boot from the SD card, but still see the eMMC.

    Das musste ich natürlich testen.

    rock64@rockpro64:~$ fdisk -l
    fdisk: cannot open /dev/ram0: Permission denied
    fdisk: cannot open /dev/mtdblock0: Permission denied
    fdisk: cannot open /dev/mtdblock1: Permission denied
    fdisk: cannot open /dev/mtdblock2: Permission denied
    fdisk: cannot open /dev/mmcblk1: Permission denied
    fdisk: cannot open /dev/mmcblk1rpmb: Permission denied
    fdisk: cannot open /dev/mmcblk1boot1: Permission denied
    fdisk: cannot open /dev/mmcblk1boot0: Permission denied
    fdisk: cannot open /dev/mmcblk0: Permission denied
    fdisk: cannot open /dev/sda: Permission denied
    fdisk: cannot open /dev/zram0: Permission denied
    fdisk: cannot open /dev/zram1: Permission denied
    fdisk: cannot open /dev/zram2: Permission denied
    fdisk: cannot open /dev/zram3: Permission denied
    fdisk: cannot open /dev/zram4: Permission denied
    fdisk: cannot open /dev/zram5: Permission denied
    

    Hier sieht man jetzt beide mmcblk0 und mmcblk1. So weit, so gut. Aber, woher weiß ich das er vom richtigen Device gebootet hat?

    rock64@rockpro64:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            992M     0  992M   0% /dev
    tmpfs           200M  508K  199M   1% /run
    /dev/mmcblk0p7   15G  2.4G   12G  18% /
    tmpfs           996M     0  996M   0% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           996M     0  996M   0% /sys/fs/cgroup
    /dev/mmcblk0p6  112M  4.0K  112M   1% /boot/efi
    tmpfs           200M     0  200M   0% /run/user/1000
    

    Diskfree (df) zeigt uns auch die Mountpunkte. Und da sehen wir, das /dev/mmcblk0p7 das Rootdevice ist. Also alles richtig so weit. Nun könnte man die SD-Karte mit dd einfach auf's eMMC-Modul bügeln 🙂

  • 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 !?!?!?

  • Zwischenfazit April 2019

    Angeheftet ROCKPro64
    1
    +0
    1 Stimmen
    1 Beiträge
    565 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Armbian Desktop Variante

    Verschoben Armbian
    1
    +0
    0 Stimmen
    1 Beiträge
    521 Aufrufe
    Niemand hat geantwortet
  • Video PCIe SATA Karte

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    514 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - USB3 Probleme

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    863 Aufrufe
    Niemand hat geantwortet
  • IPFire auf dem ROCKPro64

    ROCKPro64
    2
    +0
    0 Stimmen
    2 Beiträge
    636 Aufrufe
    FrankMF
    Falls es jemanden da draußen interessiert, hier eine Liste der Dinge die funktionieren GREEN Die LAN-Schnittstelle wird einwandfrei erkannt Webserver läuft, Weboberfläche erreichbar Das war's dann mit den positiven Daten jede Menge Kernelfehler iptables Fehler Modul fehlt?? kein LAN-Adapter, WLan-Adapter wird erkannt Lizenzverbindungen lassen sich nicht bestätigen nach der Installation ist die Konsole weg usw. usf
  • ROCKPro64 - kein WLan-Modul möglich?

    ROCKPro64
    4
    +1
    0 Stimmen
    4 Beiträge
    2k Aufrufe
    FrankMF
    Heute, 5 Monate später, kann ich bestätigen das WLan möglich ist Getestet auf einem ROCKPro64 v2.1 mit 2GB RAM. Eine Vorabversion von Recalbox machte es das erste Mal für mich möglich das WLan zu benutzen. Bericht Und PCIe ist abgeschaltet im dts File. pcie-phy { compatible = "rockchip,rk3399-pcie-phy"; #phy-cells = <0x0>; rockchip,grf = <0x15>; clocks = <0x8 0x8a>; clock-names = "refclk"; resets = <0x8 0x87>; reset-names = "phy"; status = "disabled"; phandle = <0x8b>; }; pcie@f8000000 { compatible = "rockchip,rk3399-pcie"; #address-cells = <0x3>; #size-cells = <0x2>; aspm-no-l0s; clocks = <0x8 0xc5 0x8 0xc4 0x8 0x147 0x8 0xa0>; clock-names = "aclk", "aclk-perf", "hclk", "pm"; bus-range = <0x0 0x1f>; max-link-speed = <0x2>; linux,pci-domain = <0x0>; msi-map = <0x0 0x89 0x0 0x1000>; interrupts = <0x0 0x31 0x4 0x0 0x0 0x32 0x4 0x0 0x0 0x33 0x4 0x0>; interrupt-names = "sys", "legacy", "client"; #interrupt-cells = <0x1>; interrupt-map-mask = <0x0 0x0 0x0 0x7>; interrupt-map = <0x0 0x0 0x0 0x1 0x8a 0x0 0x0 0x0 0x0 0x2 0x8a 0x1 0x0 0x0 0x0 0x3 0x8a 0x2 0x0 0x0 0x0 0x4 0x8a 0x3>; phys = <0x8b>; phy-names = "pcie-phy"; ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000 0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>; reg = <0x0 0xf8000000 0x0 0x2000000 0x0 0xfd000000 0x0 0x1000000>; reg-names = "axi-base", "apb-base"; resets = <0x8 0x82 0x8 0x83 0x8 0x84 0x8 0x85 0x8 0x86 0x8 0x81 0x8 0x80>; reset-names = "core", "mgmt", "mgmt-sticky", "pipe", "pm", "pclk", "aclk"; status = "disabled"; Also bleibt weiterhin ungeklärt, ob auch beides zusammen möglich ist. Also gleichzeitig das WLan-Modul und eine PCIe Karte.
  • 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
  • 4GB Version - Out of stock

    Verschoben Archiv
    1
    +0
    0 Stimmen
    1 Beiträge
    713 Aufrufe
    Niemand hat geantwortet