如何在Nexus(FUGU)播放器上启用SoCWatch





0/5 (0投票)
Intel® SoC Watch 是一个命令行工具,用于监控基于 Intel® 架构平台的功耗相关的系统行为。
Intel® 开发者专区 提供跨平台应用开发的工具和操作指南、平台和技术信息、代码示例和同行专业知识,帮助开发者进行创新并取得成功。加入我们的 Android、物联网、Intel® RealSense™ 技术 和 Windows 社区,下载工具、访问开发套件、与志同道合的开发者分享想法,并参与黑客马拉松、竞赛、路演和本地活动。
SoCWatch 简介
Intel® SoC Watch 是一个命令行工具,用于监控基于 Intel® 架构平台的功耗相关的系统行为。 它监控功耗状态、频率、总线活动、唤醒以及其他各种指标,从而深入了解系统的能效。
在数据收集后,默认情况下目标系统会生成一个摘要文件和原始数据。 原始数据 (sw1) 可以导入到 Intel Energy Profiler 中,该工具与 VTune Amplifier 具有相同的 GUI,用于关联和可视化系统随时间变化的行为。 摘要文件 (csv) 可以用 Excel 打开,并将不同的指标制作成图表,以便于分析。
授予 Nexus 播放器的 root 权限
Nexus 播放器已经发布上市。分析工具需要通过内核驱动程序授予 root 权限才能获取性能数据。您可以按照此视频教程的步骤:Nexus Player – 如何 Root Android TV 来授予 root 权限。一旦您拥有 root 权限,设备就可以在 adb shell 中识别 su 命令。
为 Nexus 播放器重新构建内核和内核配置
Google 在内核配置中禁用了模块上传功能。因此,我们需要从 Google 官方网站下载内核源代码,并在修改内核配置后,仅基于我们自定义的配置重新构建内核。
步骤 1. 从 Google 官方网站下载内核源代码
步骤 2. 内核配置必须配置为启用以下选项。
export ARCH=x86 make fugu_defconfig make menuconfig
- CONFIG_MODULES=y
- CONFIG_MODULE_UNLOAD=y
- CONFIG_TRACEPOINTS=y
- CONFIG_FRAME_POINTER=y
- CONFIG_COMPAT=y
- CONFIG_TIMER_STATS=y
- CONFIG_X86_ACPI_CPUFREQ=m(或 CONFIG_X86_ACPI_CPUFREQ=y)
- CONFIG_INTEL_IDLE=y
步骤 3. 构建内核后,内核文件将在 < INSTALLATION_DIR_PATH >\x86_64\arch\x86\boot\bzImage 下找到
make –j4
步骤 4. 使用预构建的内核构建启动镜像
对于 Intel 平台设备,有时仅刷新内核分区会失败。 因此,我们将使用我们预构建的内核构建一个启动镜像。 为此,我们可以将预构建的内核放在 Android 源代码树中,并仅构建启动镜像。
为了快速解决,我们使用 解包/重打包 启动镜像脚本来构建启动镜像,该脚本是 Android Image Kitchen。 首先,您可以从 Google 开发者 下载工厂镜像。 使用 unpackimg.bat 提取 boot.img,并将 < INSTALLATION_DIR_PATH >\split_img\boot.img-zImage 替换为您之前构建的 bzImage。 最后,使用 repackimg.bat 重新打包新的 boot.img。
注意:如果由于错误的刷写指令导致您的设备无法再启动,您可以断开并重新连接电源,并长按硬件按键使其进入 fastboot 模式。 然后,使用包含在您从 Google 开发者下载的工厂镜像中的 flash-all.bat 脚本来刷写所有镜像并恢复设备。
步骤 5. 将新的 boot.img 刷写到设备。
adb reboot bootloader fastboot flash boot boot.img fastboot reboot
现在,您可以检查内核版本,看看刷写是否成功。 如果是,我们可以开始基于此内核源代码构建 SoCWatch 驱动程序。
构建 SoCWatch 驱动程序
驱动程序源代码包含在 SoCWatch 包中,您可以从 Intel® System Studio 下载。 SoCWatch 是 Intel® System Studio 中的一个组件。
步骤 1. 通过 < INSTALLATION_DIR_PATH >\soc_perf_driver\src\ 中的构建驱动程序脚本构建 socperf1_2.ko
sh ./build-driver
步骤 2. 通过构建驱动程序脚本 < INSTALLATION_DIR_PATH >\socwatch_driver\lxkernel\ 构建 SOCWATCH1_5.ko
sh ./build-driver –k <KERNEl_BUILD_DIR> -s <KERNEl_BUILD_DIR>
设置 SoCWatch 环境
通过 adb root 命令授予 root 权限后,您可以执行安装文件 (socwatch_android_install.bat)。 但是,我们无法轻易地使 adb 默认以 root 身份运行。 在这种情况下,我们逐步设置 SoCWatch 环境。
第一步是导航到 SoCWatch 目录,并将必要的文件复制到设备。 对于此设备,我们只能将这些文件推送到 sdcard 位置,然后复制到 /data/socwatch
tools\os2unix.exe setup_socwatch_env.sh tools\dos2unix.exe SOCWatchConfig.txt adb push socwatch /sdcard/socwatch/ adb push setup_socwatch_env.sh /sdcard/socwatch/ adb push libs /sdcard/socwatch/libs/ adb push valleyview_soc /sdcard/socwatch/valleyview_soc/ adb push tangier_soc /sdcard/socwatch/tangier_soc/ adb push anniedale_soc /sdcard/socwatch/anniedale_soc/ adb push socperf1_2.ko /sdcard/socwatch/ adb push SOCWATCH1_5.ko /sdcard/socwatch/ adb shell su cp –r /sdcard/socwatch /data/ cd /data/socwatch chmod 766 socwatch
最后,您可以参考用户指南(见附件)来获取数据收集的说明。 在数据收集后,一旦您获得输出数据,您可以提取结果文件,并在主机系统中通过收集的性能数据对目标系统进行深入了解/分析。