Perisian Terbenam Raspberry Pi - Yocto - Raspberry - PIGPIO - Qt tangkapan skrin program komputer

Yocto - Raspberry - PIGPIO - Qt

Linux dengan perpustakaan pigpio dan rantai alat Qt

Resipi Bitbake Pigpio

Buat resipi untuk perpustakaan 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"
Muat turun lapisan meta berzip dengan resipi dari meta-interelectronix-rpi.

Konfigurasi imej global

tetapan local.conf

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

Buat fail konfigurasi imej

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

Buat rantai alat 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.