Ingeboude sagteware Raspberry Pi - Yocto - Raspberry - PIGPIO - Qt 'n skermkiekie van 'n rekenaarprogram

Yocto - Framboos - PIGPIO - Qt

Linux met pigpio biblioteek en Qt toolchain

Bitbake resep pigpio

Skep resep vir pigpio biblioteek

Vir hierdie projek moet ons die pigpio-biblioteek hê om toegang te hê tot I2C, SPI en ander GPIO's met een biblioteek.

Ongelukkig het ons geen resep daarvoor in die algemene metalae vir Yocto gevind nie en moet ons ons eie skep.

pigpio_git.bb resep

Dit is nie so moeilik om 'n pasgemaakte resep vir Yocto te skep nie - maar in detail kan dit wees.

Die standaardprosedure is om die bron te kry en dit te laat bitbak:

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

Maar as jy "bitbake pigpio", gooi dit 'n paar foute, want daar is geen weergawebiblioteke wat gekonfigureer is nie en die ligging van die manpages-lêers word nie korrek hanteer nie.

manpages fout

Eerstens kom die volgende fout voor:

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

U kan hierdie fout oplos met die volgende instellings:

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 \
"

nie-simlink fout

Nadat u die fout met die manpages reggestel het, kom die volgende fout na vore:

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]

Dit gebeur, want daar is geen weergawe-biblioteke wat uit "CMakeLists.txt" gegenereer word nie. Om dit reg te stel, voeg ons by:

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

systemd autostart pigpiod

Om die pigpio daemon outomaties te begin, voeg ons die volgende by:

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"

Nota

As u koplêers moet installeer vir ontwikkeling, moet u IMAGE_FEATURES "dev-pkgs installeer

IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
Laai die rits metalaag af met die resep van meta-interelectronix-rpi.

Globale beeldkonfigurasie

local.conf-instellings

Laai die rits boukonfigurasielêers af van rpi4-build.

Kyk eers na die bblayers.conf-lêer. Binne vind jy die nodige metalae. Laai die metalae af, as u dit nog nie gedoen het nie en pas u bblayers.conf-lêer aan.

Kyk tweedens na die local.conf-lêer.

I2C-instellings

As u 'n sensorskyfie (byvoorbeeld 'n temperatuursensor) wat met I2C gekoppel is, wil gebruik, moet u I2C in die local.conf-lêer aktiveer.

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

Verwyder X11 en Wayland

Daar is baie foute in die bitbake-proses as ons nie X11 en Wayland verwyder nie

In ons geval - aangesien ons nie veelvuldige vensters nodig het nie - verwyder ons dit.

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

Om eglfs behoorlik te gebruik, voeg ons by:

VC4DTBO ?= "vc4-fkms-v3d"

bitbake Framboos beeld

Skep beeldkonfigurasie lêer

In die lêer "rpi4-64-qt5-gpio-image.bb" definieer ons, watter pakkette ons benodig in ons Linux-verspreiding. Hier kan u - soos voorheen genoem - die IMAGE_FEATURES "dev-pkgs" insluit.

Die lêer word in verskillende afdelings geskei, soos byvoorbeeld DEV-SDK, EXTRA_TOOLS ensovoorts, om pakkette wat maklik benodig word, by te voeg.

pigpio pakket

Hierdie pakket word bygevoeg onder CUSTOM_STUFF:

CUSTOM_STUFF = " \
    pigpio \
"

Qt pakkette

Die pakkette wat benodig word vir Qt word in pakketgroepe gevoeg en hierdie pakketgroepe word hier bygevoeg:

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

U kan "packagegroup-qt5" in die lêer "packagegroup-qt5.bb" vind en Qt-pakkette byvoeg of uitvee.

Laai die rits metalaag af met die beeld van meta-interelectronix-rpi-qt.

Daarna kan jy die beeld byt:

bitbake rpi4-64-qt5-gpio-image

bitbake SDK

Skep SDK-gereedskaphanger

As u 'n Qt-toepassing vir hierdie pasgemaakte Linux-verspreiding wil ontwikkel, wil u sekerlik 'n kruissamestellingsinstrument hê om dit by u QtCreator-konfigurasie te voeg.

U kan maklik 'n SDK skep met die volgende bitbake-opdrag:

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

Ons het die pakketgroepe "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" by die beeldkonfigurasielêer gevoeg.

Installeer SDK

U vind die gegenereerde SDK in die volgende gids:

/tmp/deploy/sdk

In ons geval word dit 'poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh' genoem.

Hierdie lêer bevat opstelinstruksies en al die nodige lêers (in 'n saamgeperste formaat).

Kopieer hierdie lêer na u ontwikkelingsrekenaar en voer dit uit:

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

Volg die instruksies om die SDK te installeer.</:code16:></:code15:></:code14:>

Kopiereg lisensie

Kopiereg © 2022 Interelectronix e.K.
Hierdie projekbronkode is gelisensieer onder die GPL-3.0 lisensie.