bitbake recipe pigpio
بالنسبة لهذا المشروع، نحتاج إلى مكتبة بيغبيو للوصول إلى I2C و SPI و GPIOs الأخرى مع مكتبة واحدة.
لسوء الحظ، لم نجد وصفة له في الطبقات الفوقية الشائعة لـ Yocto ويجب أن نخلق طبقاتنا الخاصة.
###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
أولاً يحدث الخطأ التالي:
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 \
"
####خطأ غير مرتبط بـsymlink
بعد إصلاح الخطأ في الصفحات الرئيسية، يظهر الخطأ التالي:
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 ". لإصلاح هذا، نُضيف:
<:code5
:>### Systemd Autostart pigpiod
للتشغيل التلقائي لـ pigpio daemon، نضيف ما يلي:
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 - packgs"
IMAGE_FEATURES += "package-management dev-pkgs doc-pkgs"
قم بتنزيل meta-layer المضغوطة مع الوصفة من meta-interelectronix -rpi.
تكوين الصورة العامة
قم بتنزيل ملفات التكوين المضغوطة من rpi4-build.
ألقِ نظرة أولاً على ملف bblayers.conf. في الداخل تجد meta-layers اللازمة. قم بتنزيل meta-layers، إذا لم تكن قد فعلت ذلك بالفعل واضبط ملف bblayers.conf الخاص بك.
ثانيًا، ألق نظرة على الملف local.conf.
إعدادات I2C
إذا كنت ترغب في استخدام شريحة مستشعر (مثل مستشعر درجة الحرارة) متصلة بـ I2C، فعليك تمكين I2C في ملف local.conf.
ENABLE_I2C = "1"
KERNEL_MODULE_AUTOLOAD_rpi += " i2c-dev"
إزالة X 11 وWayland
هناك العديد من الأخطاء في عملية bitbak ، إذا لم نقم بإزالة X 11 و Wayland
في حالتنا - لأننا لا نحتاج إلى نوافذ متعددة - نقوم بإزالتها.
DISTRO_FEATURES:remove = "ptest x11 wayland vulkan directfb"
لاستخدام eglfs بشكل صحيح، نضيف:
VC4DTBO ?= "vc4-fkms-v3d"
صورة bitbake Raspberry
في الملف "rpi4-64-qt5-gpio-image.bb"، نحدد الحزم التي نحتاجها في توزيع linux. هنا يمكنك - كما ذكرنا من قبل - تضمينIMAGE_FEATURES "dev-pkgs".
يتم فصل الملف إلى عدة أقسام على سبيل المثال DEV - SDK و EXTER_TOOLS وما إلى ذلك، لإضافة الحزم المطلوبة بسهولة.
حزمة pigpio
تمت إضافة هذه الحزمة تحت CUSTOM_STUFF:
CUSTOM_STUFF = " \
pigpio \
"
الحزم Qt
تتم إضافة الحزم اللازمة لـ Qt إلى مجموعات الحزم ويتم إضافة مجموعات الحزم هذه هنا:
IMAGE_INSTALL:append += " packagegroup-qt5 packagegroup-qt5-toolchain-target packagegroup-qt5-qtcreator-debug"
يمكنك العثور على "packagegroup - qt 5" في الملف "packagegroup - qt 5.bb" وإضافة أو حذف حزم Qt.
قم بتنزيل الطبقة الوصفية المضغوطة مع الصورة من meta-interelectronix-rpi -qt.
بعد ذلك يمكنك تكوين الصورة من خلال برنامج bitbake:
bitbake rpi4-64-qt5-gpio-image
bitbake SDK
إذا كنت ترغب في تطوير تطبيق Qt لتوزيع Linux المخصص هذا، فأنت بالتأكيد تريد الحصول على سلسلة أدوات تجميع متقاطعة، لإضافتها إلى تكوين QtCreator الخاص بك.
يمكنك بسهولة إنشاء SDK باستخدام الأمر bitbake التالي:
bitbake -c populate_sdk rpi4-64-qt5-gpio-image
لدينا مجموعات الحزم "packagegroup - qt 5- toolchain - target packagegroup - qt 5-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.
ترخيص حقوق الطبع والنشر
حقوق الطبع والنشر © 2022 Interelectronixe.K.
رمز مصدر المشروع هذا مرخص بموجب ترخيص** GPL-3.0 **.