최신 qt 버전을 이전 yocto 버전에 통합

최신 qt 버전을 이전 yocto 버전에 통합

우리 프로젝트는 역시 오래된 yocto를 기반으로 합니다.전사, 이는 SoM 공급업체에 의해 처음 수정되었습니다. 그런 다음 메인라인 커널이 필요한 GPU 기능을 지원하지 않았기 때문에 FreeScale/NXP 커널을 여기에 통합했습니다.

작동시키는 데 꽤 오랜 시간이 걸렸지만 이제 Qt 5.12에서 전환할 시간입니다.전사Qt 5.15(LTS)부터. 새로운 yocto 버전으로의 전환을 피하고 싶지만, 단지 Meta-qt5 레이어의 체크아웃만 변경하면 bitbake다음과 같은 문제가 발생합니다.

ERROR: ParseError at meta-qt5/recipes-qt/qt5/qtwebengine_git.bb:83: Could not inherit file classes/features_check.bbclass

나는 이것이 일련의 비호환성 문제 중 첫 번째일 것이라고 예상했기 때문에 문제를 해결하는 가장 좋은 방법이 무엇인지 스스로에게 물었습니다.

나만의 Meta-qt5 브랜치를 시작하고 qt 5.15.8을 사용하도록 레시피를 변경하고 현재 Meta-qt5 브랜치에서만 커밋을 선택해야 합니까?

답변1

나는 지금 같은 문제를 겪고 있습니다 (Warrior 기반 BSP, Qt 5.15.2가 필요합니다). 이것은 내가 시도하고 찾은 것입니다.

  • 버전이 있습니다위안qt5그리고5.15호환 가능전사. 그러나 이 버전은 다음 버전에서는 사용할 수 없는 클래스와 기능을 사용합니다.전사(예: feature_check, mime-xdg 등), 그래서 어떻게 작동할지 모르겠습니다.
  • 새로운 Meta-qt5에 필요한 기능 세트를 포함하는 첫 번째 yocto 릴리스는 다음과 같습니다.던퍼, 그래서 다른 레이어를 호환되는 개정판으로 업데이트하려고 시도했습니다.던퍼, 그러나 아마도 내 프로젝트의 레이어 중 절반이 이 yocto 버전과 호환되는 버전을 제공하지 않을 것입니다.

요약하자면, 우리가 선택할 수 있는 옵션은 무엇입니까(또는 제가 이미 알고 있는 것):

  • 수동 실행 없이 포팅된 레이어뿐만 아니라 최신 버전(poky, Meta-qt5 등)을 지원하고 호환되는 레이어를 업데이트할 수 있습니다.
  • (경고: 아마도 나쁜 생각일 수 있음) 프로젝트에서 Meta-qt5를 제외하고 이미지를 빌드하고 SDK를 생성한 다음 프로젝트 SDK의 크로스 컴파일 및 rootfs를 사용하여 소스에서 Qt를 크로스 컴파일하십시오.

아직 다른 해결책을 찾지 못했습니다. 이 문제를 해결했거나 아직 시도 중인 경우 다음 이메일로 저에게 연락해 주세요.[이메일 보호됨]

PS 평판이 부족하여 SE에 대한 질문에 대해서는 언급할 수 없으므로 답변 섹션을 사용한 것에 대해 사과드립니다. OP의 솔루션을 찾을 수 있으면 답변을 업데이트하겠습니다.

답변2

이 게시물bitbakeYocto 빌드에 통합될 수 있도록 시스템 외부에서 선택한 Qt 버전을 간단히 빌드하는 방법에 대한 튜토리얼이 제공됩니다 . 이것이 Qt에 의존하는 레시피에서 작동하는지 이해가 되지 않습니다.

지금은 그렇게 하고 싶은 충동도 없고 테스트할 시간도 없습니다. 답변을 성공적으로 재현하면 답변을 업데이트하고 수락할 것입니다.

답변3

한 가지 해결책은 Meta-qt5 계층을 포함하도록 esdk를 수정하는 것입니다. 지시하다여기에서 찾을 수 있습니다.

하지만 yocto Warriors와 호환되는 최신 Meta-qt5 버전이 5.14.2이기 때문에 많은 문제에 직면하게 됩니다. 공식적으로 지원되는 항목을 유지하는 것이 좋습니다. 그렇지 않으면 너무 많은 빌드 오류를 수정해야 합니다.

관련 정보