Заставьте Systrace работать с устройством 4.1.2 на Mac

Я долго пытался просто использовать systrace.

Мое устройство работает под управлением 4.1.2 (LT28i), и я работаю на Mac. Я отбрасываю ТАК вопросы с похожими проблемами, ни один из которых не имеет четкого ответа.

Я хочу, скажем, отследить views и graphics

Метод 1, затмение:

введите здесь описание изображения

ошибка:

введите здесь описание изображения

способ 2, терминал:

$ python systrace.py --cpu-load --time=10 -o mytracefile.html
error opening /sys/kernel/debug/tracing/options/overwrite: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/sched/sched_switch/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/power/cpu_frequency/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/power/cpu_idle/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/cpufreq_interactive/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/buffer_size_kb: No such file or directory (2)
error opening /sys/kernel/debug/tracing/trace_clock: No such file or directory (2)
error opening /sys/kernel/debug/tracing/tracing_on: No such file or directory (2)
error: unable to start trace
error opening /sys/kernel/debug/tracing/tracing_on: No such file or directory (2)
error opening /sys/kernel/debug/tracing/options/overwrite: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/sched/sched_switch/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/power/cpu_frequency/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/trace_clock: No such file or directory (2)
unable to start tracing
error opening /sys/kernel/debug/tracing/buffer_size_kb: No such file or directory (2)
An error occured while capturing the trace.  Output file was not written.
dionyses-lorentzoss-imac:systrace dionysis_lorentzos$ mount -o rw,remount -t debugfs none /sys/kernel/debug
mount: realpath /sys: No such file or directory

Я также пробую команду ниже и получаю сообщение об ошибке, но в соответствии с документами Google корень нужен только в некоторых трассировках.

$ adb root
adbd cannot run as root in production builds

Как создать простую системную трассу для представлений или графики?

Отладка в телефоне включена, а также «включить отслеживание» (либо через командную строку, либо через сам телефон).


person Diolor    schedule 13.02.2014    source источник
comment
Похоже, на вашем устройстве не включена система systrace. Некоторые OEM-производители поставляют устройства таким образом. Те же ошибки, что и stackoverflow.com/questions/17887754 .   -  person fadden    schedule 13.02.2014


Ответы (1)


Похоже, что ваш мобильный телефон использует загрузочный образ (ядро), который не поддерживает systrace.

"Ошибка при открытии /sys/kernel/debug/tracing/options/overwrite: Нет такого файла или каталога (2)"

Это сообщение об ошибке означает, что демон adb (модуль adb, работающий на стороне устройства) не смог найти /sys/kernel/debug/tracing/options/overwrite в файловой системе вашего устройства. systrace работает через adb и взаимодействует с ядром через узлы sysfs в /sys/kernel/debug/tracing. Если по какой-либо причине эти узлы не отображаются на вашем телефоне, systrace просто не будет работать.

Итак, вы должны сначала получить оболочку на своем устройстве, используя:

adb оболочка

Затем проверьте, существует ли вообще /sys и существует ли /sys/kernel/debug/tracing.

Если они есть, что крайне маловероятно, вам нужно отладить systrace.py, чтобы выяснить, почему systrace считает, что узлов там нет. В противном случае вам нужно прошить другой загрузочный образ с поддержкой systrace, потому что sysfs управляется ядром (в основном конфигурациями во время компиляции) и init.rc , которые являются частью загрузочного образа.

Перепрошивка другого загрузочного образа может потребовать разблокировки/рутирования устройства. Вам, вероятно, придется посетить фан-сайты, такие как xdadeveloper, для получения информации и изображений. Другой вариант — загрузить исходный код ядра для вашего устройства, скомпилировать ядро ​​и сделать загрузочный образ самостоятельно. Linux находится под лицензией GPL, поэтому производитель вашего устройства обязан выпустить исходный код специализированного ядра, которое они используют.

person xiay    schedule 27.03.2014
comment
/sys/kernel/debug существует: shell@android:/sys/kernel/debug $ Что, если я создал внутри него папку для трассировки? Но я предполагаю, что в нем также будет много недостающих файлов. знак равно - person Diolor; 27.03.2014
comment
@Diolor Не поможет, если вы создадите внутри папку для отслеживания. Sysfs — это виртуальная файловая система или, скорее, абстрактная файловая система, которую следует отличать от файловых систем, используемых виртуальной машиной. Файлы внутри sysfs не являются обычными файлами, а представляют собой узлы интерфейса ядра Linux, представленные в виде файла. Пользовательское пространство взаимодействует с ядром, выполняя файловые операции, такие как чтение/запись/ioctl на этих узлах. Следовательно, узлы sysfs полезны только в том случае, если они созданы и поддерживаются ядром. Замена вашего загрузочного образа на тот, в котором включена система systrace, вероятно, является вашим единственным выбором. - person xiay; 28.03.2014
comment
Спасибо за объяснение. - person Diolor; 28.03.2014
comment
Хорошее объяснение. Однако у меня есть все каталоги, а также перезаписанный файл, я вижу его содержимое из оболочки, но не могу создать файл отчета html. Это происходит на Android M Preview 2 - person Ewoks; 22.07.2015