Build Yocto Linux tích hợp Qt5 cho Raspberry Pi3

Trong bài này mình sẽ hướng dẫn anh em build Yocto Linux tích hợp Qt5 cho Raspberry Pi3 và chạy demo application của Qt trên board. Mục tiêu của bài này là để anh em biết cách sử dụng Yocto build ra Linux image cho target board, phục vụ cho mục đích học tập, demo, showcase.


Cài đặt môi trường

Nên build trên Ubuntu 16.04 64 bit (máy thật hay máy ảo đều được – đã test build OK).

Cài dependencies cho Yocto

Cài git-lfs


Set Up Yocto Build

Sử dụng repo tool để khởi tạo môi trường build cho Yocto, thay BuildDir bằng đường dẫn đến folder bạn muốn dùng để lưu source và chạy build trên đó →

Ở đây mình chỉ định manifest là sumo. 

Tiếp theo là chạy script để generate folder build →

Dưới đây là list các hardware platform mà bạn có thể build Yocto Linux tích hợp Qt5 để chạy trên đó, nếu muốn build cho plarform khác thì có thể thay raspberrypi3 bằng value tương ứng.


Build Image

Giờ anh em có thể đi chơi, uống cafe đợi máy nó build thôi. Thời gian build có thể vài giờ đồng hồ đến cả ngày tùy vào cấu hình máy.

Sau khi build xong ta sẽ có output image ở đường dẫn <BuildDir>/build-raspberrypi3/tmp/deploy/images/raspberrypi3/b2qt-embedded-qt5-image-raspberrypi3-<YYYYMMDDhhmmss>.7z (trong đó YYYYMMDDhhmmss là ngày giờ build ra image). Ví dụ:

/home/tuanpm/raspberry_pi3/build-raspberrypi3/tmp/deploy/images/raspberrypi3/b2qt-embedded-qt5-image-raspberrypi3-20200218092031.7z

Unzip file này ra ta sẽ có file b2qt-embedded-qt5-image-raspberrypi3.img cỡ khoảng 1.6 Gb. Ta flash file này vào microSD card.

Sau khi cắm microSD card vào máy Ubuntu thì dùng tool balenaEtcher (download tại đây) để flash image vào thẻ. Tool này rất dễ sử dụng, mở tool ra phát hiểu luôn dùng như thế nào.


Chạy board

  • Rút thẻ ra cắm vào board
  • Connect board với màn hình bằng cable HDMI
  • Cắm nguồn khởi động board

Và đây là kết quả →

Đây là application demo của Qt đã được config sẵn trong image, sau khi boot xong application này sẽ auto được chạy lên. Anh em có thể kết nối vào board qua ssh hoặc dùng serial, tắt app này đi, copy app tự mình phát triển và chạy app đó lên. Nhưng để có thể phát triển app chạy trên board chúng ta cần có toolchain.


Build toolchain

Nếu chưa hiểu build toolchain để làm gì thì mời anh em đọc bài Toolchain trong Embeded Linux

Sau khi build success, toolchain sẽ có toolchain nằm ở đây <BuildDir>/build-raspberrypi3/tmp/deploy/sdk/b2qt-x86_64-meta-toolchain-b2qt-embedded-qt5-sdk-raspberrypi3.sh

Muốn phát triển application để chạy trên môi trường board ở trên thì cần chạy script b2qt-x86_64-meta-toolchain-b2qt-embedded-qt5-sdk-raspberrypi3.sh để cài toolchain lên máy và dùng toolchain đó để build application.

—  Phạm Minh Tuấn (Shun) —

 

 

Tham khảo