Skip to content

Recover Button

Hardware
2 1 898
  • In der Version v2.0 fehlte dieser Button noch, er war einfach nicht bestückt.

    0_1532793266131_DSC_0040_ergebnis.JPG

    Wenn jemand den vermisst, zur Not kann man da was dran löten. Sollte machbar sein.

    v2.1

    0_1532793316445_DSC_0039_ergebnis.JPG

    Die Frage, was macht das Ding? Gehen wir mal auf die Suche.....

    Kamil hat auf seiner Release Seite einen Link zu u-boot recovery selection

    Kamil erklärt das so

    ayufan: introduce recovery button mode selection

    Press and hold recovery button to choose suitable boot mode.
    When given mode is selected release the button.
    Each mode exposes device over USB-OTG and can be connected via USB A-to-A cable

    1 blink: share eMMC or SD as virtual disk
    2 blinks: enter fastboot (Android's)
    3 blinks: enter RockUSB download mode
    4 blinks: enter MaskROM download mode

    Ob das so funktioniert kann ich nicht sagen, da ich nicht 100% weiß wofür das ist.

    Spekulation

    An die USB-C Buchse kann man ein USB A-to-A Kabel anschliessen, damit kann man dann mit verschiedenen Programmen auf das Board zugreifen.

    Für Entwickler vermutlich total wichtig, denke ich das es für den durchschnittlichen Anwender unwichtig ist.

  • Ich hab das mal ausprobiert.

    Den Recover Button so lange drücken, bis folgendes erscheint.

    In:    serial@ff1a0000                                                          
    Out:   serial@ff1a0000                                                          
    Err:   serial@ff1a0000                                                          
    Model: Pine64 RockPro64                                                         
    rockchip_dnl_mode = 1 mode                                                      
    rockchip_dnl_mode = 2 mode                                                      
    rockchip_dnl_mode = 3 mode                                                      
    rockchip_dnl_mode = 4 mode                                                      
    entering maskrom mode...
    

    RKFlashTool clonen

     root@thinkpad:/home/frank/test# git clone https://github.com/rockchip-linux/rkflashtool
     Klone nach 'rkflashtool' ...
     remote: Counting objects: 663, done.
     remote: Total 663 (delta 0), reused 0 (delta 0), pack-reused 663
     Empfange Objekte: 100% (663/663), 114.94 KiB | 0 bytes/s, Fertig.
     Löse Unterschiede auf: 100% (367/367), Fertig.
    

    In das Verzeichnis wechseln

    root@thinkpad:/home/frank/test# cd rkflashtool/
    

    Inhalt

    root@thinkpad:/home/frank/test/rkflashtool# ls
    doc	       Makefile    rkcrc.h	  rkflashtool.h  rkparametersblock
    examples       README	   rkflashall	  rkmisc	 rkunpack.c
    fixversion.sh  release.sh  rkflashloader  rkpad		 rkunsign
    flashuboot     rkcrc.c	   rkflashtool.c  rkparameters	 version.h
    

    RKFlashtool bauen

    root@thinkpad:/home/frank/test/rkflashtool# make
    gcc -O2 -W -Wall -I/usr/include/libusb-1.0 rkflashtool.c -o rkflashtool  -lusb-1.0
    gcc -O2 -W -Wall -I/usr/include/libusb-1.0 rkcrc.c -o rkcrc  -lusb-1.0
    gcc -O2 -W -Wall -I/usr/include/libusb-1.0 rkunpack.c -o rkunpack  -lusb-1.0
    

    Ich habe ein USB-A to USB-A Kabel vom USB-C Port des ROCKPro64 zu meinem Notebook hergestellt.

    root@thinkpad:/home/frank/test/rkflashtool# sudo ./rkflashtool v
    rkflashtool: info: rkflashtool v5.2
    rkflashtool: info: Detected RK3399...
    rkflashtool: info: interface claimed
    rkflashtool: info: MASK ROM MODE
    rkflashtool: info: chip version: -..-
    

    Ok, Verbindung steht.

    Eine Übersicht der Befehle

    root@thinkpad:/home/frank/test/rkflashtool# sudo ./rkflashtool
    rkflashtool: info: rkflashtool v5.2
    rkflashtool: fatal: usage:
    	rkflashtool b [flag]            	reboot device
    	rkflashtool l <file             	load DDR init (MASK ROM MODE)
    	rkflashtool L <file             	load USB loader (MASK ROM MODE)
    	rkflashtool v                   	read chip version
    	rkflashtool n                   	read NAND flash info
    	rkflashtool i offset nsectors >outfile 	read IDBlocks
    	rkflashtool j offset nsectors <infile  	write IDBlocks
    	rkflashtool m offset nbytes   >outfile 	read SDRAM
    	rkflashtool M offset nbytes   <infile  	write SDRAM
    	rkflashtool B krnl_addr parm_addr      	exec SDRAM
    	rkflashtool r partname >outfile 	read flash partition
    	rkflashtool w partname <infile  	write flash partition
    	rkflashtool r offset nsectors >outfile 	read flash
    	rkflashtool w offset nsectors <infile  	write flash
    	rkflashtool p >file             	fetch parameters
    	rkflashtool P <file             	write parameters
    	rkflashtool e partname          	erase flash (fill with 0xff)
    	rkflashtool e offset nsectors   	erase flash (fill with 0xff)
    
  • FrankMF FrankM hat am auf dieses Thema verwiesen
  • ROCKPro64 - Debian Bullseye Teil 3

    ROCKPro64 debian rockpro64
    1
    0 Stimmen
    1 Beiträge
    356 Aufrufe
    Niemand hat geantwortet
  • Mainline 5.4.x

    Images rockpro64
    2
    0 Stimmen
    2 Beiträge
    393 Aufrufe
    FrankMF
    Bootet bei mir weder von USB3-SSD noch von SD-Karte. USB3-SSD -> https://pastebin.com/QAS92sme SD-Karte -> https://pastebin.com/Bsr3WLJ7
  • ROCKPro64 - Das erste Mal

    Angeheftet Verschoben Hardware rockpro64
    5
    2
    1 Stimmen
    5 Beiträge
    972 Aufrufe
    FrankMF
    Ich kann heute die Fragen aller Fragen beantworten Damit ist leider die Frage immer noch unbeantwortet ob WLan und PCIe zusammen nutzbar ist!! Es geht!! Ich habe von MrFixit ein Testimage der RecalBox, benutzt das selbe Debian wie oben. Die Tage konnte man im IRC verfolgen, wie man dem Grundproblem näher kam und wohl einen Fix gebastelt hat, damit beides zusammen funktioniert. Mr.Fixit hat das in RecalBox eingebaut und ich durfte testen. # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP8000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP8000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether ac:83:f3:e6:1f:b2 brd ff:ff:ff:ff:ff:ff inet 192.168.178.27/24 brd 192.168.178.255 scope global wlan0 valid_lft forever preferred_lft forever inet6 2a02:908:1262:4680:ae83:f3ff:fee6:1fb2/64 scope global dynamic valid_lft 7145sec preferred_lft 3545sec inet6 fe80::ae83:f3ff:fee6:1fb2/64 scope link valid_lft forever preferred_lft forever # ls /mnt bin etc media recalbox sd.img test2.img boot home mnt root selinux tmp crypthome lib opt run srv usr dev lost+found proc sbin sys var # fdisk BusyBox v1.27.2 (2019-02-01 22:43:19 EST) multi-call binary. Usage: fdisk [-ul] [-C CYLINDERS] [-H HEADS] [-S SECTORS] [-b SSZ] DISK Change partition table -u Start and End are in sectors (instead of cylinders) -l Show partition table for each DISK, then exit -b 2048 (for certain MO disks) use 2048-byte sectors -C CYLINDERS Set number of cylinders/heads/sectors -H HEADS Typically 255 -S SECTORS Typically 63 # fdisk -l Disk /dev/mmcblk0: 15 GB, 15931539456 bytes, 31116288 sectors 486192 cylinders, 4 heads, 16 sectors/track Units: cylinders of 64 * 512 = 32768 bytes Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type /dev/mmcblk0p1 * 2,10,9 10,50,40 32768 163839 131072 64.0M c Win95 FAT32 (LBA) Partition 1 does not end on cylinder boundary /dev/mmcblk0p2 * 16,81,2 277,102,17 262144 4456447 4194304 2048M 83 Linux Partition 2 does not end on cylinder boundary /dev/mmcblk0p3 277,102,18 1023,254,63 4456448 31115263 26658816 12.7G 83 Linux Partition 3 does not end on cylinder boundary Disk /dev/nvme0n1: 233 GB, 250059350016 bytes, 488397168 sectors 2543735 cylinders, 12 heads, 16 sectors/track Units: cylinders of 192 * 512 = 98304 bytes Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type /dev/nvme0n1p1 1,0,1 907,11,16 2048 488397167 488395120 232G 83 Linux # Oben sieht man eine funktionierende WLan-Verbindung, das LAN-Kabel war entfernt. Unten sieht man die PCIe NVMe SSD, gemountet nach /mnt und Inhaltsausgabe. Das sollte beweisen, das der Ansatz der Lösung funktioniert. Leider kann ich nicht sagen, das es zum jetzigen Zeitpunkt stabil läuft. Ich habe einfach so Reboots, kann den Fehler aktuell aber nicht fangen. Mal sehen ob ich noch was finde. Aber, es ist ein Anfang!
  • RockPro64 - Firewall mit zwei LAN Schnittstellen!

    Verschoben ROCKPro64 howto rockpro64
    1
    0 Stimmen
    1 Beiträge
    834 Aufrufe
    Niemand hat geantwortet
  • OMV Images

    ROCKPro64 rockpro64
    3
    0 Stimmen
    3 Beiträge
    992 Aufrufe
    FrankMF
    Kurzes Update https://github.com/ayufan-rock64/linux-build/releases/download/0.8.0rc10/stretch-openmediavault-rockpro64-0.8.0rc10-1125-armhf.img.xz Startet Incl. WiFi & PCIe NVMe SSD War aber nur ein ganz kurzer Test!!
  • Mainline Kernel 4.18.0-rc3

    Linux rockpro64
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Benchmark Mainline 4.17.0-rc6

    Verschoben Archiv rockpro64
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    FrankMF
    iozone 5GT/s x2 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. 2,5GT/s x2 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: Sun Jun 17 06:54:02 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 49420 91310 102658 103415 47023 90099 102400 16 138141 202088 224648 225918 141642 202457 102400 512 335055 347517 375096 378596 364668 350005 102400 1024 345508 354999 378947 382733 375315 354783 102400 16384 306262 383155 424403 429423 428670 377476 iozone test complete.
  • stretch-minimal-rockpro64

    Verschoben Linux rockpro64
    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