البرامج المضمنة - Yocto بناء Raspberry Pi 4 لقطة شاشة لجهاز كمبيوتر

تصنع Yocto Raspberry Pi 4

في بيئة docker

تشغيل يوكتو في حاوية docker

في مستندات yocto هناك فصل (2.2.2) لإعداد CROss PlatformS (المحاصيل) كبديل لإعداد جهاز كمبيوتر لينوكس أصلي.يستخدم هذا البديل حاوية إرساء لإنشاء صورة نظام مخصصة على سبيل المثال لـ Raspberry Pi.

ولسوء الحظ، هناك بعض الأخطاء الصغيرة في توثيق إعداد هذه البيئة لي على Mac OS X (مونتيري).### إعداد حاوية docker لنظام التشغيل Mac OS X

هناك بعض الإعدادات الخاصة المطلوبة لاستخدام CROPS docker على Linux وWindows وMac OS X. قبل إعداد الحاوية الخاصة بـ Yocto، يجب إنشاء وحدة تخزين لجهاز الإرساء لتخزين النتائج. كما يتم استخدام حاوية samba لجهاز الإرساء لتوفير الملفات في Mac OS X.

إنشاء وحدة تخزين

في نافذة طرفية اكتب الأوامر التالية:

<:code1

:>### إنشاء وتشغيل حاوية samba

لن يسمح لك نظام التشغيل OSX بالاتصال بمشاركة samba التي يتم تشغيلها محليًا. لذلك، عليك أولاً إنشاء اسم مستعار لـ 127.0.0.1 من 127.0.0.2.

sudo ifconfig lo0 127.0.0.2 alias up

ثم قم بإنشاء حاوية samba، التي تسمح لك برؤية الملفات في وحدة تخزين جهاز الإرساء:

docker create -t --expose 445 -p 127.0.0.2:445:445 --name samba -v raspberry:/workdir crops/samba

نظرًا لأنك ستحتاج دائمًا إلى الاسم المستعار للاتصال بحاوية samba، يمكنك الجمع بين بداية samba والاسم المستعار مثل ذلك:

docker start samba && sudo ifconfig lo0 127.0.0.2 alias up

يمكنك الآن فتح workdir في متصفح الملفات. في الباحث اضغط على "Command - K" وفي مربع عنوان الخادم نوع "smb://127.0.0.2/workdir" وانقر على "Connect". الآن يجب أن ترى محتوى وحدة تخزين جهاز الإرساء في المكتشف.

إنشاء وتشغيل حاوية Yocto

لإنشاء و/أو بدء تشغيل نوع حاوية Yocto في نافذة طرفية:

docker run --rm -it --name=crops-poky -v raspberry:/workdir crops/poky:ubuntu-20.04 --workdir=/workdir

إعداد بيئة الإنشاء في الحاوية

عند بدء تشغيل حاوية جهاز الإرساء، يكون لديك موجه طرفي يبدو كما يلي: "pokyuser@d4ddfe042587:/workdir".

الآن يمكنك إعداد بيئة البناء.

استنساخ نسخة بوكي

في حالتي أستخدم إصدار يوكتو 3.4 باسم "هونيستر"، لأن طبقات meta-raspberry غير متوفرة لإصدارات poky الأحدث في هذا الوقت. لأول مرة عليك استنساخ مستودع poky:

docker volume create --name raspberry
docker run -it --rm -v raspberry:/workdir busybox chown -R 1000:1000 /workdir

إذا كنت ترغب في تحديث poky إلى أحدث إصدار:

sudo ifconfig lo0 127.0.0.2 alias up

:>#### طبقات ميتا إضافية لـ Raspberry Pi

قم بالتغيير إلى "poky - honister" واستنسخ المستودعات التالية: meta - raspberry،meta-raspberry, meta-openembedded and if needed meta-qt5

docker create -t --expose 445 -p 127.0.0.2:445:445 --name samba -v raspberry:/workdir crops/samba

:>### إعداد تكوين البناء

اترك دليل poky - honister، بحيث تكون في /workdir. الآن صمم مصدر بيئة البناء باستخدام البرنامج النصي oe-init-build-env

docker start samba && sudo ifconfig lo0 127.0.0.2 alias up

تم إنشاء دليل جديد "rpi-build" - يمكنك تسميته كما تريد - ودليل Conf مع الملفات bblayers.conf و local.conf و templateconf.cfg.

ونظرًا لعدم وجود محرر نصوص مثبت في الحاوية، يجب عليك إما تحرير ملفات التكوين في وحدة تخزين سامبا المثبتة في Mac OS X أو تثبيت محرر نصوص في الحاوية. وللقيام بذلك، يجب عليك فتح نافذة طرفية ثانية - أثناء تشغيل حاوية yocto - وبدء تشغيل قشرة باش في الحاوية مع امتيازات الجذر:

docker run --rm -it --name=crops-poky -v raspberry:/workdir crops/poky:ubuntu-20.04 --workdir=/workdir

بعد ذلك يمكنك تحرير ملفات التكوين في حاوية yocto كـ pokyuser.

ملاحظة

لم يتم تثبيت المحرر بشكل دائم. وبعد الخروج من الحاوية والدخول مرة أخرى، يجب عليك تثبيتها مرة أخرى

أولاً أضف meta-raspberry العليق في ملف bblayers.conf

<: code6:>

أضف "/ workdir/poky - honister/meta - raspberrypi " بحيث يبدو

cd poky-honister
git pull --all --prune

واحفظه.

التعديل الثاني للـ local.conf

تحرير الملف local.conf:

<:code 8:>

تغيير السطور التالية:

-الآلة؟= "qemux86-64" -> MACHINE ??=" Raspberrypi 4-64 "

اعتمادا على أي Raspberry تريد استخدامه (Raspberrypi 0, Raspberrypi 0 w, Raspberrypi 3, Raspberrypi 3-64, Raspberrypi 4, Raspberrypi 4-64, etc)

إلغاء التعليق على السطور التالية:

  • DL_DIR؟= "${TOPDIR}/downloads"
  • SSTATE_DIR ?="${TOPDIR}/ sstate - cache "
  • TMPDIR ="${TOPDIR}/ tmp"

أضف السطور التالية في النهاية، للحصول على sdimg ليومض إلى بطاقة SD:

  • IMAGE_FSTYPES =" ext4.xz rpi - sdimg "
  • SDIMG_ROOTFS_TYPE =" ext4.xz "

احفظ ملف local.conf.

####Bitbake الصورة الأولى

الآن لديك الحد الأدنى من الإعدادات لإنشاء الصورة الأولى:

cd ..
source poky-honister/oe-init-build-env rpi-build

في وثائق Yocto، ستجد وصفًا قصيرًا لأوصاف الصور المتاحة.على سبيل المثال:

  • core-image-minimal: صورة صغيرة قادرة فقط على السماح للجهاز بالتمهيد.
  • core-image-base: صورة لوحدة التحكم فقط تدعم جهاز الجهاز المستهدف بالكامل.
  • Core - image - full - cmdline: صورة لوحدة التحكم فقط مع تثبيت وظائف نظام Linux كاملة الميزات.

وبعد فترة - والتي يمكن أن تكون ساعات عمل الخادم لأول مرة - ينتهي bitbake وستجد ملف sdimg في الدليل التالي:

docker exec -it --user=root crops-poky bash
apt-get install nano
exit

تكوينات إضافية

تكوينات أجهزة raspberry الإضافية

لتعيين إعدادات أجهزة معينة، يمكنك إلقاء نظرة على extra-apps.md وextra-build-config.md.يمكنك العثور على هذه الملفات أيضًا في دليل meta - raspberrypi/docs.

توفر الطبقة الوصفية أيضًا تكوين الصورة "rpi - test - image" لاستخدامها مع bitbake. وتستند الصورة إلى "core-image-base" الذي يشمل معظم الطرود في meta-raspberrypi وبعض عينات الوسائط.

docker exec -it --user=root crops-poky bash
apt-get install nano
exit

تكوينات البرامج الإضافية

اعتمادًا على تكوين إنشاء الصورة الذي تستخدمه، قد تحتاج إلى تثبيت حزم برامج إضافية.

يمكنك القيام بذلك، عن طريق إضافة بعض الإعدادات إلى ملف local.conf.

على سبيل المثال، أضف السطور التالية، لتعيين خادم ssh، مستخدم pi وsystemd:

nano conf/bblayers.conf

أو أضف python:

BBLAYERS ?= " \
  /workdir/poky-honister/meta \
  /workdir/poky-honister/meta-poky \
  /workdir/poky-honister/meta-yocto-bsp \
  /workdir/poky-honister/meta-raspberrypi \
  "

ملاحظة

مساحة البداية في " python3 python3-pip rpi-gpio raspi-gpio" مهمة، لأن النص ملحق بالتكوين الحالي ويجب فصله مع هذه المساحة.

ترخيص حقوق الطبع والنشر

حقوق الطبع والنشر © 2022 Interelectronixe.K.
رمز مصدر المشروع هذا مرخص بموجب ترخيص** GPL-3.0 **.

شكر وتقدير

المصادر المستخدمة في إنشاء هذه التعليمات:

شكرًا للجميع.