Porting Guide (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 메타 레이어 형태로 제공되며, 기존 Yocto 프로젝트에 원활하게 통합할 수 있습니다. 각 레이어에는 통합 및 컴파일에 대한 세부 정보를 다루는 자체 문서가 포함되어 있습니다.
개요#
아래의 개요 다이어그램은 Basler dart E 카메라 운영과 관련된 모든 소프트웨어 구성 요소를 상위 수준에서 보여줍니다.
이 가이드는 녹색 및 파란색으로 강조 표시된 구성 요소를 시스템에 통합하는 데 도움을 줍니다.
계속 진행하기 전에 사용 가능한 정보를 읽었는지 확인하십시오.
- Github의 meta-basler-imx8 저장소에 있는 README.md 파일
- Embedded Vision Cameras 섹션의 문서
Basler가 공식적으로 지원하는 장치 중 하나를 기반으로 하는 작동 설정도 권장됩니다.
통합 단계#
meta-basler-imx8 저장소에 설명된 대로 Yocto 설정에 레이어를 추가하여 시작하십시오.
다음 단락에서는 특정 레이어와 관련된 추가 정보를 제공합니다.
Basler Tools (meta-basler-tools)#
meta-basler-tools 레이어는 SoC와 독립적이므로 즉시 작동해야 합니다. 컴파일 후 터미널에서 다음 명령을 실행하여 타겟에서 pylon Viewer 애플리케이션을 시작할 수 있습니다.
Basler Embedded (meta-basler-imx8)#
meta-basler-imx8 레이어는 SoC 및 보드 전용입니다. 따라서 포팅이 조금 더 복잡합니다. 소요되는 노력은 타겟 플랫폼이 레퍼런스 보드와 다른 정도에 따라 다릅니다.
Basler는 GitHub에서 레이어를 복제하고 필요에 맞게 수정하는 것을 권장합니다. 또는 커스텀 레이어를 만들고 .bbappend 파일을 사용하여 필요한 변경 사항을 통합할 수 있습니다.
작동하는 설정을 만들려면 개요 다이어그램에 표시된 컴포넌트를 BSP에 맞게 조정해야 합니다.
GenTL Producers#
이들은 /recipes-camera에 위치합니다. 이 레시피들은 SoC 전용이 아닙니다. 이 레시피들은 Basler 카메라용 바이너리 드라이버를 설치합니다. 이를 수정할 필요는 없습니다.
Basler Camera Driver#
카메라 드라이버는 /recipes-kernel/kernel-modules에 위치합니다. 이는 모든 MIPI 기반 카메라 모듈을 위한 범용 카메라 드라이버입니다.
커널 패치#
필요한 모든 커널 패치는 /recipes-kernel/linux/linux-imx에 위치합니다. 이 패치들은 타겟 커널로 포팅해야 합니다.
타겟 구조에 따라 크게 다르기 때문에 이를 수행하는 방법에 대한 일반적인 조언은 없습니다. Basler는 타겟 장치용 커널 저장소를 생성하고 다음을 사용하여 패치를 적용하는 것을 권장합니다. git am.
디바이스 트리 파일#
이 파일들은 타겟 장치에 맞게 다시 작성해야 합니다. 커널 패치에는 NXP 평가 키트를 위한 모든 장치 트리 파일이 포함되어 있습니다.
Basler는 타겟 장치에 최대한 가까운 장치 트리 파일로 시작하는 것을 권장합니다. 장치 트리 파일 목록은 meta-basler-imx8의 표를 참조하십시오.
유용한 팁:
- 카메라의 장치 트리 노드가 올바른 I2C 버스에 할당되었는지 확인하십시오.
- 카메라 노드가 CSI 장치에 올바르게 연결되었는지 확인하십시오.
- CSI 레인의 수와 순서가 올바른지 확인하십시오.
정보
카메라 모듈은 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 지원팀으로 문의해 주십시오. 현장 응용 엔지니어(FAE) 팀에서 연락을 드릴 것입니다.
문제를 더 쉽게 디버깅할 수 있도록 다음 정보를 제공해 주십시오.
- 사용 중인 카메라 유형
- SoC 또는 보드 유형
- 커널 버전
- 다음에 대한 출력:
dmesg - 현재 디바이스 트리의 덤프: