pigpioレシピをbitbakeする
このプロジェクトには、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から、レシピ付きの圧縮メタ層をダウンロードします。
グローバルイメージ構成
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
このカスタム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 **ライセンスの下でライセンスされています。