Skip to content

Der 3. ROCKPro64

ROCKPro64
  • Die Chinesen haben mal wieder ein Paket für mich auf den Weg gebracht. Der dritte ROCKPro64 🙂

    Ich kann nichts dafür, die beiden anderen sind mit Aufgaben belegt, so das ich die nicht immer runterfahren möchte. Karte rein und raus usw. nicht so gut auf Dauer. So blieb mir nichts anderes über, als noch einen zu besorgen.

    Den werde ich dann wieder aktiv zum Testen und Ausprobieren benutzen. Denke, der wird Montag, spätestens Dienstag, da sein.

  • 0_1540018046309_IMG_20181020_083146_ergebnis.jpg

    Da ist er. Erster Unterschied zu meinem anderen v2.1 ist das Datum. Beim Letzten stand

    2018_06_06
    

    beim Neuen steht

    2018-07_02
    

    Mal schauen was das macht, ich habe da einen Fehlerbericht im Hinterkopf...

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

    0_1540029624802_IMG_20181020_115348_ergebnis.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.

    0_1540029756582_IMG_20181020_115425_ergebnis.jpg

    0_1540029767082_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.

  • Serielle Konsole UART2 (2)

    Angeheftet Hardware
    1
    0 Stimmen
    1 Beiträge
    220 Aufrufe
    Niemand hat geantwortet
  • Ayufan Release 0.7.13 (WiFi)

    ROCKPro64
    6
    0 Stimmen
    6 Beiträge
    475 Aufrufe
    FrankMF

    Für Bluetooth scheint noch was zu fehlen

    root@rockpro64:/mnt/home/rock64# service bluetooth status ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-04-06 17:36:54 UTC; 2min 11s ago Docs: man:bluetoothd(8) Main PID: 2421 (bluetoothd) Status: "Running" Tasks: 1 (limit: 2380) CGroup: /system.slice/bluetooth.service └─2421 /usr/lib/bluetooth/bluetoothd Apr 06 17:36:54 rockpro64 systemd[1]: Starting Bluetooth service... Apr 06 17:36:54 rockpro64 bluetoothd[2421]: Bluetooth daemon 5.48 Apr 06 17:36:54 rockpro64 systemd[1]: Started Bluetooth service. Apr 06 17:36:54 rockpro64 bluetoothd[2421]: Starting SDP server Apr 06 17:36:54 rockpro64 bluetoothd[2421]: kernel lacks bnep-protocol support Apr 06 17:36:54 rockpro64 bluetoothd[2421]: System does not support network plugin Apr 06 17:36:54 rockpro64 bluetoothd[2421]: Bluetooth management interface 1.10 initialized
  • Video PCIe SATA Karte

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    511 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - RP64.GPIO

    Angeheftet Verschoben Hardware
    6
    0 Stimmen
    6 Beiträge
    6k Aufrufe
    FrankMF

    Hallo zusammen,

    da ich weiß das dieser Artikel recht beliebt ist, wollen wir den heute mal aktualisieren. Vieles aus den vorherigen Beiträgen passt noch. Es gibt aber kleine Anpassungen.

    Hardware ROCKPro64v21. 2GB RAM Software Kamils Release 0.10.9 Linux rockpro64 5.6.0-1132-ayufan-g81043e6e109a #ayufan SMP Tue Apr 7 10:07:35 UTC 2020 aarch64 GNU/Linux Installation apt install python

    Danach laden wir das Projekt

    git clone https://github.com/Leapo/Rock64-R64.GPIO

    PIN Nummern anpassen

    cd Rock64-R64.GPIO/R64 nano _GPIO.py

    Datei ergänzen

    # Define GPIO arrays #ROCK_valid_channels = [27, 32, 33, 34, 35, 36, 37, 38, 64, 65, 67, 68, 69, 76, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 96, 97, 98, 100, 101, 102, 103, 104] #BOARD_to_ROCK = [0, 0, 0, 89, 0, 88, 0, 0, 64, 0, 65, 0, 67, 0, 0, 100, 101, 0, 102, 97, 0, 98, 103, 96, 104, 0, 76, 68, 69, 0, 0, 0, 38, 32, 0, 33, 37, 34, 36, 0, 35, 0, 0, 81, 82, 87, 83, 0, 0, 80, 79, 85, 84, 27, 86, 0, 0, 0, 0, 0, 0, 89, 88] #BCM_to_ROCK = [68, 69, 89, 88, 81, 87, 83, 76, 104, 98, 97, 96, 38, 32, 64, 65, 37, 80, 67, 33, 36, 35, 100, 101, 102, 103, 34, 82] ROCK_valid_channels = [52,53,152,54,50,33,48,39,41,43,155,156,125,122,121,148,147,120,36,149,153,42,45,44,124,126,123,127] BOARD_to_ROCK = [0,0,0,52,0,53,0,152,148,0,147,54,120,50,0,33,36,0,149,48,0,39,153,41,42,0,45,43,44,155,0,156,124,125,0,122,126,121,123,0,127] BCM_to_ROCK = [43,44,52,53,152,155,156,45,42,39,48,41,124,125,148,147,124,54,120,122,123,127,33,36,149,153,121,50]

    Abspeichern.

    Datei test.py anlegen

    nano test.py

    Inhalt

    #!/usr/bin/env python # Frank Mankel, 2018, LGPLv3 License # Rock 64 GPIO Library for Python # Thanks Allison! Thanks smartdave! import R64.GPIO as GPIO from time import sleep print("Output Test R64.GPIO Module...") # Set Variables var_gpio_out = 156 var_gpio_in = 155 # GPIO Setup GPIO.setwarnings(True) GPIO.setmode(GPIO.ROCK) GPIO.setup(var_gpio_out, GPIO.OUT, initial=GPIO.HIGH) # Set up GPIO as an output, with an initial state of HIGH GPIO.setup(var_gpio_in, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set up GPIO as an input, pullup enabled # Test Output print("") print("Testing GPIO Input/Output:") while True: var_gpio_state_in = GPIO.input(var_gpio_in) var_gpio_state = GPIO.input(var_gpio_out) # Return State of GPIO if var_gpio_state == 0 and var_gpio_state_in == 1: GPIO.output(var_gpio_out,GPIO.HIGH) # Set GPIO to HIGH print("Input State: " + str(var_gpio_state_in)) # Print results print("Output State IF : " + str(var_gpio_state)) # Print results else: GPIO.output(var_gpio_out,GPIO.LOW) # Set GPIO to LOW print("Input State: " + str(var_gpio_state_in)) # Print results print("Output State ELSE: " + str(var_gpio_state)) # Print results sleep(0.5) exit() Beispiel

    Bild Text

    Wenn der Taster im Bild betätigt wird, soll die LED blinken.

    Wir benutzen folgende Ein- Augänge des ROCKPro64.

    # Set Variables var_gpio_out = 156 var_gpio_in = 155

    Das heißt:

    an Pin 1 (3,3V) kommt eine Strippe des Tasters an Pin 29 (Input) kommt eine Strippe des Tasters an Pin 31 (Output) kommt der Plus-Pol der LED an Pin 39 (GND) kommt der Minus-Pol der LED

    Somit wird auf den Eingang (Pin 29) bei Betätigung des Tasters 3,3 Volt angelegt. Damit wird dann der Eingang als High (1) erkannt. Die LED wird über den Ausgang (Pin 31) gesteuert.

    Starten kann man das Script mit

    python test.py

  • Bionic-LXDE

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    499 Aufrufe
    Niemand hat geantwortet
  • Lokale Einstellungen

    Verschoben ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    563 Aufrufe
    Niemand hat geantwortet
  • Links

    Angeheftet Linux
    1
    0 Stimmen
    1 Beiträge
    771 Aufrufe
    Niemand hat geantwortet
  • Interessante Links

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    640 Aufrufe
    Niemand hat geantwortet