2013-06-20 25 views
21

ho selezionato alcuni dei tag di traccia e quando ho eseguito la traccia (da DDMS) ottengo il seguente output:Android DDMS v22.0.1 in grado di generare uno systrace utilizzando Droid Rasoio 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 (taglia qui l'errore)

effettivamente non c'è alcun file di debug nella directory del kernel, ma quale meccanismo genererà il percorso necessario?

+1

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

+1

Hai mai risolto questo problema? Sto riscontrando lo stesso problema sul mio Nexus 10. –

+1

@jchristof Stai utilizzando un dispositivo fisico o un emulatore? –

risposta

6

Sembra che il tuo cellulare stia eseguendo un'immagine di avvio (kernel) che non supporta systrace.

"apertura errore/sys// debug/tracing/opzioni/sovrascrittura del kernel: Nessun file o directory (2)"

messaggio

Questo errore significa daemon adb (il modulo adb in esecuzione sul lato del dispositivo) non poteva trova/sys/kernel/debug/traccia/opzioni/sovrascrivi sul file system del dispositivo. systrace funziona su adb e comunica con il kernel attraverso i nodi sysfs in/sys/kernel/debug/tracing. Se questi nodi non vengono esposti sul telefono per qualsiasi motivo, systrace non funzionerà.

Quindi si deve prima ottenere una shell sul dispositivo utilizzando:

adb shell

quindi passare per confermare se/sys esiste a tutti e se esiste/sys/kernel/debug/tracing.

Se ci sono che è estremamente improbabile, è necessario eseguire il debug di systrace.py per capire come mai systrace pensava che i nodi non fossero presenti. Altrimenti, è necessario flashare un'immagine di avvio diversa che abbia il supporto systrace, perché sysfs è controllato dal kernel (principalmente dalle configurazioni in fase di compilazione) e init.rc, che fanno entrambi parte dell'immagine di avvio.

Il lampeggio di un'immagine di avvio diversa potrebbe comportare lo sblocco/il rooting del dispositivo. Probabilmente devi andare su siti fan come xdadeveloper per informazioni e immagini. Un'altra opzione è scaricare la fonte del kernel per il tuo dispositivo, compilare il kernel e creare l'immagine di avvio da te. Linux è in GPL, quindi il produttore del tuo dispositivo è obbligato a rilasciare il codice sorgente del kernel specializzato che usa.

-NAM http://www.willpromo.com

+0

Appena confermato che tutte le cartelle ci sono .. Ancora systrace ha un problema a generare report come descritto in questione. Android M Preview 2 qui .. – Ewoks

1

Potrebbe essere necessario modificare leggermente l'immagine del kernel (boot.img). Il seguente lavoro trova per me, solo per riferimento.

  1. terminale aperto e immettere: $adb shell
  2. (1) $su (2) $mount -t debugfs none /sys/kernel/debug. Ora dovresti riuscire a vedere molte directory sotto/sys/kernel/debug /. (Puoi cd in/sys/kernel/debug per confermare questo)
  3. Inserisci: $dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=/sdcard/boot.img per generare l'immagine del kernel boot.img dal tuo dispositivo.
  4. Utilizzare AndroidImageKitchen per decomprimere il file boot.img e trovare il file default.prop nella cartella Ramdisk. Quindi cambiare ro.debuggable=0 a ro.debuggable=1. Reimballare boot.img e avviare il flash sul dispositivo.
  5. Una volta avviato il dispositivo, sotto il terminale, immettere: $adb root e potrebbe essere visualizzato il messaggio: $restarting adbd as root. Disconnettere l'USB e collegarsi di nuovo.
  6. cd nella cartella systrace, e.g. ~/androidSDK/piattaforma-tools/systrace e uso: python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
  7. Ora è possibile generare i propri file systrace.