البرامج المضمنة Raspberry Pi - Yocto - Raspberry - PIGPIO - Qt لقطة شاشة لبرنامج كمبيوتر

Yocto - Raspberry - PIGPIO - Qt

Linux مع مكتبة pigpio وسلسلة أدوات Qt

bitbake recipe pigpio

إنشاء وصفة لمكتبة 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.

تكوين الصورة العامة

إعدادات local.conf

قم بتنزيل ملفات التكوين المضغوطة من 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

إنشاء سلسلة أدوات 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 **.