SoCWatch用のNexus Player(FUGU)の準備

モバイルデバイス向けに設計されたAndroidアプリケーションの消費電力を最適化する利点は、肉眼で見ることができます。 消費電力が少ない-再充電の間隔が長い。 しかし、エネルギー使用には他の側面もあります。 Nexus Playerなどの固定式ハードウェアにも、費用対効果の高いアプリケーションが必要です。 世界規模で、Androidプラットフォームはこのような規模の現象です。エネルギーに対する注意深い態度は、環境への配慮を意味します。



画像



Intel SoC Watchは、Intelプラットフォームに基づいたシステムの消費電力を分析できるコマンドラインツールです。 Nexus Playerはそのようなシステムの1つです。 SoCWatchの助けを借りて、Nexus Playerの「内部」で何が起こっているかを知るには、デバイスを特別に準備する必要があります。



SoCWatchの概要



Intel SoC Watchは、マイクロプロセッサの電力消費状態とこれらの状態間の切り替えの理由に関する情報を収集し、クロック周波数の変化、バス使用量、および他の多くのインジケーターを追跡できます。 これはすべて、さまざまなシステムによるエネルギー消費のパラメーターを詳細に分析するのに役立ちます。



SoCWatchは、情報を収集した後、デフォルトで生データを含むファイルとターゲットシステムに関する一般情報を含むレポートを生成します。 生データ(.SW1形式のファイルに保存されます)は、Intel Energy Profilerにインポートできます。 このツールは、VTuneアンプと同じインターフェースを備えています。 ここで、時間内に展開されたシステムの動作に関するデータを比較して視覚化できます。 レポートファイル(.CSV形式)は、たとえばMicrosoft Excelで開くことができ、それに含まれるデータに基づいて、分析を容易にするグラフを作成します。



Nexusプレーヤーのルート権限を取得する



Nexus Playerはすでに販売されています。 Intel Developer Forum 2015で強調表示された、それに関する作業の詳細は、 IDF2015ラボノートに記載されています。NexusPlayerをシュリンクラップからPerformance and Energy Analysisに移行する



Nexus PlayerをSoCWatchを使用して分析するには、追加の努力が必要です。 そのため、分析システムには、カーネルレベルのドライバーを使用してパフォーマンスデータを収集するためのルート権限が必要です。 そのような権利を取得するには、 Nexus Playerビデオガイド-Android TVのルート化方法を使用できます。 ルート権限が取得されると、デバイスはADBシェルでsuコマンドを受け入れることができます。



Nexus Playerの新しい構成でカーネルを構築する



Googleは、デバイスのカーネル構成でモジュール読み込み機能を無効にしました。 したがって、Nexus PlayerでSoCWatchを使用できるようにするには、Googleの公式Webサイトからカーネルソースコードをダウンロードし、構成を変更してから再構築する必要があります。 これを行うには、次の手順に従う必要があります。



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 (or 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 Developersポータルから工場出荷時の画像をダウンロードしてください 。 その後、unpackimg.batファイルを使用してイメージを展開し、<INSTALLATION_DIR_PATH> \ split_img \ boot.img-zImageファイルを前の手順で作成したbzImageファイルに置き換えます。 この手順の最後に、バッチファイルrepacking.batを使用して新しいboot.imgを作成します



点滅に失敗した後にデバイスを再起動できない場合は、次のように回復できることに注意してください。 電源ケーブルを外し、少し待ってケーブルを接続し、デバイスの下部にあるハードウェアボタンを押し続けます。 Nexus Playerはfastbootモードに入ります。 その後、flash-all.batスクリプトを使用します。このスクリプトは、Google Developers Webサイトから工場イメージとともにダウンロードされたファイルの中にあります。 彼はデバイスを再フラッシュし、作業能力に戻します。



5.次のコマンドを使用して、新しいboot.imgをデバイスに縫い付けます。



 adb reboot bootloader fastboot flash boot boot.img fastboot reboot
      
      





これで、カーネルのバージョンをチェックして、フラッシュが成功したかどうかを確認できます。 成功した場合、SoCWatchドライバーをビルドできます。



SoCWatchドライバーアセンブリ



ドライバーのソースコードはSocWatchパッケージの一部であり、 Intel System Studioでダウンロードできます。 SoCWatchは、Intel System Studioのコンポーネントの1つです。 ドライバーをビルドするには、次の一連のアクションを使用します。



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環境のセットアップ



デバイスでroot権限が取得された後、adb rootコマンドを使用してインストールファイル(socwatch_android_install.bat)を実行できます。 ただし、このコマンドが正常に機能するには、追加の設定が必要になる場合があります。 したがって、ここでは、suコマンドの使用に基づいてSoCWatch環境を準備するための普遍的な手順を検討します。



まず、SoCWatchフォルダーに移動して、必要なファイルをデバイスにコピーする必要があります。 この場合、これらのファイルをSDカードに送信してから、/ 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
      
      





これで、SoCWatchユーザーガイドを使用してデータの収集を開始できます。 データを収集した後は、受信したファイルをデバイスからホストコンピューターにダウンロードし、Nexus Playerのパフォーマンスと電力消費情報の分析を開始するだけです。





SoCWatchを使用したデータ収集



まとめ



Nexus Playerに焦点を当てたアプリケーションを開発している場合、世界をより良い場所にする方法を知っています。 インテルSoCウォッチを使用して開発のエネルギー消費を分析し、不当に多くの電力が存在するという事実を修正するだけで十分です。



All Articles