組み込みソフトウェア ラズベリーパイ - ヨクト - ラズベリー - ピグピオ - Qt コンピュータプログラムのスクリーンショット

Yocto - Raspberry - PIGPIO - Qt

PigpioライブラリとQtツールチェーンを備えたLinux

pigpioレシピをbitbakeする

Pigpioライブラリのレシピを作成する

このプロジェクトには、I2C、SPIおよびその他のGPIOにひとつのライブラリでアクセスするため、pigpioライブラリが必要になります。残念ながら、Yoctoのためのレシピが共有メタ層にないので、独自のものを作る必要があります。### pigpio_git.bb レシピ

Yoctoのカスタムレシピを作るのは難しくはありませんが、細かな部分が難しいかもしれません。標準的な手順は、ソースを取得してbitbakeにすることです。

DESCRIPTION = "pigpio"
SECTION = "devel/libs"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = "file://UNLICENCE"

COMPATIBLE_MACHINE = "^rpi$"

SRC_URI = "git://github.com/joan2937/pigpio.git;protocol=https;tag=v79
"

S = "${WORKDIR}/git"

inherit pkgconfig cmake

"bitbake pigpio"すると、いくつかのエラーが発生します。理由は、バージョン化されたライブラリが設定されていないこと、そして、manpagesファイルの場所が、正しく扱われていないためです。#### manpagesエラー

まず、次のエラーが発生します

ERROR: pigpio-git-r0 do_package: QA Issue: pigpio: Files/directories were installed but not shipped in any package:
  /usr/man
  /usr/man/man1
  ...

次の設定により、このエラーを修正できます

FILES:${PN}-doc += "\
     /usr/man/man1/pigs.1 \
     /usr/man/man1/pig2vcd.1 \
     /usr/man/man1/pigpiod.1 \
     /usr/man/man3/pigpio.3 \
     /usr/man/man3/pigpiod_if.3 \
     /usr/man/man3/pigpiod_if2.3 \
"

non-symlinkエラー

manpagesのエラーを修正後、次のエラーが発生します

ERROR: pigpio-git-r0 do_package_qa: QA Issue: pigpio rdepends on pigpio-dev [dev-deps]
ERROR: pigpio-git-r0 do_package_qa: QA Issue: -dev package pigpio-dev contains non-symlink .so '/usr/lib/libpigpio.so'
-dev package pigpio-dev contains non-symlink .so '/usr/lib/libpigpiod_if2.so'
-dev package pigpio-dev contains non-symlink .so '/usr/lib/libpigpiod_if.so' [dev-elf]

"CMakeLists.txt"でバージョン化されたライブラリが生成されていないためにこれが起こります。これを修正するには、以下を追加します。

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

systemdが自動的にpigpiodを開始

pigpioデーモンを自動的に開始するには、次を追加します

do_install() {
    install -d ${D}${bindir}
    install -d ${D}${libdir}
    install -d ${D}${PYTHON_SITEPACKAGES_DIR}
     
    install -m 0644 ${S}/pigpio.py ${D}${PYTHON_SITEPACKAGES_DIR}

    install -d ${D}${systemd_system_unitdir}
    install -m 0644 ${S}/util/pigpiod.service ${D}${systemd_system_unitdir}

    cmake_do_install
}

SYSTEMD_SERVICE:${PN} = "pigpiod.service"

注記

開発のためにヘッダーファイルをインストールする必要がある場合には次をインストールする必要があります。IMAGE_FEATURES "dev-pkgs

IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"

meta-interelectronix-rpiから、レシピ付きの圧縮メタ層をダウンロードします。

グローバルイメージ構成

local.conf設定

rpi4-buildから、圧縮ビルド構成ファイルをダウンロードします。まず、bblayers.confファイルを見てください。中に、必要なメタ層があります。まだダウンロードしていない場合には、メタ層をダウンロードして、bblayers.confファイルを調整します。次に、local.confファイルを確認します。### I2C 設定

I2Cに接続されたセンサーチップ(温度センサーなど)を使用したい場合には、local.confファイルでI2Cを有効にする必要があります。

ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"

X11とWaylandを削除します

X11とWaylandを削除しないと、bitbakeプロセスでたくさんのエラーが発生します

この場合、複数のウィンドウが必要ないので、これらを削除します。

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

eglfsを適切に使用するのは、次を追加します

VC4DTBO ?= "vc4-fkms-v3d"

Raspberryイメージのbitbake

イメージ設定ファイルの作成

"rpi4-64-qt5-gpio-image.bb"ファイルで、linuxのディストリビューションで必要なパッケージを定義します。ここでは、以前述べた通り、IMAGE_FEATURES "dev-pkgs"を含みます。例のDEV-SDK、EXTRA_TOOLSなどのように、ファイルはいくつかのセクションに分離され、必要なパッケージを簡単に追加します。### pigpioパッケージ

このパッケージは、CUSTOM_STUFFに追加されます

CUSTOM_STUFF = " \
    pigpio \
"

Qt パッケージ

Qtに必要なこのパッケージは、パッケージグループに追加され、このパッケージブルーぷはここに追加されます

IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"

"packagegroup-qt5.bb"ファイルにある"packagegroup-qt5"があり、Qtパッケージを追加または削除します。meta-interelectronix-rpi-qtから、イメージ付きの圧縮メタ層をダウンロードします。その後、イメージをbitbakeできます

bitbake rpi4-64-qt5-gpio-image

SDKをbitbake

SDKツールチェーンの作成

このカスタムLinuxディストリビューションにQtアプリケーションを開発したい場合には、クロスコンパイルツールチェーンが必要でしょうし、QtCreator構成に追加したいでしょう。SDKは次のbitbakeコマンドで簡単に作成できます

bitbake -c populate_sdk rpi4-64-qt5-gpio-image

イメージ構成ファイルに追加された"packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"パッケージグループがあります。### SDKのインストール

次のディレクトリーに生成されたSDKがあります

/tmp/deploy/sdk

この場合、"poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh"という名前がつけられています。このファイルは、設定指示とすべての必要なファイル (圧縮形式) が含まれています

このファイルを、開発コンピューターにコピーして、実行します。

./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh

指示に従って、SDKをインストールします

著作権ライセンス

** Copyright © 2022 Interelectronix e.K.** このプロジェクトのソースコードは、** GPL-3.0 **ライセンスの下でライセンスされています。