2013-06-20 9 views
21

Ich habe mehrere der Spuren Tags ausgewählt, und wenn ich die Spur (von DDMS) laufen bekomme ich folgende Ausgabe:Android DDMS v22.0.1 keinen systrace mit Droid Razor erzeugen 4.1.2

Unexpected error while collecting system trace. Unable to find trace start marker 'TRACE:': 
error opening /sys/kernel/debug/tracing/options/overwrite: 
No such file or directory (2) 

error openi (schneidet den Fehler hier ab)

tatsächlich gibt es keine Debug-Datei im Kernel-Verzeichnis, aber welcher Mechanismus wird den notwendigen Pfad generieren?

+1

Doppelte von http://stackoverflow.com/questions/17207841/running-android-systrace-on-device? – fadden

+1

Haben Sie dieses Problem jemals gelöst? Ich habe das gleiche Problem auf meinem Nexus 10. –

+1

@jchristof Laufen Sie auf einem physischen Gerät oder Emulator? –

Antwort

6

Es sieht so aus, als ob auf Ihrem Handy ein Boot-Image (Kernel-Image) läuft, das Systrace nicht unterstützt.

"Fehler beim Öffnen/sys/kernel/debug/Tracing/Optionen/überschreiben: Keine solche Datei oder ein Verzeichnis (2)"

Diese Fehlermeldung bedeutet adb-Daemon (die adb Modul auf Geräteseite ausgeführt wird) konnte nicht Finde/sys/kernel/debug/tracing/options/überschreibe das Dateisystem deines Geräts. Systrace funktioniert über adb und kommuniziert mit dem Kernel über sysfs-Knoten unter/sys/kernel/debug/tracing. Wenn diese Knoten aus irgendeinem Grund nicht auf Ihrem Telefon verfügbar sind, funktioniert Systrace nicht.

So sollten Sie eine Shell auf Ihrem Gerät mit:

adb shell

Dann wechseln Sie zu bestätigen, ob/sys überhaupt existiert und ob/sys/kernel/debug/Tracing vorhanden ist.

Wenn sie dort sind, was äußerst unwahrscheinlich ist, müssen Sie systrace.py debuggen, um herauszufinden, wie kommt Systrece denken, die Knoten waren nicht da. Andernfalls müssen Sie ein anderes Boot-Image mit systrace-Unterstützung flashen, da sysfs vom Kernel (meistens durch Konfigurationen zur Kompilierzeit) und init.rc gesteuert wird, die beide Teil des Boot-Images sind.

Das Blinken eines anderen Boot-Images kann das Entriegeln/Rooten des Geräts beinhalten. Sie müssen wahrscheinlich zu Fan-Seiten wie xdadeveloper für Informationen und Bild gehen. Eine andere Möglichkeit ist, die Quelle des Kernels für Ihr Gerät herunterzuladen, den Kernel zu kompilieren und das Boot-Image selbst zu erstellen. Linux steht unter GPL, daher ist der Hersteller Ihres Geräts verpflichtet, den Quellcode des von ihnen verwendeten spezialisierten Kernels freizugeben.

-Nam http://www.willpromo.com

+0

Nur bestätigt, dass alle Ordner vorhanden sind .. Noch Systrace hat ein Problem, Bericht wie beschrieben zu generieren. Android M Vorschau 2 hier .. – Ewoks

1

Möglicherweise müssen Sie das Kernel-Image (boot.img) etwas ändern. Die folgenden Arbeiten finden für mich, nur zu Ihrer Information.

  1. offene Klemme und geben ein: $adb shell
  2. (1) $su (2) $mount -t debugfs none /sys/kernel/debug. Jetzt sollten Sie in der Lage sein, viele Verzeichnisse unter/sys/kernel/debug/zu sehen. (Sie können in/sys/kernel/debug einsteigen, um dies zu bestätigen)
  3. Geben Sie ein: $dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=/sdcard/boot.img, um das boot.img Kernel-Image von Ihrem Gerät zu generieren.
  4. Verwenden Sie AndroidImageKitchen, um das boot.img zu entpacken und das default.prop im Ramdisk-Ordner zu finden. Ändern Sie dann ro.debuggable=0 in . Packe die boot.img neu und starte sie auf deinem Gerät.
  5. Sobald das Gerät booten, unter Terminal, geben Sie ein: $adb root und Nachricht wie: $restarting adbd as root kann Pop-up. Trennen Sie den USB und verbinden Sie erneut.
  6. CD in den Systrace-Ordner, e.G. ~/androidSDK/platform-tools/systrace und verwenden: python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
  7. Jetzt können Sie Ihre eigenen Systrace-Dateien generieren.