회사에서 안드로이드를 대체 할 수 있는 무엇인가를 찾아야 하는 상황에 놓였었다. 

     

    십수년 전에는 Qtopia를 쓴 적도 있었고, 수년 전에는 QT4 기반에서 QWS를 이용하여 GUI를 구성한 적도 있었는데..

     

    문제는 QT5부터 QWS가 지원이 안된다. 

     

    그리고는 B2QT라는게 눈에 들어왔다. 

     

     

    QT라이브러리를 이용하여 미리 만들어진 SDK를 이용해서 자동차의 인포테인먼트나 전기바이크등의 모니터링 시스템등 미려한 GUI가 필요한 시스템에 적당 하다.  

     

    다만, 상용이라는게 문제긴한데... 간단하게 설치해서 한번 느껴보는건 뭐 나쁘지 않을 것 같아서 한번 해봤다. 

     

    다니는 회사가 돈이 많다면 자동차 클라우드나 이런거 만들때 빠른 개발이 가능할 것 같지만...

     

    그래도 뭐 한번 쯤 경험해 보자. 

     

     

    1. B2QT (Boot to QT)

      QT에서 개발하여 배포하는 프로젝트이다. Boot To QT는 부팅하면서 CLI 또는 Window 기반이 아닌 고전 QT에 가까운 실행 환경을 미리 갖추어놓은 배포판이라 할 수 있다.

     

     

      라즈베리파이에서 B2QT를 설정하고 빌드하는 것은단순하다. B2QTYocto Project를 통해서 배포된다. 따라서 Yocto기본환경을 설치하고, 배포되는 레포지터리를 선택한다음 다운로드 하고, 설정만해주면 라즈베리파이와 Freescale i.MX제품군 또는 여러 임베디드 장치에서 B2QT를 이용할 수 있다.

     

    2. 개발환경 구성

      가상머신 또는 리눅스 머신이 필요하다. B2QT는 Yocto로 배포되기 때문에 그냥 이미지를 SD카드에 굽는다고 동작되지 않는다. 빌드후 완성된 이미지를 직접 MicroSD에 넣어주어야 한다. 아니면 다른사람이 해놓은거 받아서...

    2.1. 필수패키지 설치

    @ sudo apt-get install gawk curl git-core git-lfs diffstat unzip p7zip-full texinfo gcc-multilib build-essential chrpath libsdl1.2-dev xterm gperf bison g++-multilib

     

    2.2. B2QT 소스 다운로드

      BtoQTqt에서 배포하고 있으므로 QT제조사의 git 서버에서 다운로드 한다. B2QTyocto를 이용하여 시스템 빌드가 가능하다.

    @ git clone git://code.qt.io/yocto/meta-boot2qt.git

     

    2.3. 디바이스 설정

    - B2QT 지원장치 확인

    @ cd meta-boot2qt/b2qt-init-build-env list-devices

     

    (1) B2QT 빌드 대상 설정

      필자는 라즈베리파이3와 라즈베리파이 4를 대상으로하여 이미지를 생성해 보았다. 한번 빌드된 다음 장치 설정을 변경하는데는 그리 오랜시간이 걸리지 않는다. 다만 첫 빌드에서 별도의 리눅스 머신에서 빌드햇을 때 상당히 오랜 시간이 걸렸다. 출근하자마자 빌드했는데, 퇴근할때 끝나지 않았다.

    빌드호스트 사양
      H/W : Intel i5 2500K, 8GByte RAM, SHHD 2TB
      O/S : Ubuntu 18.04.5 LTS x 64

     

    라즈베리파이 3/3B+

    $ meta-boot2qt/b2qt-init-build-env init --device raspberrypi3

     

    라즈베리파이 4

    $ meta-boot2qt/b2qt-init-build-env init --device raspberrypi4

     

    (2) 컴파일 환경 설정

    $ export MACHINE=raspberrypi3
    또는
    $ export MACHINE=raspberrypi4
    $ source ./setup-environment.sh

     

    (3) SD카드 이미지 빌드

      빌드를 시작하기전에, VMware를 쓰고 있다면 Windows의 하드디스크끄기, 전원제어를 모두 꺼두고 진행한다. 또한 가상머신도 슬립상태를 해제한다.

    $ bitbake b2qt-embedded-qt5-image

     

      빌드이후  생성된 SD카드 이미지를 MicroSD에 넣고 부팅하면, 화려한 GUI의 B2QT 메인화면을 확인할 수 있다. 아쉽게도 캡쳐해둔 이미지가 없는데 시간나는데로 포함하도록 하겠다. B2QT 샘플은 이 단계에서 확인할 수있다. B2QT 환경에서 개발을 해야하는데 그러려면 SDK를 다운로드 받아야 한다.

     

     

    3. SDK 다운로드

      소프트웨어 개발자가 B2QT를 통해서 프로그래밍을 하기 위해서 요구되는 SDK와 시스템 개발자가 이용하게되는 기본 루트파일시스템, qemu를 포함해서 빌드하면 qemu 에뮬에서 실행되는 이미지또한 제공된다. 기본 빌드가 되어있어도 이 빌드를 위해서 거의 처음부터 다시 빌드하는 정도의 시간이 소요된다.

    3.1. SDK 다운로드

    $ bitbake meta-toolchain-b2qt-embedded-qt5-sdk

     

     - 디버그 포트 활성화

      시스템에 대한 세부 사항 확인, ssh나 UART를 이용하려면 MicroSD카드를 빼서 PC에 연결하고 config.txt 파일에 다음 라인을 추가한다.

    enable_uart = 1

     

    3.2. SDK 설치

      SDK가 다운로드된 디렉터리에서 스크립트를 이요하여 특정 경로에 SDK를 설치한다. 

    ~/sdk$ sudo ./b2qt-x86_64-meta-toolchain-b2qt-embedded-qt5-sdk-raspberrypi4.sh
    [sudo] password for shhong:
    Boot to Qt for Embedded Linux SDK installer version 2.7.3
    =========================================================
    Enter target directory for SDK (default: /opt/b2qt/2.7.3):
    You are about to install the SDK to "/opt/b2qt/2.7.3". Proceed [Y/n]?
    Extracting SDK.....................................................................................................................................................................................................................................................done
    Setting it up...done
    SDK has been successfully set up and is ready to be used.

     

    필자는 B2QT를 사용할 일이 없으므로, 개발환경 구성하는데 까지만 자료를 정리하였다. 혹시나 시간적여유가 있는 독자께서 한번 개발해주시길...

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기