組込み Linux* ターゲット

組込み Linux* システム、Wind River*、Yocto Project*、FreeBSD* などでパフォーマンス解析を行うには、インテル® VTune™ プロファイラーを使用します。

組込みデバイスのパフォーマンス・データは、リモート接続した組込みデバイスで収集し、ホストシステムにインストールされたインテル® VTune™ プロファイラーのインスタンスから解析を実行できます。これは、(低パフォーマンス、ディスクの容量不足、ユーザー・インターフェイス制御の問題などにより) ターゲットシステムでローカルデータ解析ができない場合に便利です。

インテル® VTune™ プロファイラーのパフォーマンス解析で使用するコレクターとドライバーをインストールするには、オペレーティング・システムのカーネルへの root アクセスが必要です。

組込みデバイスでパフォーマンス解析を有効にするには、次のいずれかを使用します。

インテル® System Studio の統合レイヤーを使用

インテル® System Studio の統合レイヤーは、Wind River* Linux* または Yocto Project* がインストールされた組込みシステムで動作します。

インテル® System Studio の統合レイヤーは、ドライバーと対応するターゲットパッケージをオペレーティング・システム・イメージ内に自動的に組込むことで、インテル® System Studio 製品をターゲット・オペレーティング・システムと完全に統合することを可能にします。このオプションを使用すると、プラットフォーム・ビルド・エンジニアはカーネルソースとシグネチャー・ファイルを制御することができますが、アプリケーション・エンジニアには許可されません。プラットフォーム・ビルド・エンジニアは、製品ドライバーとターゲットパッケージを統合して、それらをアプリケーション・エンジニアへ提供する組込みデバイスイメージに含めることができます。

  1. インストーラー GUI を使用して、インテル® System Studio をインストールします。

  2. インテル® System Studio の統合レイヤーをインストールします。

    1. インテル® System Studio のインストール先から、ターゲット・オペレーティング・システムの開発フォルダーに統合レイヤーをコピーします。
    2. インストール後のスクリプトを実行します。
      <iss-install-dir>/YoctoProject/meta-intel-iss/yp-setup/postinst_<OS>_iss.sh <ISS_BASE_dir>

      例えば、Wind River* Linux* では次を実行します。
      /YoctoProject/meta-intel-iss/yp-setup/postinst_wr_iss.sh

  3. 適切なインテル® VTune™ プロファイラー・パッケージを含むレシピをビルドします。

    1. /YoctoProject/meta-intel-iss のパスを bblayers.conf ファイルに追加します。

      BBLAYERS= "\
      ...
      <OS_INSTALL_DIR>/YoctoProject/meta-intel-iss\
      ...
      "

    2. conf/local.conf にインテル® VTune™ プロファイラーのレシピを追加します。次のようなレシピがあります。

      • intel-vtune-drivers: スタックおよびコンテキスト切り換えと PMU ベース解析に必要なすべてのインテル® VTune™ プロファイラーのドライバーを統合します。追加のカーネルオプションを有効にする必要があります。

      • intel-vtune-sep-driver: カーネルオプションで要求される最小限の PMU ベース解析で必要なドライバーを統合します。

      これらの収集方法の詳細は、「リモート Linux* ターゲットの設定」を参照してください。

  4. ターゲット・オペレーティング・システムをビルドしてインテル® VTune™ プロファイラーのコレクターとドライバーの統合を完了します。

  5. ターゲットの組込みデバイスへオペレーティング・システムを書き込みます。

    ターゲットの組込みデバイスへオペレーティング・システムを書き込んだ後に、適切なインテル® VTune™ プロファイラーのドライバーが存在することを確認します。詳細は、「Linux* ターゲット向けにサンプリング・ドライバーをビルド」を参照してください。

  6. SSH 接続または SEP コマンドを使用して、ホストシステムからターゲットの組込みデバイスで解析を行います。

    1. RSA キーを使用して、ターゲットへのパスワードなしの SSH アクセスをセットアップします。

    2. 解析ターゲットとリモートシステムを指定します。

      リモート接続を設定した後、インテル® VTune™ プロファイラーはターゲットシステムに適切なコレクターをインストールします。

    3. 解析タイプを選択します。

    4. ホストから解析を実行します。

    SEP コマンドの実行方法は、製品ユーザーガイドの「サンプリングの有効化」を参照してください。

  7. ホストでインテル® VTune™ プロファイラー GUI で結果を表示します。

例: インテル® System Studio の統合レイヤーと Yocto Project* を設定

インテル® VTune™ プロファイラーの Yocto Project* 統合レイヤーを使用

インテル® VTune™ プロファイラーの Yocto Project* 統合レイヤーは、オペレーティング・システム・イメージに自動的にドライバーを組込みます。このオプションを使用すると、プラットフォーム・ビルド・エンジニアはカーネルソースとシグネチャー・ファイルを制御することができますが、アプリケーション・エンジニアには許可されません。プラットフォーム・ビルド・エンジニアは、製品ドライバーとターゲットパッケージを統合して、それらをアプリケーション・エンジニアへ提供する組込みデバイスイメージに含めることができます。

  1. インテル® VTune™ プロファイラーをインストールします。

  2. 統合レイヤーを設定します。

    1. パッケージ <install-dir>/target/linux/vtune_profiler_target_x86.tgz または <install-dir>/target/linux/vtune_profiler_target_x86_64.tgz を展開します。

    2. ユーザー設定を指定するため、sepdk/vtune-layer/conf/user.conf ファイルを変更します。

      1. 次のいずれかのパスを指定します。

        • ZIP されていないターゲットパッケージへのパス: VTUNE_TARGET_PACKAGE_DIR = "<PATH>"

        • インテル® VTune™ プロファイラーのインストール・ディレクトリーへのパス: VTUNE_PROFILER_2020_DIR = "<PATH>"

      2. (オプション) システムブートの間に SEP ドライバーを統合するため、ADD_TO_INITD = "y" を設定します。

    3. 統合レイヤーを Yocto Project* 開発環境へコピーします。

    4. レイヤーのパスを bblayers.conf ファイルに追加します。

      BBLAYERS= "\
      ...
      <OS_INSTALL_DIR>/vtune-layer\
      ...
      "

    5. conf/local.conf にインテル® VTune™ プロファイラーのレシピを追加します。次のようなレシピがあります。

      • intel-vtune-drivers: スタックおよびコンテキスト切り換えと PMU ベース解析に必要なすべてのインテル® VTune™ プロファイラーのドライバーを統合します。追加のカーネルオプションを有効にする必要があります。

      • intel-vtune-sep-driver: カーネルオプションで要求される最小限の PMU ベース解析で必要なドライバーを統合します。

      これらの収集方法の詳細は、「リモート Linux* ターゲットの設定」を参照してください。

  3. ターゲット・オペレーティング・システムをビルドしてインテル® VTune™ プロファイラーのコレクターとドライバーの統合を完了します。

  4. ターゲットの組込みデバイスへオペレーティング・システムを書き込みます。

    ターゲットの組込みデバイスへオペレーティング・システムを書き込んだ後に、適切なインテル® VTune™ プロファイラーのドライバーが存在することを確認します。

  5. SSH 接続または SEP コマンドを使用して、ホストシステムからターゲットの組込みデバイスで解析を行います。

    1. RSA キーを使用して、ターゲットへのパスワードなしの SSH アクセスをセットアップします。

    2. 解析ターゲットとリモートシステムを指定します。

    3. 解析タイプを選択します。

    4. ホストから解析を実行します。

    SEP コマンドの実行方法は、製品ユーザーガイドの「サンプリングの有効化」を参照してください。

  6. インテル® VTune™ プロファイラー GUI で結果を表示します。

: 統合レイヤーと Yocto Project* を設定

インテル® VTune™ プロファイラーのインストール・パッケージのバンドルを使用

コマンドラインから、手動でカーネルイメージに適切なドライバーを組込んで、インテル® VTune™ プロファイラーのコレクターをインストールできます。この手順では、構成されたカーネルソースへの root アクセスが必要です。

  1. インストーラー GUI を使用して、インテル® VTune™ プロファイラーをインストールします。

  2. ターゲットの組込みデバイスで解析を実行します。

    1. RSA キーを使用して、ターゲットへのパスワードなしの SSH アクセスをセットアップします。

    2. 解析ターゲットとリモートシステムを指定します。パッケージに含まれるコレクターとドライバーが自動的にインストールされます。

    3. 解析タイプを選択します。

    4. ホストから解析を実行します。

  3. ホストでインテル® VTune™ プロファイラー GUI で結果を表示します。

トラブルシューティング

コレクターのインストール時にドライバーがビルドできなかった場合、インストーラーはサンプリング・ドライバーをビルドする必要があることを警告します。

ドライバーは、コンパイラー・ツールチェーンの利用状況に応じて、ターゲットシステムやホストシステム上でビルドされます。

  1. ターゲットシステムでコンパイラー・ツールチェーンが利用できる場合:

    1. ターゲットの組込みデバイスで、./build-driver コマンドを使用して <install-dir>/sepdk/src ディレクトリーからドライバーをビルドします。
    2. カーネルにドライバーをロードするには、./insmod-sep コマンドを使用します。
  2. ターゲットシステムでコンパイラー・ツールチェーンが利用できない場合:

    1. ホストシステム上で、sepdk/src ディレクトリーにある ./build-driver コマンドを実行して、ターゲットパッケージのドライバーのソースを使用してドライバーをクロスコンパイルします。必要に応じて、ビルドに必要なクロスコンパイラーとターゲットのカーネル・ソース・ツリーを準備します。
    2. sepdk/src フォルダーをターゲットシステムにコピーします。
    3. カーネルにドライバーをロードするには、./insmod-sep コマンドを使用します。

: インテル® VTune™ プロファイラーのターゲットパッケージと Yocto Project* を設定

関連情報