跳至內容
測試伺服器
開發伺服器

移植指南 (Yocto)#

本指南說明如何將 Basler dart E 相機整合至 Basler 軟體堆疊未直接支援的平台。

本指南聚焦於基於 Yocto 的系統,因為這些系統在嵌入式領域中被最廣泛使用。

本指南適用於 Basler dart E 相機以及以下 NXP i.MX8 開發板:

  • imx8mmevk (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 meta 圖層的形式提供,可順暢整合至現有的 Yocto 專案中。每個圖層均附帶其專屬的說明文件,涵蓋整合與編譯的詳細資訊:

概覽#

下方的概覽圖提供了操作 Basler dart E 相機所涉及的所有軟體元件的高階檢視。

本指南協助將以綠色和藍色突顯的元件整合至您的系統中。

嵌入式相機概覽

在繼續之前,請確保您已閱讀可用的資訊:

建議使用以 Basler 官方支援的其中一款裝置為基礎的可運作設定。

整合步驟#

首先,依照 meta-basler-imx8 儲存庫中所述,將圖層 (layers) 新增至您的 Yocto 設定中。

以下段落提供了與特定圖層相關的額外資訊。

Basler Tools (meta-basler-tools)#

meta-basler-tools 圖層與 SoC 無關,因此應該可以直接運作。編譯完成後,您應該能夠透過在終端機中執行以下指令,在目標裝置上啟動 pylon Viewer 應用程式:

/opt/pylon/bin/pylonviewer

Basler Embedded (meta-basler-imx8)#

meta-basler-imx8 圖層是針對 SoC 和主機板專屬的。因此,移植工作會稍微複雜一些。所需的心力取決於您的目標平台與參考主機板的差異程度。

Basler 建議在 GitHub 上複製 (clone) 該圖層並根據您的需求進行修改。或者,您也可以建立自訂圖層,並使用 .bbappend 檔案整合必要的變更。

若要建立可運作的設定,必須調整 overview diagram 上顯示的元件以配合您的 BSP。

GenTL Producers#

這些元件位於 /recipes-camera 中。這些 recipe 與 SoC 無關。它們會安裝適用於 Basler 相機的二進位驅動程式。不需要修改這些項目。

Basler Camera Driver#

相機驅動程式位於 /recipes-kernel/kernel-modules。這是一個適用於所有基於 MIPI 相機模組的通用相機驅動程式。

核心修補程式#

所有必要的核心修補程式 (kernel patches) 都位於 /recipes-kernel/linux/linux-imx。這些需要移植到目標核心中。

對於如何做到這一點沒有一般性的建議,因為它很大程度上取決於目標結構。Basler 建議為目標裝置建立一個核心儲存庫 (repo),並在其中套用修補程式,方法是使用 git am.

裝置樹檔案#

這些需要根據您的目標裝置進行重寫。kernel patches 包含 NXP 評估套件的所有裝置樹 (device tree) 檔案。

Basler 建議從一個盡可能接近您目標裝置的裝置樹檔案開始。如需裝置樹檔案列表,請參閱 meta-basler-imx8 中的表格。

實用提示:

  • 確保相機的裝置樹節點已指派至正確的 I2C 匯流排。
  • 確保相機節點已正確連結至 CSI 裝置。
  • 確保 CSI 通道 (lanes) 的數量和順序正確。

資訊

相機模組依賴於 I2C 時脈展延 (clock stretching) 的可用性與正確實作。

啟動提示#

確保相機已通電,也就是綠色 LED 燈亮起。

檢查 Linux 核心訊息,使用 dmesg 以確保相機已正確探測 (probed):

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 或主機板類型
  • Kernel 版本
  • 以下指令的輸出: dmesg
  • 目前裝置樹 (Device Tree) 的傾印:
    dmesg > dmesg_dump.txt
    dtc -I fs -O dts /proc/device-tree