[RAPA3기][4조][Fail-Operational TMR 기반 자율주행 차량 제어 시스템] D3-G 보드 IMX219 - topst_imx219.bin 누락으로 인한 카메라 사용 실패

안녕하세요, RAPA3기 4팀 프로젝트 진행 중에 관련 이슈가 해결되지 않아 재문의 드립니다.

구현 환경의 경우 이전 문의 글과 동일하며(D3-G 보드), 달라진 점은, 이번 새로 릴리즈된 이미지를 바탕으로, local.conf에서 옵션 수정하여 빌드하였습니다.

이때, 여전히 tcc-isp driver가 request_firmware()로 ‘tcc-isp-fw’ 라는 firmware file을 요청하였으나, return -2로 오류 발생 후 종료하는 현상이 있습니다

이를 해결하기 위해 /lib/firmware 경로를 확인 해본 결과, 심볼릭 링크는 존재하지만 실제 원본 실행 바이너리가 누락된 상태임을 확인했습니다.

ov5647용으로 빌드한 경우, imx219용으로 빌드한 경우 모두 같은 에러가 발생했었습니다.

위는 ov5647용으로 빌드한 경우입니다. ov5647 센서 카메라 사용하여 검증하였습니다.

이때, 스트리밍을 하기 위해 다양한 파일을 링크해봤습니다.

이때 isp_default_d3_ov5647.dump에 tcc-isp-fw를 링크하였을 때 스트리밍이 성공하는 것을 확인하였습니다.

반면, ov5647에서 topst_ov5647.bintcc-isp-fw(-0)에 걸었을 때는 즉시 Kernel panic( __memcpy / tcc_isp_mcu_load_firmware 경로 )로 실패했습니다.

이를 바탕으로 imx219용으로 빌드하여 시도해봤습니다.

imx219센서를 사용하는 rpi cam module v2를 사용했으며, isp_default_d3_imx219.dump를 tcc-isp-fw에 링크하여 진행하였습니다. (ov5647의 경우, isp_default_d3_ov5647.dump로 성공했음을 근거)

이 경우, 커널 패닉이 발생하는 것을 확인했습니다.

dmesg 주요 증상:

  • SError Interrupt on CPU1, code 0xbf000002 -- SError

  • Kernel panic - not syncing: Asynchronous SError Interrupt

topst_ov5647.bin으로 시도하였을 때도 Data Abort로 인한 패닉이 발생하는 것을 확인했습니다.

따라서, D3-G 보드에서, tcc-isp-fw에 링크하여 사용할 수 있는 imx219 센서용 binary 파일을 요청드리고 싶습니다.
관련하여 확인 부탁드립니다.

감사합니다.

안녕하세요.

해당 문의에 답변 드립니다.
tcc-isp-fw라는 파일은 카메라 auto exposure와 같은 기능을 하는 펌웨어 파일입니다.
이번에 릴리즈한 imx219와 기존 릴리즈했던 ov5647센서는 해당 펌웨어 파일이 없어도 동작하도록 릴리즈 되었습니다. 다만 해당 기능을 하는 펌웨어가 없기 때문에 auto exposure같은 동작은 하지 않습니다.
또한 dump파일은 isp-server라는 isp tuning tool을 이용할 때 초기값으로 변환하기 위한 값이므로 링크를 하실 필요가 없습니다.

이전 ov5647로 빌드를 하셨다면 imx219를 사용하기 위해서는 반드시 빌드 캐시를 정리하고 빌드해야합니다.
bitbake -c cleansstate isp-firmware, bitbake -c cleansstate isp-server를 하시고 다시 빌드해주시면 됩니다.(bitbake telechips-topst-image)

추가로 스트리밍은 어떤 방법으로 하시는지 궁금합니다.

감사합니다.

자세한 가이드는 아래 링크에서 4.1.2.2.1 혹은 4.1.2.2.2를 참고해주세요.

감사합니다 :slight_smile:

안녕하세요, 말씀 주신 내용 바탕으로 D3-G 보드에서 IMX219 센서 카메라 bring-up 성공하였습니다.

-2 error는 여전히 발생하지만 동작에 문제가 되진 않습니다.

스트리밍의 경우, GStreamer로 DP(wayland) 실시간 프리뷰로 보고 있습니다.

v4l2src → videoconvert/videoscale → waylandsink 파이프라인으로 화면에 띄우는 방식 입니다.

감사합니다.

넵, 확인하셨다니 다행입니다. 답변 감사합니다!

1 Like