移植指南 (Yocto)#
本指南聚焦於基於 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 相機所涉及的所有軟體元件的高階檢視。
本指南協助將以綠色和藍色突顯的元件整合至您的系統中。
在繼續之前,請確保您已閱讀可用的資訊:
- README.md 檔案位於 Github 上的 meta-basler-imx8 儲存庫中
- 位於 Embedded Vision Cameras 章節中的說明文件
建議使用以 Basler 官方支援的其中一款裝置為基礎的可運作設定。
整合步驟#
首先,依照 meta-basler-imx8 儲存庫中所述,將圖層 (layers) 新增至您的 Yocto 設定中。
以下段落提供了與特定圖層相關的額外資訊。
Basler Tools (meta-basler-tools)#
meta-basler-tools 圖層與 SoC 無關,因此應該可以直接運作。編譯完成後,您應該能夠透過在終端機中執行以下指令,在目標裝置上啟動 pylon Viewer 應用程式:
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 操作相機:
支援#
如果您在安裝過程中遇到任何困難,請隨時聯絡 Basler 支援團隊。我們的現場應用工程師團隊將與您聯繫。
為了便於偵錯問題,請提供以下資訊:
- 您正在使用的相機類型
- SoC 或主機板類型
- Kernel 版本
- 以下指令的輸出:
dmesg - 目前裝置樹 (Device Tree) 的傾印: