Resipi Bitbake Pigpio
Untuk projek ini, kita perlu mempunyai perpustakaan pigpio untuk mempunyai akses kepada I2C, SPI dan GPIO lain dengan satu perpustakaan.
Malangnya kami tidak menemui resipi untuknya dalam lapisan meta biasa untuk Yocto dan perlu mencipta sendiri.
pigpio_git.bb resipi
Mencipta resipi tersuai untuk Yocto tidak begitu sukar - tetapi secara terperinci ia boleh.
Prosedur standard adalah, untuk mendapatkan sumber dan biarkan ia 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
Tetapi jika anda "bitbake pigpio", ia membuang beberapa kesilapan, kerana tidak ada perpustakaan versi yang dikonfigurasikan dan lokasi fail halaman tidak dikendalikan dengan betul.
Ralat #### manpages
Mula-mula ralat berikut berlaku:
ERROR: pigpio-git-r0 do_package: QA Issue: pigpio: Files/directories were installed but not shipped in any package:
/usr/man
/usr/man/man1
...
Anda boleh membaiki ralat ini dengan seting berikut:
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 \
"
ralat bukan symlink
Selepas membetulkan kesilapan dengan manpages, ralat seterusnya muncul:
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]
Ini berlaku, kerana tiada perpustakaan versi yang dihasilkan daripada "CMakeLists.txt". Untuk membetulkannya, kami menambah:
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
pigpiod autostart sistem
Untuk memulakan daemon pigpio secara automatik, kami menambah perkara berikut:
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"
Ambil perhatian
Jika anda memerlukan fail pengepala yang dipasang untuk pembangunan, anda perlu memasang IMAGE_FEATURES "dev-pkgs
IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Konfigurasi imej global
Muat turun fail konfigurasi binaan berzip daripada rpi4-build.
Mula-mula lihat fail bblayers.conf. Di dalamnya anda dapati lapisan meta yang diperlukan. Muat turun meta-lapisan, jika anda belum melakukan dan menyesuaikan fail bblayers.conf anda.
Kedua lihat fail local.conf.
Tetapan I2C
Jika anda ingin menggunakan cip sensor (contohnya sensor suhu) yang disambungkan dengan I2C, anda perlu mendayakan I2C dalam fail local.conf.
ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"
Alih keluar X11 dan Wayland
Terdapat banyak kesilapan dalam proses bitbake, jika kita tidak mengalih keluar X11 dan Wayland
Dalam kes kita - kerana kita tidak memerlukan banyak tingkap - kita mengeluarkannya.
DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"
Untuk menggunakan eglf dengan betul, kami menambah:
VC4DTBO ?= "vc4-fkms-v3d"
imej bitbake Raspberry
Dalam fail "rpi4-64-qt5-gpio-image.bb" kita tentukan, pakej mana yang kita perlukan dalam pengedaran linux kami. Di sini anda boleh - seperti yang dinyatakan sebelum ini - sertakan IMAGE_FEATURES "dev-pkgs".
Fail dipisahkan ke dalam beberapa bahagian contohnya DEV-SDK, EXTRA_TOOLS dan sebagainya, untuk menambah pakej yang mudah diperlukan.
Pakej ### Piggio
Pakej ini ditambah di bawah CUSTOM_STUFF:
CUSTOM_STUFF = " \
pigpio \
"
Pakej ### Qt
Pakej yang diperlukan untuk Qt ditambah ke dalam kumpulan pakej dan kumpulan pakej ini ditambah di sini:
IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"
Anda boleh menemui "packagegroup-qt5" dalam fail "packagegroup-qt5.bb" dan menambah atau memadam pakej Qt.
Muat turun lapisan meta berzip dengan imej daripada meta-interelectronix-rpi-qt.
Selepas itu anda boleh menggigit imej:
bitbake rpi4-64-qt5-gpio-image
bitbake SDK
Jika anda ingin membangunkan aplikasi Qt untuk pengedaran Linux tersuai ini, anda pasti mahu mempunyai rantai alat kompil silang, untuk menambahkannya pada konfigurasi QtCreator anda.
Anda boleh membuat SDK dengan mudah dengan arahan bitbake berikut:
bitbake -c populate_sdk rpi4-64-qt5-gpio-image
Kami mempunyai kumpulan pakej "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" yang ditambahkan pada fail konfigurasi imej.
Pasang SDK
Anda mendapati SDK yang dijana dalam direktori berikut:
/tmp/deploy/sdk
Dalam kes kami, ia dinamakan "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".
Fail ini mengandungi arahan persediaan dan semua fail yang diperlukan (dalam format termampat).
Salin fail ini ke komputer pembangunan anda dan laksanakannya:
./poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh
Ikut arahan untuk memasang SDK.</:code16:></:code15:></:code14:>
Lesen Hak Cipta
Hakcipta Terpelihara © 2022 Interelectronix e.K.
Kod sumber Projek ini dilesenkan di bawah lesen GPL-3.0.