Distribusi mana yang lebih baik digunakan untuk sistem embedded Anda?

Distribusi mana yang lebih baik digunakan untuk sistem embedded. Masalah ini relevan hari ini.

Ada tiga pendekatan yang relevan untuk menyelesaikan masalah ini:

  1. Gunakan distribusi yang sudah jadi untuk komputer papan tunggal Anda (Armbian, Openwrt, dll.)
  2. Bangun dan konfigurasikan distribusi Anda menggunakan sistem bangun (Buildroot / Yocto, dll.).
  3. Gunakan bundload bootloader Anda (u-boot) + kernel (kernel) + rootfs (busybox).

Jika ada yang tahu, silakan tulis di komentar.
PEMBARUAN
Proyek OpenWRT adalah sistem pembangunan (ini bukan buildroot) dan proyek yang menyediakan gambar rakitan yang sudah jadi untuk papan target Anda.


Distribusi siap pakai


Saya percaya menggunakan distribusi yang sudah jadi adalah cara termudah dan termudah. Anda dapat mengunduh gambar yang sudah jadi atau membuatnya sendiri. Merakit gambar Armbain Anda tidak selalu fleksibel, karena Anda tidak dapat memilih versi kernel Linux, tetapi hanya menggunakan yang disediakan.

Keuntungan utama dari distribusi yang sudah jadi juga harus dijawab - stabilitasnya.
Sebagai permulaan, saya akan merekomendasikan distribusi ini.


Armbian adalah distribusi Linux populer yang tersedia untuk berbagai macam perangkat ARM: Orange Pi, Banana Pi, Odroid, dll ... Itu didasarkan pada Ubuntu dan / atau Debian.
www.armbian.com



OpenWrt adalah sistem operasi tertanam yang didasarkan pada kernel Linux dan dirancang terutama untuk router rumah. Komponen utama termasuk kernel Linux, util-linux, uClibc atau musl, dan BusyBox. Ukuran semua komponen dioptimalkan karena kenyataan bahwa sebagian besar router rumah memiliki jumlah memori yang sangat terbatas.

Saya akan menambahkan sendiri, cocok untuk papan dengan wi-fi di papan (misalnya, Orange Pi Zero).
openwrt.org

Sistem perakitan


Keuntungan utama dari sistem rakitan adalah Anda dapat membangun Linux yang minimal dan fleksibel untuk sistem tertanam.

Buildroot



Buildroot adalah sistem pembangunan distribusi untuk sistem tertanam. Ini mendukung banyak papan dan hasil kerjanya adalah bootloader, kernel dan image yang dirakit
sistem file.

Apa yang memungkinkan untuk membangun buildroot untuk sistem Anda:

  • gambar sistem;
  • Sistem ini memungkinkan Anda untuk memilih versi kernel - apa saja.
  • Anda dapat menambahkan tambalan dan menginstal program apa pun.
  • konfigurasi utilitas yang fleksibel (mis. busyBox, bash, dll.)

Perlu dicatat bahwa semua sumber tambahan ditarik dari jaringan.

Membedakan majelis seperti itu, misalnya, dari majelis Armbian:

  • distribusi tidak dibangun atas dasar (Debian atau Ubuntu), tetapi Linux fleksibel kustom.
  • ukuran perakitan minimum.
  • pemilihan versi kernel apa saja.

buildroot.org

3. Menggunakan bundel Anda:

Untuk ini kita perlu:

  • Cross compiler (mis. Linaro);
  • Bootloader (mis. U-boot);
  • Kernel;
  • RootFs (mis. Busybox).

Jadi ayo pergi.
Jadi kami akan mengumpulkan secara lokal di mesin kami, kami memerlukan cross compiler, misalnya linaro. Cross compiler akan membantu arsitektur x86 untuk merakit distribusi kami untuk platform ARM target.
www.linaro.org

Selanjutnya, Anda perlu membuat bootloader.

Bootloader (U-Boot) - Bootloader paling populer untuk ARM, adalah U-boot. Tugas utama bootloader adalah mem-boot kernel Linux Kernel. Anda juga dapat menggunakan, misalnya, kotak kotak atau yang lain.
www.denx.de/wiki/U-Boot


Selanjutnya Kita perlu membangun kernel, pada output kita perlu mendapatkan kernel image dan pohon perangkat untuk platform target kita.
www.kernel.org

RootFs adalah sistem file root yang akan dipasang oleh Kernel setelah booting. Saya sarankan menggunakan Busybox.


busybox.net

Kesimpulan


Saya tidak mengatakan bahwa ada pendekatan yang buruk atau baik. Masing-masing memiliki kelebihan dan kekurangannya sendiri. Itu tergantung pada tugas Anda dan hasil apa yang Anda butuhkan.

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


All Articles