ما التوزيع الأفضل لاستخدامه في نظامك المضمن؟

أي التوزيع هو أفضل للاستخدام للأنظمة المدمجة. هذه القضية ذات صلة اليوم.

هناك ثلاث طرق ذات صلة لحل هذه المشكلة:

  1. استخدم توزيعًا جاهزًا لجهاز الكمبيوتر أحادي اللوحة (Armbian ، Openwrt ، إلخ.)
  2. قم بإنشاء وتكوين التوزيع باستخدام أنظمة الإنشاء (Buildroot / Yocto ، إلخ).
  3. استخدم أداة تحميل bootloader الخاصة بك (u-boot) + kernel (kernel) + rootfs (busybox).

إذا كان أي شخص آخر يعرف ، يرجى الكتابة في التعليقات.
UPDATE.
يعد مشروع OpenWRT نظامًا للبناء (ليس نظامًا أساسيًا) ومشروعًا يوفر صورًا مجمعة جاهزة للوحة الهدف.


توزيعات جاهزة


أعتقد أن استخدام التوزيع الجاهز هو الطريقة الأسهل والأسهل. يمكنك تنزيل الصورة النهائية أو بناء صورتك الخاصة. إن تجميع صورتك في Armbain ليس مرنًا دائمًا ، لأنه لا يمكنك تحديد أي إصدار من نواة Linux ، ولكن لا تستخدم إلا الإصدارات المتوفرة.

يجب أيضًا الإجابة على الميزة الرئيسية للتوزيعات الجاهزة - استقرارها.
بالنسبة للمبتدئين ، أود أن أوصي هذه التوزيعات.


Armbian هو توزيع Linux شهير متوفر لمجموعة واسعة من أجهزة ARM: Orange Pi ، و Banana Pi ، و Odroid ، وما إلى ذلك ... يعتمد على Ubuntu و / أو Debian.
www.armbian.com



OpenWrt هو نظام تشغيل مضمن يستند إلى Linux kernel ومصمم بشكل أساسي لأجهزة التوجيه المنزلية. تشمل المكونات الرئيسية نواة Linux و util-linux و uClibc أو musl و BusyBox. تم تحسين حجم جميع المكونات نظرًا لحقيقة أن معظم أجهزة التوجيه المنزلية لديها قدر محدود جدًا من الذاكرة.

أود أن أضيف بنفسي ، وهي مناسبة تمامًا للوحات ذات شبكة wi-fi (على سبيل المثال ، Orange Pi Zero).
openwrt.org

أنظمة التجميع


الميزة الرئيسية لأنظمة التجميع هي أنه يمكنك إنشاء نظام Linux بسيط ومرن للأنظمة المدمجة.

BuildRoot



Buildroot هو نظام بناء التوزيع للأنظمة المدمجة. إنه يدعم مجموعة من اللوحات ونتائج عمله هي أداة تحميل bootloader و kernel والصورة
نظام الملفات.

ما يسمح ببناء buildroot لنظامك:

  • صورة النظام
  • يسمح لك هذا النظام بتحديد إصدار kernel - أي.
  • يمكنك إضافة أي تصحيحات وتثبيت أي برامج.
  • تكوين مرن للأدوات المساعدة (مثل busyBox أو bash أو ما إلى ذلك)

تجدر الإشارة إلى أنه يتم سحب جميع المصادر الإضافية من الشبكة.

تمييز هذا التجميع ، على سبيل المثال ، من مجموعة Armbian:

  • التوزيع غير مبني على أساس (Debian أو Ubuntu) ، ولكن لينكس مرن مخصص.
  • الحد الأدنى لحجم التجمع.
  • اختيار أي إصدار النواة.

buildroot.org

3. استخدام الحزمة الخاصة بك:

لهذا نحتاج:

  • مترجم متقاطع (مثل Linaro) ؛
  • Bootloader (مثل U-boot) ؛
  • النواة.
  • RootFs (مثل Busybox).

لذلك دعونا نذهب.
لذلك سوف نجمع محليا على أجهزتنا نحتاج إلى مترجم متقاطع ، على سبيل المثال linaro. سيساعد المحول البرمجي المتقاطع على هندسة x86 لتجميع توزيعنا لمنصة ARM المستهدفة.
www.linaro.org

بعد ذلك ، تحتاج إلى بناء أداة تحميل التشغيل.

Bootloader (U-Boot) - أكثر برامج تحميل الإقلاع شيوعًا لـ ARM هي U-boot. تتمثل المهمة الرئيسية لمحمل الإقلاع في تشغيل Linux Kernel kernel. يمكنك أيضا استخدام ، على سبيل المثال ، barebox أو آخر.
www.denx.de/wiki/U-Boot


التالي. نحتاج إلى بناء kernel ، في المخرجات نحتاج إلى الحصول على صورة kernel وشجرة الجهاز لمنصة هدفنا.
www.kernel.org

RootFs هو نظام الملفات الجذر الذي سيتم تحميله Kernel بعد التشغيل. أوصي باستخدام Busybox.


busybox.net

استنتاج


أنا لا أقول أن هناك أساليب سيئة أو جيدة. لكل منها مزاياه وعيوبه. ذلك يعتمد على مهمتك والنتيجة التي تحتاج إلى الحصول عليها.

Source: https://habr.com/ru/post/ar465435/


All Articles