Rockchip · AI & Linux Hub

Android und BSP

Rockchip Dr.G: Display-Diagnose, Frequenzen und RGA/GPU/VOP-Tests

Rockchip Dr.G: Display-Diagnose, Frequenzen und RGA/GPU/VOP-Tests

· ArmSoM Editorial · Rockchip source documentation · 10 Min. Lesezeit

Diese Anleitung folgt der zweisprachigen Quelle Dr.G V1.5 für die aufgeführten Rockchip-Plattformen Android 7.1/8.1/9.0 mit Kernel 4.4. ArmSoM-Boards und neuere BSPs wurden nicht getestet: SoC, Kernel, 32-Bit-Bibliotheken, Werkzeug und Treiber prüfen. Sämtliche Ergebnisse sind Herstellerbeispiele, keine ArmSoM-Messungen. Das zweisprachige PDF verwendet gemeinsame Terminalbilder; alle Sprachen übernehmen diese Originale, ein separater englischer Bildsatz liegt nicht vor. Widersprüche zwischen Befehlen und Beschreibung werden direkt benannt. Siehe ArmSoM-Dokumentation.

1 Hauptfunktionen

Dr.G bündelt Skripte und Anwendungen aus der Display-Diagnose: System- und Protokollerfassung, Frequenz- und Busprioritätsabfragen/-einstellungen, automatische RGA/GPU/VOP-Tests und Protokollanalyse. Nach Lesen der Anleitung lassen sich manche Probleme selbst untersuchen. Protokolle und Systemzustand verringern vorab nötige Rückfragen und Code-Synchronisation zwischen Kunden und Entwicklern.

2 Plattformabhängigkeiten

2.1 Unterstützte Plattformen

Die Quelle zielt auf Kernel 4.4. Plattformen und Android-Versionen stehen unten; Hilfebefehl:

SoC Android
RK3368 7.1, 8.1, 9.0
RK3288 7.1, 8.1, 9.0
RK3399 7.1, 8.1, 9.0
RK3328 8.1, 9.0
RK3126C 8.1, 9.0
RK3326 8.1, 9.0
dr-g -h

Hilfebefehl (PDF 6)

Hilfebefehl (PDF 6)

2.2 Android-Abhängigkeiten

Zur Plattformkompatibilität ist Dr.G eine 32-Bit-Binary, empfohlen unter /system/bin. Fehlt eine Bibliothek, etwa bei librga.so not found, die passende .so aus /vendor/lib/ nach /system/lib/ kopieren; das Push-Skript der Quelle erledigt dies automatisch.

librga-Abhängigkeitsfehler (PDF 6)

librga-Abhängigkeitsfehler (PDF 6)

2.3 Programmarchive

Archive Android
dr-g-release_for_Android_7.1_v1.5.tar.gz 7.1
dr-g-release_for_Android_8.1_v1.5.tar.gz 8.1
dr-g-release_for_Android_9.0_v1.5.tar.gz 9.0

Passendes Archiv entpacken, ADB-Verbindung und adb root, adb remount, adb shell prüfen; anschließend only_push_dr-g.bat zur Installation und Diagnose auf dem Zielboard ausführen.

Installationsskript (PDF 7)

Installationsskript (PDF 7)

3 Verwendung

3.1 Systeminformationen und Protokolle

3.1.1 Befehl

dr-g -dump-info

Erfasst manifest.xml, commit_id.xml, build.prop, anr_trace, logcat, dmesg, I/O-Prioritäten, aktuelle Frequenzen/Spannungen und Maximalfrequenzen von CPU/GPU/DDR, vop_clk_summary, Fence-Zustand, dumpsys SurfaceFlinger und Prozesse aus ps. Erzeugt /data/dr-g-file/dumpInfo.tar.

Beispiel Systeminformationen (PDF 8)

Beispiel Systeminformationen (PDF 8)

3.1.2 Skripte

Doppelklick auf push_and_pull_dr-g.bat erfasst Informationen und speichert dumpInfo.tar in einem zeitbenannten Verzeichnis im aktuellen Pfad. Nur installieren: only_push_dr-g.bat; nur Archiv abholen: only_pull_dr-g.bat.

Erfassung mit einem Schritt (PDF 9)

Erfassung mit einem Schritt (PDF 9)

3.2 Frequenzen abfragen und einstellen

3.2.1 Maximale Leistung

dr-g -sys-set perf

Setzt CPU, GPU und DDR auf Maximalfrequenz, deaktiviert die Temperaturregelung und zeigt Frequenzen zur Leistungsdiagnose. Da die Temperaturregelung abgeschaltet wird, Kühlung in kontrollierter Testumgebung prüfen.

Maximalfrequenzen (PDF 9)

Maximalfrequenzen (PDF 9)

3.2.2 Aktuelle Frequenzen

dr-g -sys-set info

Zeigt aktuelle CPU/GPU/DDR-Frequenzen und Temperaturregelungszustand zur Diagnose.

Frequenzabfrage (PDF 10)

Frequenzabfrage (PDF 10)

3.2.3 GPU-Frequenzstufen

dr-g -sys-set gpu low
dr-g -sys-set gpu mid
dr-g -sys-set gpu high

Zur Untersuchung eines GPU-Engpasses setzen die Befehle CPU und DDR auf Maximalfrequenz und wählen den niedrigen, mittleren oder hohen GPU-Tabelleneintrag zum Vergleich des Anwendungsverhaltens.

GPU niedrig (PDF 11)

GPU niedrig (PDF 11)

GPU mittel (PDF 11)

GPU mittel (PDF 11)

GPU hoch (PDF 11)

GPU hoch (PDF 11)

3.2.4 CPU-Frequenzstufen

dr-g -sys-set cpu low
dr-g -sys-set cpu mid
dr-g -sys-set cpu high

Zur Untersuchung eines CPU-Engpasses setzen die Befehle GPU und DDR auf Maximalfrequenz und wählen den niedrigen, mittleren oder hohen CPU-Tabelleneintrag zum Vergleich des Anwendungsverhaltens.

CPU niedrig (PDF 12)

CPU niedrig (PDF 12)

CPU mittel (PDF 12)

CPU mittel (PDF 12)

CPU hoch (PDF 12)

CPU hoch (PDF 12)

3.2.5 DDR-Frequenzstufen

dr-g -sys-set ddr low
dr-g -sys-set ddr mid
dr-g -sys-set ddr high

Zur Untersuchung eines DDR-Engpasses setzen die Befehle CPU und GPU auf Maximalfrequenz und wählen den niedrigen, mittleren oder hohen DDR-Tabelleneintrag zum Vergleich des Anwendungsverhaltens.

DDR niedrig (PDF 13)

DDR niedrig (PDF 13)

DDR mittel (PDF 13)

DDR mittel (PDF 13)

DDR hoch (PDF 14)

DDR hoch (PDF 14)

3.2.6 Frequenzregelung wiederherstellen

dr-g -sys-set reset

Stellt die systemseitige CPU/DDR/GPU-Frequenzregelung und Temperaturregelung wieder her.

Regelung wiederherstellen (PDF 14)

Regelung wiederherstellen (PDF 14)

3.3 Buspriorität

3.3.1 Abfrage

dr-g -io-qos get

Zeigt Busprioritäten und eine nummerierte name-Tabelle für spätere Einstellungen.

I/O-Prioritäten (PDF 15)

I/O-Prioritäten (PDF 15)

3.3.2 Einstellen

Tabelleneintrag wählen; pri_num ist 0~3. Erfolg: io_qos set SUCCESS !!!.

dr-g -io-qos set
dr-g -io-qos set 4 1
dr-g -io-qos set 1 2
dr-g -io-qos set 0 1

Die ersten Beispiele setzen [4] auf 1 und [1] auf 2. Der dritte Befehl set 0 1 widerspricht beiden Originalkommentaren „[0] auf 0 setzen“. Beides bleibt erhalten; vor Ausführung mit der Werkzeughilfe abgleichen.

I/O einstellen (PDF 16)

I/O einstellen (PDF 16)

3.4 Automatische RGA-Tests

3.4.1 Informationen

dr-g -rga info

Zeigt RGA-Version, Hardwareformate, Skalierungsfaktoren und maximale Ein-/Ausgabeauflösung.

RGA-Informationen (PDF 16)

RGA-Informationen (PDF 16)

3.4.2 Selbsttest

dr-g -rga test

Prüft Konvertierung, Skalierung, Rotation und Komposition unterstützter Formate und vergleicht CRCs mit gespeicherten Werten. Abweichungen wertet die Quelle als Hinweis auf ein RGA-Problem.

RGA-Selbsttest (PDF 17)

RGA-Selbsttest (PDF 17)

3.4.3 Effizienz

dr-g -rga perf

Berechnet anhand von DDR-Frequenz und RGA aclk theoretische Zeiten für 720p, 1080p und 4k und vergleicht sie mit Messzeiten.

RGA-Effizienz (PDF 17)

RGA-Effizienz (PDF 17)

3.4.4 Demo

Parameter wählen RGA-Funktionen; Quell- und Zieldaten liegen im data-Verzeichnis. Die Parameterfolge nach -rga demo muss zusammenhängend ohne Leerzeichen sein.

dr-g -rga demo
dr-g -rga demo sw1280sh720sf0dw1280dh720df0rt2sx0sy0dx0dy0

RGA-Quelldaten (PDF 18)

RGA-Quelldaten (PDF 18)

RGA-Zieldaten (PDF 18)

RGA-Zieldaten (PDF 18)

Parametertabellen (Originalschreibweise alpah und blit-Werte 105/405 bleiben unverändert; Zahlenbasis wird nicht angenommen):

alpah blit Formula
bd1 105 src + dst*(1-alpha)
bd2 405 src*alpha + dst*(1-alpha)
Parameter Rotation
rt1 rotate 90
rt2 rotate180
rt3 rotate270
rt4 mirrorH
rt5 mirrorV
Parameter Format
sf0 RGBA8888
sf1 RGBX8888
sf2 BGRA8888
sf3 RGB888
sf4 RGB565
sf5 NV12
sf6 NV21
sf7 YV12
sf8 YV21
sf9 NV16
sf10 NV61
sf11 YV16
sf12 YV61

Das Beispiel dreht /data/in0w1280-h720-rgba8888.bin um 180° nach /data/out0w1280-h720-rgba8888.bin. Raw-Daten zur Ansicht abholen. Der Screenshot zeigt den entsprechenden Pfad out0w1280-h720-rgba8888.bin.

RGA-Ausgabeprotokoll (PDF 19)

RGA-Ausgabeprotokoll (PDF 19)

RGA-Rotationsergebnis (PDF 20)

RGA-Rotationsergebnis (PDF 20)

3.5 Automatische GPU-Tests

3.5.1 Maximale Last

dr-g -gpu max-load
dr-g -gpu max-load 100
dr-g -gpu max-load-bg

Dauer in Sekunden anhängen: 100 bedeutet 100 Sekunden bei etwa 100% Last für Dauer- oder Systemlasttests. max-load-bg läuft im Hintergrund ohne Änderung des Vordergrundbilds; sonst wie max-load. Manche Quellzeilen trennen max-load zu max -load; anhand des zusammenhängenden Beispiels derselben Seite wieder verbunden.

GPU-Maximallast (PDF 20)

GPU-Maximallast (PDF 20)

3.5.2 Maximale Bildrate

dr-g -gpu max-fps

Die Shell zeigt die maximale GPU-Anwendungsbildrate. Die Quelle setzt sie mit der Displayfrequenz gleich und empfiehlt bei deutlicher Abweichung von 60fps eine Konfigurationsprüfung. Das ist der Testkontext der Quelle, keine allgemeine 60Hz-Vorgabe.

GPU-Maximalbildrate (PDF 21)

GPU-Maximalbildrate (PDF 21)

3.5.3 Leistung

dr-g -sys-set perf
dr-g -gpu perf

Vor dem Test CPU/DDR/GPU auf Maximalfrequenz setzen. Test- und Referenzzeit der Plattform werden angezeigt; mehr als 10% Überschreitung deutet laut Quelle auf nicht ausgeschöpfte GPU-Leistung.

GPU-Leistung (PDF 21)

GPU-Leistung (PDF 21)

3.5.4 GLES-Versionen

dr-g -gpu gles11

GLES 1.1 (PDF 22)

GLES 1.1 (PDF 22)

dr-g -gpu gles20

GLES 2.0 (PDF 22)

GLES 2.0 (PDF 22)

dr-g -gpu gles30

GLES 3.0 (PDF 22)

GLES 3.0 (PDF 22)

Die Shell gibt EGL-Informationen für GLES 1.1, 2.0 und 3.0 aus. Im gles11-Absatz steht „GLES1.0 erfolgreich“, im Widerspruch zu Überschrift/Befehl 1.1. Dies ist ein mit tatsächlicher Ausgabe zu prüfender Quellenfehler.

3.5.5 OpenCL

dr-g -cl

Die Quelle setzt dr-g –cl mit typografischem Strich; anhand des Terminalbilds zu ASCII -cl normalisiert. OpenCL test OK ! bestätigt den OpenCL-Unterstützungstest der Quelle.

OpenCL-Test (PDF 23)

OpenCL-Test (PDF 23)

3.5.6 Vulkan

dr-g -vk info

Zeigt Vulkan-Version, unterstützte Erweiterungen und Funktionen.

Vulkan-Informationen (PDF 23)

Vulkan-Informationen (PDF 23)

dr-g -vk test

Zeichnet ein Dreieck. Sichtbares Dreieck und vulkan test ok bestätigen die Treiberumgebung für diesen Test.

Vulkan-Testergebnis (PDF 23)

Vulkan-Testergebnis (PDF 23)

3.6 Automatische VOP-Tests

3.6.1 Maximale DDR-Last

dr-g -vop -c chip-type

Konfiguriert VOP und erhöht DDR-Last zur Bildausgabeprüfung unter voreingestellten Bedingungen. chip-type: rk3399, rk3326, rk3368, rk3328, rk3288, rk3128, rk3188. Diese Liste weicht von §2.1 ab und belegt keine erweiterte Plattformunterstützung.

VOP-Maximallast (PDF 24)

VOP-Maximallast (PDF 24)

3.6.2 VOP demo

Parameter konfigurieren die Ausgabe eines win_id zur Display-Diagnose. Syntax und Beispiel:

dr-g -vop -w <win_id>@<crtc_id>:<src_left>,<src_top>,<src_w>,<src_h>:<dst_left>,<dst_top>,<dst_w>,<dst_h>[#zpos][@<format>]
dr-g -vop -w 0@0:0,0,1536,2048:0,0,1536,2048#1@AR24 -f 1536x2048@AR24

VOP-Quelle (PDF 25)

VOP-Quelle (PDF 25)

VOP-Ziel (PDF 25)

VOP-Ziel (PDF 25)

3.7 Automatische Protokollanalyse

3.7.1 Aktuelle Protokolle

dr-g -log-ans

Vergleicht logcat mit vorbereiteten Fehlerregeln, warnt bei Treffern und schlägt Änderungen vor. Vorbereitete Regeln ermöglichen direkte Zeilenausgabe und verringern manuelle Suche in komplexen Protokollen.

Protokollanalyse (PDF 26)

Protokollanalyse (PDF 26)

3.7.2 XML-Regeln

log_id ist die Regelprotokoll-ID; match_str die Vergleichszeichenfolge; advice die Empfehlung.

Originale XML-Regeln (PDF 26)

Originale XML-Regeln (PDF 26)

<collection instructions="This is the rule of log analysis">
<rule>
  <log_id>1</log_id>
  <match_str>Kernel module may not have been loaded</match_str>
  <advice>此报错是由于kernel以module的形式加载mali驱动,且加载失败了,/dev/mali0节点并未被生成。建议:检查/system/lib/module下是否有该模块的.ko文件。或采用build_in的方式编译该驱动。</advice>
</rule>
<rule>
  <log_id>2</log_id>
  <match_str>Runtime and build version of gralloc private structure does not match for handle</match_str>
  <advice>Gralloc版本与预期版本对不上。建议:请同步SDK对应匹配的Gralloc版本。</advice>
</rule>
<rule>
  <log_id>3</log_id>
  <match_str>Failed to set damage region on surface</match_str>
  <advice>此报错多发生在安卓8.1系统,是hwui框架代码,在abandon之后,无返回直接报fatal导致的。可以参考redmine:189373</advice>
</rule>
<rule>
  <log_id>4</log_id>
  <match_str>beginning of crash</match_str>
  <advice>发现有Android Crash信息,可以搜索关键字:beginning of crash定位,查看堆栈</advice>
</rule>
</collection>

Screenshot-XML als kopierbarer Text, chinesische advice-Felder bleiben original. Empfehlungen: Mali-Modul prüfen oder fest einbauen; SDK-passendes Gralloc synchronisieren; Android8.1-hwui-fatal nach abandon siehe redmine:189373; beginning of crash für Stack suchen.

Dieses Thema entdecken → · Lernpfade →