Perangkat Lunak Tertanam Raspberry Pi - Yocto - Raspberry - PIGPIO - Qt tangkapan layar program komputer

Yocto - Raspberry - PIGPIO - Qt

Linux dengan perpustakaan pigpio dan toolchain Qt

resep bitbake pigpio

Buat resep untuk perpustakaan pigpio

Untuk proyek ini, kita perlu memiliki perpustakaan pigpio agar dapat mengakses I2C, SPI, dan GPIO lainnya dengan satu perpustakaan.

Sayangnya kita tidak menemukan resepnya di meta-layer umum untuk Yocto dan harus membuatnya sendiri.

resep pigpio_git.bb

Membuat resep khusus untuk Yocto tidak begitu sulit, tetapi detailnya mungkin cukup sulit.

Prosedur standarnya adalah mendapatkan sumber dan membiarkan bitbake berlangsung:

<: code1:>

Namun, jika Anda melakukan "bitbake pigpio", hal ini menghasilkan beberapa kesalahan karena tidak ada perpustakaan berversi yang dikonfigurasi dan lokasi file manpage tidak ditangani dengan benar.

kesalahan manpage

Pertama, kesalahan berikut terjadi:

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 dapat memperbaiki kesalahan ini dengan pengaturan 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 \
"

kesalahan non-symlink

Setelah memperbaiki kesalahan manpage, kesalahan berikutnya 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]

Hal ini terjadi karena tidak ada perpustakaan berversi yang dibuat dari "CMakeLists.txt". Untuk memperbaikinya, kita tambahkan:

SOLIBS = ".so"
FILES_SOLIBSDEV = ""

systemd autostart pigpiod

Untuk memulai otomatis daemon pigpio, kita tambahkan hal 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"

Catatan

Jika Anda membutuhkan file header yang diinstal untuk pengembangan, Anda harus menginstal IMAGE_FEATURES "dev-pkgs

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

Unduh meta-layer yang di-zip dengan resep dari meta-interelectronix -rpi.

Konfigurasi image global

Pengaturan local.conf

Unduh file zip konfigurasi build dari rpi4-build.

Pertama, lihat file bblayers.conf. Di dalamnya, Anda menemukan meta-layer yang dibutuhkan. Unduh meta-layer, jika Anda belum melakukannya, dan sesuaikan file bblayers.conf Anda.

Kedua, lihat file local.conf.

Pengaturan I2C

Jika Anda ingin menggunakan chip sensor (mis. sensor suhu) yang terhubung dengan I2C, Anda harus mengaktifkan I2C dalam file local.conf.

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

Hapus X11 dan Wayland

Ada banyak kesalahan pada proses bitbake, jika kita tidak menghapus X11 dan Wayland

Dalam hal ini, karena kita tidak membutuhkan banyak jendela, kita akan menghapusnya.

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

Untuk menggunakan eglfs dengan benar, kita tambahkan:

VC4DTBO ?= "vc4-fkms-v3d"

image Raspberry bitbake

Buat file konfigurasi image

Dalam file "rpi4-64-qt5-gpio-image.bb", kami mendefinisikan paket yang kita perlukan dalam distribusi linux kita. Di sini, Anda dapat, seperti kami sebutkan sebelumnya, menyertakan IMAGE_FEATURES "dev-pkgs".

File dipisahkan menjadi beberapa bagian seperti misalnya DEV-SDK, EXTRA_TOOLS, dan lainnya untuk menambahkan paket yang sering dibutuhkan.

paket pigpio

Paket ini ditambahkan di bawah CUSTOM_STUFF:

CUSTOM_STUFF = " \
    pigpio \
"

paket Qt

Paket yang diperlukan untuk Qt ditambahkan ke kelompok paket dan kelompok paket ini ditambahkan di sini:

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

Anda dapat menemukan "packagegroup-qt5" dalam file "packagegroup-qt5.bb" dan menambahkan atau menghapus paket Qt.

Unduh meta-layer yang di-zip dengan image dari meta-interelectronix-rpi -qt.

Setelahnya, Anda dapat memproses bitbake image:

bitbake rpi4-64-qt5-gpio-image

SDK bitbake

Buat SDK toolchain

Jika Anda ingin mengembangkan aplikasi Qt untuk distribusi Linux kustom ini, Anda pasti ingin memiliki toolchain kompilasi silang untuk ditambahkan ke konfigurasi QtCreator Anda.

Anda dapat dengan mudah membuat SDK dengan perintah bitbake berikut:

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

Kita menambahkan kelompok paket "packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug" ke file konfigurasi image.

Instal SDK

Anda akan menemukan SDK yang sudah dibuat di direktori berikut:

/tmp/deploy/sdk

Dalam hal ini, namanya adalah "poky-glibc-x86_64-rpi4-64-qt5-gpio-image-cortexa72-raspberrypi4-64-toolchain-3.4.3.sh".

File ini berisi instruksi penyiapan dan semua file yang dibutuhkan (dalam format terkompresi).

Salin file ini ke komputer pengembangan Anda dan jalankan:

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

Ikuti instruksi untuk menginstal SDK.

Lisensi Hak Cipta

Hak Cipta © 2022 Interelectronix e.K.
Kode sumber proyek ini dilisensikan di bawah lisensiGPL-3.0.