Skip to content

SATA Karte Marvell 88SE9230 Chipsatz

Angeheftet Hardware
  • Leider sind beim Stress Testen des Controllers (kopieren von 500GB vom SW-RAID1 parallel auf beide SSDs)
    wiederholt folgende Fehler in dmesg aufgetaucht:

    [177554.379675] ata3.00: exception Emask 0x0 SAct 0x1f000000 SErr 0x0 action 0x6 frozen
    [177554.382198] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.384513] ata3.00: cmd 61/08:c0:00:09:80/00:00:16:00:00/40 tag 24 ncq dma 4096 out
                             res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.389434] ata3.00: status: { DRDY }
    [177554.391423] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.393559] ata3.00: cmd 61/10:c8:10:09:81/00:00:16:00:00/40 tag 25 ncq dma 8192 out
                             res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.398530] ata3.00: status: { DRDY }
    [177554.400704] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.402878] ata3.00: cmd 61/08:d0:38:45:86/00:00:16:00:00/40 tag 26 ncq dma 4096 out
                             res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.407762] ata3.00: status: { DRDY }
    [177554.409759] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.411909] ata3.00: cmd 61/08:d8:b8:08:00/00:00:00:00:00/40 tag 27 ncq dma 4096 out
                             res 40/00:00:00:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.416582] ata3.00: status: { DRDY }
    [177554.418559] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.420735] ata3.00: cmd 61/28:e0:38:08:00/00:00:0b:00:00/40 tag 28 ncq dma 20480 out
                             res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.425796] ata3.00: status: { DRDY }
    [177554.428043] ata3: hard resetting link
    [177554.748386] ata3: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
    [177554.752956] ata3.00: configured for UDMA/133
    [177554.755160] ata3: EH complete
    [177677.262098] ata3.00: NCQ disabled due to excessive errors
    

    Der Kopierprozess auf die jeweilige SSD welche dann resetet stockt dann einige Sekunden und wird dann fortgesetzt. Dies passiert bisher nur bei den SSDs und nicht parallel.
    Die Lesegeschwindigkeit vom RAID1 sind meiner Meinung nach gut und begrenzt natürlich die Schreibgeschwindigkeiten auf die SSDs:

    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.47    0.00   27.39   26.88    0.00   45.26
    
    Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
    mtdblock0         0.00         0.00         0.00          0          0
    mtdblock1         0.00         0.00         0.00          0          0
    mtdblock2         0.00         0.00         0.00          0          0
    mmcblk1          16.40         0.06         0.00          0          0
    mmcblk1boot1      0.00         0.00         0.00          0          0
    mmcblk1boot0      0.00         0.00         0.00          0          0
    mmcblk0           0.00         0.00         0.00          0          0
    sdc             197.40         0.00       101.42          0        507
    sdd             467.60       116.38         0.01        581          0
    sdb             476.60       118.60         0.01        592          0
    sda             345.60         0.00       116.34          0        581
    md0             942.40       235.03         0.00       1175          0
    

    Viele Grüße

  • Da ich nun etwas neugierig geworden bin auf die Karte, habe ich mir diese mal besorgt.

    IMG_20190201_150932_ergebnis.jpg

    Hier mal der Vergleich mit der PCIe-SATA Karte, die von Pine64 vertrieben wird. (Pine64-Karte ist links im Bild)

    IMG_20190201_151325_ergebnis.jpg

    Die 9230 hat vier SATA-Anschlüsse. Außerdem hat die Karte zwei Stiftleisten, wo man was anschließen kann. Dazu später mehr.

    Als erstes teste ich einfach mal meine vorhandene NAS-Installation, also alte Karte raus, die Neue rein und neustarten.

    System

    rock64@rockpro64v_2_1:~$ uname -a
    Linux rockpro64v_2_1 4.20.0-1083-ayufan-g686e1f1aa461 #ayufan SMP PREEMPT Sun Dec 30 13:42:26 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Nachsehen, ob der Controller erkannt wird.

    lspci

    rock64@rockpro64v_2_1:~$ sudo lspci -vvv
    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 255
    	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: 0000000000000000  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 256 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 Disabled; RCB 128 bytes Disabled- CommClk-
    			ExtSynch- ClockPM- AutWidDis- BWInt+ AutBWInt+
    		LnkSta:	Speed 5GT/s, Width x2, 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
    
    01:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9230 PCIe SATA 6Gb/s Controller (rev 11) (prog-if 01 [AHCI 1.0])
    	Subsystem: Marvell Technology Group Ltd. 88SE9230 PCIe SATA 6Gb/s Controller
    	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-
    	Interrupt: pin A routed to IRQ 230
    	Region 0: I/O ports at 0000
    	Region 1: I/O ports at 0000
    	Region 2: I/O ports at 0000
    	Region 3: I/O ports at 0000
    	Region 4: I/O ports at 0000
    	Region 5: Memory at fa010000 (32-bit, non-prefetchable) [size=2K]
    	Expansion ROM at fa000000 [disabled] [size=64K]
    	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/1 Maskable- 64bit-
    		Address: fee30040  Data: 0000
    	Capabilities: [70] Express (v2) Legacy Endpoint, MSI 00
    		DevCap:	MaxPayload 512 bytes, PhantFunc 0, Latency L0s <1us, L1 <8us
    			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
    		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
    			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
    			MaxPayload 256 bytes, MaxReadReq 512 bytes
    		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
    		LnkCap:	Port #0, Speed 5GT/s, Width x2, ASPM L0s L1, Exit Latency L0s <512ns, L1 <64us
    			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
    		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
    			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
    		LnkSta:	Speed 5GT/s, Width x2, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
    		DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
    		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
    		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: [e0] SATA HBA v0.0 BAR4 Offset=00000004
    	Capabilities: [100 v1] 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-
    

    Ok, der Controller wird einwandfrei erkannt. Eine Suche nach den Festplatten war dann leider erfolglos. Diese wurden nicht erkannt. Aber dafür gibt es ja im Internet viele Menschen, die an einer gemeinsamen Sache arbeiten und @flockeee hat die Lösung ja in diesem Thread schon gepostet. Danke dafür!!

    /etc/udev/rules.d

    Wir erstellen in /etc/udev/rules.d eine Datei mit dem Namen 99-9230.rules. Die 99 besagt aus, das diese Datei als letztes ausgeführt wird (wenn ich mich nicht irre), das 9230 kann man frei wählen.

    cd /etc/udev/rules.d
    sudo nano 99-9230.rules
    

    Der Inhalt der Datei

    ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x1b4b", ATTR{device}=="0x9230", RUN+="/bin/bash -c 'echo %k > /sys/bus/pci/drivers/ahci/bind'"
    

    Dazu kann ich leider nicht so viel schreiben. Zum Nachlesen -> udev

    Danach Neustarten!

    HDD Check

    Danach findet man die HDD's 🙂

    rock64@rockpro64v_2_1:/etc/udev/rules.d$ lsblk -S
    NAME HCTL       TYPE VENDOR   MODEL             REV TRAN
    sda  0:0:0:0    disk ATA      ST2000LM015-2E81 SDM1 sata
    sdb  2:0:0:0    disk ATA      ST2000LM015-2E81 SDM1 sata
    

    Mit fdisk -l

    Disk /dev/sda: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: gpt
    Disk identifier: ECA86F86-787E-483F-BD79-DC980BCA9447
    
    Device     Start        End    Sectors  Size Type
    /dev/sda1   2048 3907029134 3907027087  1,8T Linux filesystem
    
    
    Disk /dev/sdb: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: gpt
    Disk identifier: 1978A3C9-E914-41FB-8788-5518DBB77B2F
    
    Device     Start        End    Sectors  Size Type
    /dev/sdb1   2048 3907029134 3907027087  1,8T Linux filesystem
    

    Ok, alles da. Dann rufe ich mal mein Script auf und hänge die verschlüsselten Platten als RAID1 ein.

    Fertig!

    Kontrolle

    rock64@rockpro64v_2_1:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            980M     0  980M   0% /dev
    tmpfs           199M  640K  198M   1% /run
    /dev/mmcblk0p7   29G   15G   13G  55% /
    tmpfs           992M     0  992M   0% /dev/shm
    tmpfs           5,0M     0  5,0M   0% /run/lock
    tmpfs           992M     0  992M   0% /sys/fs/cgroup
    /dev/mmcblk0p6  112M  4,0K  112M   1% /boot/efi
    tmpfs           199M     0  199M   0% /run/user/1000
    /dev/md0        1,8T  645G  1,1T  38% /mnt/raid
    

    Status RAID1

    rock64@rockpro64v_2_1:~$ cat /proc/mdstat 
    Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
    md0 : active raid1 dm-1[2] dm-0[1]
          1953379392 blocks super 1.2 [2/2] [UU]
          bitmap: 0/15 pages [0KB], 65536KB chunk
    
    unused devices: <none>
    

    So weit sieht alles gut aus, dann machen wir mal was Stress! 🙂

    Steckanschlüsse

    IMG_20190201_155415_ergebnis.jpg

    Die blaue LED ist dauernd an und fängt bei Schreib-/Lesezugriffen an zu blinken. Was der andere Anschluss macht, habe ich noch nicht raus. Beide Pfostenstecker sind für PWR LED. Siehe -> Klick Ich habe nur an einem Pfostenstecker die LED zum Leuchten bekommen (siehe Bild).

    Fazit

    Danke @flockeee , ich halte Dich auf dem Laufenden was die Stabilität angeht. Ich hoffe, das ich jetzt wieder ein stabiles NAS habe. Ich bin gespannt 😉

    Zum Schluß noch die Ausgabe von dmesg

  • Erster Stresstest erfolgreich. 🙂

    Hardware

    • ROCKPro64 v2.1 2GB RAM
    • SD-Karte (als System)
    • PCIe SATA-Karte 88SE9230
    • 2 * 2TB HDD's als RAID1
    • 1 * 1TB HDD (USB3)

    Software

    rock64@rockpro64v_2_1:~$ uname -a
    Linux rockpro64v_2_1 4.20.0-1083-ayufan-g686e1f1aa461 #ayufan SMP PREEMPT Sun Dec 30 13:42:26 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Speedtest USB3-HDD

     rock64@rockpro64v_2_1:/media$ sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync
     4096+0 records in
     4096+0 records out
     4294967296 bytes (4,3 GB, 4,0 GiB) copied, 44,7297 s, 96,0 MB/s
    

    Die HDD hat ein btrfs Filesystem

    rock64@rockpro64v_2_1:~$ sudo blkid /dev/sdc1
    /dev/sdc1: LABEL="1TB" UUID="99950e1f-5637-4cb8-9985-e9deea6c8f96" UUID_SUB="48ae2955-33d1-46a6-9067-afd65a04de2b" TYPE="btrfs" PARTUUID="b9aa5cfb-01"
    

    Backup Job

    Die Aufgabe ist es, mein RAID1 mittels Restic auf die angeschlossene USB HDD zu sichern. Also etwas Stress für den ROCKPro64, da die Daten alle verschlüsselt werden. Und lesender Stress auf das RAID1.

    rock64@rockpro64v_2_1:~$ sudo ./backup.sh 
    open repository
    repository bad662c2 opened successfully, password is correct
    created new cache in /home/rock64/.cache/restic
    found 1 old cache directories in /home/rock64/.cache/restic, pass --cleanup-cache to remove them
    
    Files:       558914 new,     0 changed,     0 unmodified
    Dirs:            1 new,     0 changed,     0 unmodified
    Added to the repo: 285.754 GiB
    
    processed 558914 files, 648.243 GiB in 3:17:41
    snapshot 19c4ea75 saved
    

    DMESG

    pastebin

    Fazit

    Der Lesetest war erfolgreich, keine Probleme festgestellt. Das die HDD am USB3 ein btrfs Filesystem hat ist Zufall, das ist mir erst hinterher aufgefallen. Meine früheren Erfahrungen mit btrfs auf einem ROCKPro64 waren nicht so positiv. Produktiv würde ich eher ext4 einsetzen.

    Als nächstes brauchen wir mal richtig Stress beim Schreiben auf das RAID1 😉

  • Alles so wie oben, nun der Schreibtest.

    Job

    Wir ziehen mal von einem anderen NAS ein paar Daten

    sshpass -p "password" rsync -vraze 'ssh' --exclude-from "excludes.txt" root@192.168.3.243:/mnt/nas/ /mnt/raid/write_test/
    

    Ergebnis

    sent 909,539 bytes  received 208,162,189,243 bytes  20,487,485.73 bytes/sec
    total size is 222,765,913,987  speedup is 1.07
    

    DMESG

    Kein besonderer Eintrag, alles sauber.

    Fazit

    Scheint so, als wenn man mit dieser PCIe SATA-Karte die bessere Lösung, zu der preiswerten Pine64-Karte hat. Evt. sind auch nur die Treiber der Marvell Karte besser. Im Moment, von mir eine Kaufempfehlung!

  • @flockeee sagte in SATA Karte Marvell 88SE9230 Chipsatz:

    Leider sind beim Stress Testen des Controllers (kopieren von 500GB vom SW-RAID1 parallel auf beide SSDs)
    wiederholt folgende Fehler in dmesg aufgetaucht:

    [177554.379675] ata3.00: exception Emask 0x0 SAct 0x1f000000 SErr 0x0 action 0x6 frozen
    [177554.382198] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.384513] ata3.00: cmd 61/08:c0:00:09:80/00:00:16:00:00/40 tag 24 ncq dma 4096 out
                             res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.389434] ata3.00: status: { DRDY }
    [177554.391423] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.393559] ata3.00: cmd 61/10:c8:10:09:81/00:00:16:00:00/40 tag 25 ncq dma 8192 out
                             res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.398530] ata3.00: status: { DRDY }
    [177554.400704] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.402878] ata3.00: cmd 61/08:d0:38:45:86/00:00:16:00:00/40 tag 26 ncq dma 4096 out
                             res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.407762] ata3.00: status: { DRDY }
    [177554.409759] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.411909] ata3.00: cmd 61/08:d8:b8:08:00/00:00:00:00:00/40 tag 27 ncq dma 4096 out
                             res 40/00:00:00:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.416582] ata3.00: status: { DRDY }
    [177554.418559] ata3.00: failed command: WRITE FPDMA QUEUED
    [177554.420735] ata3.00: cmd 61/28:e0:38:08:00/00:00:0b:00:00/40 tag 28 ncq dma 20480 out
                             res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
    [177554.425796] ata3.00: status: { DRDY }
    [177554.428043] ata3: hard resetting link
    [177554.748386] ata3: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
    [177554.752956] ata3.00: configured for UDMA/133
    [177554.755160] ata3: EH complete
    [177677.262098] ata3.00: NCQ disabled due to excessive errors
    

    Der Kopierprozess auf die jeweilige SSD welche dann resetet stockt dann einige Sekunden und wird dann fortgesetzt. >Dies passiert bisher nur bei den SSDs und nicht parallel.
    ...

    Ich habe oben genannte Probleme mit einem Firmwareupdate* des 88SE9230 in den Griff bekommen. Ein erneuter Stresstest produziert keine der obengenannten Fehlermeldungen mehr bei gleichem Testmuster.

    Zum Flashen des Controllers bin ich folgendermaßen vorgegangen:

    1. Sata Controller (hier: DeLOCK 89395) in ein x64/x86 system stecken
    2. Bootbaren USB Stick mit FreeDos präparieren und Dateien aus obengenanntem Archiv ins Hauptverzeichnis legen
    3. Vom USB Stick ins FreeDos booten
    4. In der Kommandozeile "go.bat -y" ausführen
    5. Warten bis der Flash vollständig ist
    6. Neustart

    ACHTUNG: DIESE METHODE BEINHALTET KEIN (FUNKTIONIERENDES) BACKUP DER VORHANDENEN FIRMWARE DES CONTROLLERS! FLASHEN AUF EIGENES RISIKO!

    Ich habe zuerst die allerneuste Version 1.0.0.1028 bios + 2.3.0.1078 fw geflasht. Mit dieser Version gab es Fehlermeldungen in dmesg über den controller init und die angeschlossenen Platten wurden nicht angezeigt. Ein Downgrade auf obengenannte Version löste das Problem.

    Viele Grüße,
    Florian

  • Als kleine Ergänzung.

    @flockeee benutzt 4 Festplatten an seiner Karte 2 * HDD (SW-Raid) & 2 * SSD, ich benutze nur 2 * HDD als RAID1. Bei seinem Stresstest werden wohl alle 4 Platten gleichzeitig genutzt, was wohl zu den Fehlern führt mit der alten Firmware Version.

    Ich konnte mit meiner Konfiguration, bis jetzt, keine Fehler feststellen.

    Danke für den konstruktiven Beitrag. Vielleicht wage ich mich da auch mal ran.

    FreeDOS -> http://www.freedos.org/download/

  • Kurz als Hinweis, Kernel 5.0.0 crasht bei mir.

    Das oben geschriebene muss ich revidieren. Heute nochmal in Ruhe getestet - funktioniert!!

    rock64@rp64v_2_1_NAS:~$ uname -a
    Linux rp64v_2_1_NAS 5.0.0-1101-ayufan-g41eeb7cd789e #ayufan SMP PREEMPT Fri Mar 8 22:14:59 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
    
  • Der LAN-Fix im 1011er bringt ganz gute Raten. Lesend, ein par Filme kopieren.

    bfd247ba-5e1b-424d-affb-4f682ebc6f54-grafik.png

  • Mal kurz was an Infos vom heutigen Tag aus dem IRC.

    Ein User(Linu) hatte dort massive Probleme mit der SATA-Karte, konnte aber schon nicht vernünftig booten. 4.4er Kernel ging, alle anderen Kernel verursachten Probleme.

    Der User bootete von der eMMC-Karte! Das Bootproblem lies sich mit folgendem Befehl beheben

    mmc_cmdqueue=off
    

    Danke an den User nuumio für den Tipp.

    Die SATA-Karte funktioniert aber nur mit einem Mainline-Kernel vom Kamil. Nix neues für uns 😉

    Und wieder ein glücklicher ROCKPro64 User mit NAS 🙂

  • Heute mal mit dem neuen Release 0.10.x von Kamil testen. u-boot im SPI!

    Mit pci=nomsi geht es nicht. Die Karte wird zwar erkannt, aber keine angeschlossenen Laufwerke.

    Mit

    cd /etc/udev/rules.d
    

    dann

    nano 98-sata.rules
    

    und

    ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x1b4b", ATTR{device}=="0x9230", RUN+="/bin/bash -c 'echo %k > /sys/bus/pci/drivers/ahci/bind'"
    

    kann ich die Platte sehen.

    root@rockpro64:~# blkid
    /dev/sda1: PARTLABEL="loader1" PARTUUID="37466429-e4a4-495c-b9a1-3f74625a3cae"
    /dev/sda2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="ABCD-FC7D" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="72e36967-4050-4bb3-8f8f-bf6755c38f28"
    /dev/sda3: LABEL="linux-boot" UUID="8e289a3e-0f9b-4da1-a147-51e03390637c" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="fe944fd2-3e42-4202-8a95-656e9bdb4be6"
    /dev/sda4: LABEL="linux-root" UUID="3e9513c6-dfd1-48c9-bee2-04bb5a153056" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="d2d1dd88-030d-4f74-998f-7c9ce7d385d0"
    /dev/sdb1: PARTLABEL="loader1" PARTUUID="615d1c43-7774-43eb-b31f-b586ed7c8af4"
    /dev/sdb2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="E616-9C0A" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="8b62024d-dd94-4022-a43f-dc91766cd611"
    /dev/sdb3: LABEL="linux-boot" UUID="d1a97607-270c-494b-a360-9231b52fd7ef" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="e1c825e9-60f1-479d-9ab4-0a853a5da9f2"
    /dev/sdb4: LABEL="linux-root" UUID="1ada358f-1688-4557-ae4e-2942db99a0ff" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="e07545eb-3cf2-4814-8985-728554cd20ae"
    

    Aber von der Karte wird nicht gebootet 😞

  • Ok, es gibt noch eine andere Möglichkeit.

    Kamil hat mir noch ein wenig geholfen. Mit folgender Änderung werden die Platten gefunden.

    hmm, I had to add /etc/default/extlinuxlibahci.skip_host_reset=1

    Sieht dann so aus.

    # Configure timeout to choose the kernel
    # TIMEOUT="10"
    
    # Configure default kernel to boot: check all kernels in `/boot/extlinux/extlinux.conf`
    # DEFAULT="kernel-4.4.126-rockchip-ayufan-253"
    
    # Configure additional kernel configuration options
    APPEND="$APPEND root=LABEL=linux-root rootwait rootfstype=ext4 libahci.skip_host_reset=1"
    

    Danach waren die Platten zu sehen.

    root@rockpro64:/tmp/etc/default# blkid
    /dev/sda2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="ABCD-FC7D" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="72e36967-4050-4bb3-8f8f-bf6755c38f28"
    /dev/sda3: LABEL="linux-boot" UUID="8e289a3e-0f9b-4da1-a147-51e03390637c" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="fe944fd2-3e42-4202-8a95-656e9bdb4be6"
    /dev/sda4: LABEL="linux-root" UUID="3e9513c6-dfd1-48c9-bee2-04bb5a153056" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="d2d1dd88-030d-4f74-998f-7c9ce7d385d0"
    /dev/sdb2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="56C9-F745" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="919c8f73-5f25-4a01-9072-3a5ed9a88ff2"
    /dev/sdb3: LABEL="linux-boot" UUID="23c19647-f4a1-4197-a877-f1bb03456bef" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="093d0cc0-d122-4dce-aeb5-4e266b4b7d9d"
    /dev/sdb4: LABEL="linux-root" UUID="f1c74331-8318-4ee8-a4f7-f0c169fb9944" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="964ab457-58d5-40c4-bb02-dfd37bd2f0da"
    /dev/sda1: PARTLABEL="loader1" PARTUUID="37466429-e4a4-495c-b9a1-3f74625a3cae"
    /dev/sdb1: PARTLABEL="loader1" PARTUUID="33f692b3-54cb-4a37-b602-21a2baf32fa0"
    

    Aber auch hiermit ist ein Boot von der SATA Platte nicht möglich.

    Ich möchte hier noch was vom kamil zitieren.

    (11:44:09) ayufanWithPM: will look later, but this controller is tricky, also on x86 as well
    (11:44:16) ayufanWithPM: jms585 seems to be significantly more stable

    Evt. bekommt er das gefixt 😉

  • H.265/x265 dekodiert und wiedergegeben (4K Video)

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    434 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

  • Ubuntu Bionic - Namen der Interfaces umstellen

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    569 Aufrufe
    Niemand hat geantwortet
  • Recover Button

    Hardware
    2
    0 Stimmen
    2 Beiträge
    829 Aufrufe
    FrankMF

    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)
  • Image 0.7.8 - Latest release

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    543 Aufrufe
    Niemand hat geantwortet
  • Android - Youtube

    ROCKPro64
    2
    0 Stimmen
    2 Beiträge
    794 Aufrufe
    FrankMF

    0_1526915377060_Android_Home.jpg

  • Schaltpläne veröffentlicht!

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    976 Aufrufe
    Niemand hat geantwortet
  • 2GB Version - Out of stock

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