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 Producer#
이 파일들은 /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 클록 스트레칭(clock stretching)의 가용성과 올바른 구현에 의존합니다.
bring-up 팁#
카메라에 전원이 공급되는지, 즉 녹색 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 프로듀서(.cti 파일)가 /opt/dart-bcon-mipi/lib*에 설치되어 있는지 확인합니다.
pylon Viewer를 사용하여 카메라를 조작합니다.
지원#
설치 중 문제가 발생하면 주저하지 말고 Basler 지원팀에 문의해 주세요. 당사의 현장 응용 엔지니어(FAE) 팀이 연락을 드릴 것입니다.
문제 디버깅을 원활하게 진행할 수 있도록 다음 정보를 제공해 주세요.
- 사용 중인 카메라 유형
- SoC 또는 보드 유형
- 커널 버전
- 다음의 출력 결과:
dmesg - 현재 디바이스 트리의 덤프: