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"
תצורת תמונה גלובלית
הורד את קבצי תצורת הבנייה המכווצים מ- 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
אם אתה רוצה לפתח יישום 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*.