תוכנה משובצת מחשב Raspberry Pi - Yocto - פטל - PIGPIO - Qt צילום מסך של תוכנית מחשב

יוקטו - פטל - PIGPIO - Qt

לינוקס עם ספריית pigpio ושרשרת כלים Qt

Bitbake מתכון Pigpio

יצירת מתכון לספריית חזירים

עבור פרויקט זה אנו צריכים את ספריית pigpio כדי לקבל גישה I2C, SPI ו GPIOs אחרים עם ספרייה אחת.

לצערנו לא מצאנו מתכון לזה בשכבות המטא הנפוצות של יוקטו ואנחנו צריכים ליצור מתכון משלנו.

מתכון 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 \
"

שגיאת קישור שאינו סימלינק

לאחר תיקון השגיאה עם 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 = ""

הפעלה אוטומטית שיטתית pigpiod

כדי להפעיל אוטומטית את daemon 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.

תצורת תמונה גלובלית

הגדרות local.conf

הורד את קבצי תצורת הבנייה המכווצים מ- rpi4-build.

ראשית תסתכל על הקובץ bblayers.conf. בפנים אתה מוצא את שכבות המטא הדרושות. הורד את meta-layers, אם עדיין לא עשית והתאם את הקובץ bblayers.conf שלך.

שנית, עיין בקובץ local.conf.

הגדרות I2C

אם ברצונך להשתמש בשבב חיישן (למשל חיישן טמפרטורה) המחובר ל- I2C, עליך להפעיל את I2C בקובץ local.conf.

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

הסר את X11 ואת Wayland

ישנן שגיאות רבות בתהליך bitbake, אם לא נסיר X11 ו- Wayland

במקרה שלנו - מכיוון שאיננו זקוקים למספר חלונות - אנו מסירים אותם.

DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"

כדי להשתמש eglfs כראוי, אנו מוסיפים:

VC4DTBO ?= "vc4-fkms-v3d"

תמונת פטל bitbake

יצירת קובץ תצורת תמונה

בקובץ "rpi4-64-qt5-gpio-image.bb" אנו מגדירים, אילו חבילות אנו צריכים בהפצת לינוקס שלנו. כאן אתה יכול - כאמור לעיל - לכלול את 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" בקובץ "packagegroup-qt5.bb" ולהוסיף או למחוק חבילות Qt.

הורד את שכבת המטא המכווצת עם התמונה מ - meta-interelectronix-rpi-qt.

אחרי זה אתה יכול bitbake את התמונה:

bitbake rpi4-64-qt5-gpio-image

bitbake SDK

יצירת שרשרת כלים של SDK

אם אתה רוצה לפתח יישום 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.</:code16:></:code15:></:code14:>

רישיון זכויות יוצרים

זכויות יוצרים © 2022 Interelectronix e.K.
קוד המקור של פרויקט זה מורשה תחת רישיון GPL-3.0*.