コンテンツにスキップ

ポーティングガイド(Yocto)#

このガイドでは、Baslerソフトウェアスタックで直接サポートされていないプラットフォームにBasler dart BCON for MIPIカメラを統合する方法について説明します。

これは、組み込み機器の世界で最も広く使用されているYoctoベースのシステムに焦点を当てています。

このガイドは、Basler dart BCON for MIPIカメラおよび次のNXP i.MX8ボードを対象としています。

  • imx8memevk(NXP:8MMINILPD4-EVK)
  • imx8mmddr4evk(NXP:8MMINID4-EVK)
  • imx8mpevk(NXP:8MPLUSLPD4-EVK)(制約あり)
  • imx8mqevk(NXP:MCIMX8M-EVKB(B Silicon))

情報

このガイドでは、オンボードISP(daA…mciカメラ)を搭載したカメラに焦点を当てています。i.MX 8M Plusの非ISPカメラの統合は対象外です。

ソース#

開発プロセスを簡素化するために、ソースはGitHubメタレイヤーとして提供され、既存のYoctoプロジェクトにシームレスに統合できます。各レイヤーには、統合とコンパイルに関する詳細をカバーする独自のドキュメントが付属しています。

概要#

以下の概要図は、Basler dart BCON for MIPIカメラの操作に関連するすべてのソフトウェアコンポーネントの概要を示しています。

このガイドは、緑色青色でハイライト表示されたコンポーネントをシステムに統合する際に役立ちます。

組み込みカメラの概要

続行する前に、利用可能な情報を読んだことを確認してください。

Baslerで正式にサポートされているデバイスの1つに基づく作業セットアップも推奨されます。

統合手順#

まず、meta-basler-imx8リポジトリーで説明されているように、レイヤーをYoctoセットアップに追加します。

次の段落では、特定のレイヤーに関連する追加情報を提供します。

Baslerツール(meta-basler-tools)#

meta-basler-toolsレイヤーは、SoCから独立しているため、そのまま使用できます。コンパイル後、端末から次のコマンドを実行して、ターゲット上でpylon Viewerアプリケーションを起動できるはずです。

/opt/pylon/bin/pylonviewer

Basler組み込み(meta-basler-imx8)#

meta-basler-imx8レイヤーは、SoCおよびボード固有です。したがって、ポーティングはもう少し複雑です。作業は、ターゲットプラットフォームがリファレンスボードとどの程度異なるかによって変わります。

Baslerでは、GitHubでレイヤーを複製し、必要に応じて変更することをお勧めします。または、カスタムレイヤーを作成し、.bbappendファイルを使用して必要な変更を統合することもできます。

作業設定を作成するには、概要図に表示されているコンポーネントをBSPに適合させる必要があります。

GenTL Producers#

これらは/recipes-cameraにあります。これらのレシピはSoC固有ではありません。レシピはBaslerカメラ用のバイナリードライバーをインストールします。これらを変更する必要はありません。

Baslerカメラドライバー#

カメラドライバーは/recipes-kernel/kernel-modulesにあります。これは、すべてのMIPIベースのカメラモジュール用の汎用カメラドライバーです。

カーネルパッチ#

必要なすべてのカーネルパッチは /recipes-kernel/linux/linux-imxにあります。これらはターゲットカーネルにポーティングする必要があります。

ターゲット構造に大きく依存するため、これを行う方法に関する一般的なアドバイスはありません。Baslerでは、ターゲットデバイス用のカーネルリポジトリーを作成し、git amを使用してそこにパッチを適用することをお勧めします。

デバイスツリーファイル#

これらは、ターゲットデバイスに応じて書き換える必要があります。カーネルパッチには、NXP評価キット用のすべてのデバイスツリーファイルが含まれます。

Baslerでは、ターゲットデバイスにできるだけ近いデバイスツリーファイルから始めることをお勧めします。デバイスツリーファイルのリストについては、meta-basler-imx8の表を参照してください。

役に立つヒント:

  • カメラのデバイスツリーノードが、正しいI2Cバスに割り当てられていることを確認します。
  • カメラノードがCSIデバイスに正しくリンクされていることを確認します。
  • CSIレーンの数と順序が正しいことを確認します。

情報

カメラモジュールは、I2Cクロックストレッチの可用性と正しい実装に依存しています。

立ち上げのためのヒント#

カメラに電源が入っていること、つまり緑色のLEDが点灯していることを確認します。

dmesgを使用してLinuxカーネルのメッセージをチェックし、カメラが正しくプローブされたことを確認します。

dmesg | grep Basler
[ 8.490196] ABRM: Manufacturer: Basler, Model: daA2500-60mc, Device: 107712-02, Serial: basler:30000031
[ 8.490231] basler-camera 2-0036: Basler Camera Driver v1.6.1 loaded successfully

情報

デバイスツリーに物理的に接続されたカメラよりも多くのカメラノードがある場合は、対応する物理デバイスがないノード毎にエラーメッセージが表示されます。

カメラモデルのGenTL Producer(.ctiファイル)が、/opt/dart-bcon-mipi/lib*にインストールされていることを確認します。

pylon Viewerを使用してカメラを操作します。

GENICAM_GENTL64_PATH=/opt/dart-bcon-mipi/lib /opt/pylon/bin/pylonviewer

サポート#

インストール中に問題が発生した場合、Baslerサポートにお気軽にお問い合わせください。当社のフィールドアプリケーションエンジニアチームが、対応いたします。

問題のデバッグを容易にするために、次の情報を提供してください。

  • 使用しているカメラの種類
  • SoCまたはボードの種類
  • カーネルバージョン
  • dmesgの出力
  • 現在のデバイスツリーのダンプ:
    dmesg > dmesg_dump.txt
    dtc -I fs -O dts /proc/device-tree