GNU/Linux >> Belajar Linux >  >> Linux

Cara membuat distro Linux Anda sendiri menggunakan Yocto

Linux telah menjadi utilitas yang andal untuk membuat sistem operasi untuk sistem tertanam. Namun, kurva pembelajaran untuk utilitas pengembangan tertanam bisa sangat menantang. Banyak orang yang menggunakan alat kompleks ini telah menghabiskan banyak waktu untuk memahami dan menguasainya, dan Yocto tidak berbeda. Dengannya, Anda dapat mengembangkan distribusi Linux minimal khusus untuk proyek sistem tertanam Anda.

Posting ini akan memberi Anda panduan langkah demi langkah untuk memulai dengan Yocto untuk membuat distribusi Linux minimal.

Proyek Yocto

Yocto adalah proyek kolaboratif opensource yang bertujuan untuk membuat alat, templat, dan proses yang diperlukan untuk mengembangkan sistem berbasis Linux khusus untuk sistem tertanam terlepas dari arsitektur perangkat keras yang mendasarinya. Yocto Diluncurkan pada Maret 2011 sebagai kolaborasi dari 22 organisasi, termasuk OpenEmbedded, yang bertindak sebagai sistem pembangunannya.

Keluaran dari pembangunan Proyek Yocto terdiri dari tiga komponen utama:

  • Biner waktu proses target: Ini berisi semua file tambahan yang diperlukan untuk menyebarkan Linux pada sistem target. File lainnya termasuk bootloader, kernel, modul kernel, image sistem file root.
  • Umpan paket: Ini mengacu pada paket perangkat lunak yang diperlukan untuk sistem Anda. Anda juga dapat memilih manajer paket yang Anda perlukan untuk sistem Anda – deb, dnf, ipk, dll. Anda dapat menyertakan paket tersebut di binari runtime Target atau menambahkannya nanti ke sistem yang sudah diterapkan.
  • SDK Target: Ini adalah file library dan header yang menunjukkan sistem yang diinstal pada target. Mereka terutama digunakan oleh pengembang aplikasi untuk memastikan mereka menautkan perpustakaan yang tepat sesuai sistem.

Mengapa kita tidak menggunakan Distro yang sudah ada?

Awalnya, sistem tertanam menggunakan distribusi rak dan mencoba menyesuaikannya agar sesuai dengan kebutuhan mereka. Itu termasuk menghapus paket yang tidak perlu untuk pengoptimalan penyimpanan dan meningkatkan keamanan. Memiliki perangkat lunak yang mati dapat membuat sistem rentan terhadap berbagai vektor serangan. Bahkan dengan kelebihan ini, menggunakan distro yang ada menimbulkan beberapa tantangan.

Salah satunya adalah bahwa seluruh proses pengupasan paket tidak mudah. Menghapus beberapa paket dapat merusak dependensi yang dimiliki oleh berbagai paket lain yang mungkin berguna bagi Anda. Selain itu, beberapa paket terintegrasi dengan proses boot dan runtime, membuat penghapusannya menjadi membosankan.

Oleh karena itu, distro yang ada sering kali menyebabkan penundaan yang tidak perlu atau memiliki sistem yang tidak memenuhi semua standar yang dipersyaratkan.

Mari kita mulai.

Membuat distro Linux Anda sendiri menggunakan Yocto

Langkah 1:Persyaratan perangkat keras dan OS

  • Minimal RAM 4gb (Semakin tinggi, semakin baik)
  • OS Ubuntu Terbaru (20.04 LTS) Atau Sistem Operasi Linux lainnya:
    • Fedora
    • openSUSE
    • CentOS
    • Debian
  • Minimum 100 GB ruang hard disk kosong (Ukuran yang lebih besar akan menjamin kinerja yang lebih baik). Yocto bisa sangat padat sumber daya, bergantung pada produk akhir target Anda.

Jika Anda pengguna macOS atau Windows, gunakan perangkat lunak virtualisasi seperti VMware atau Virtualbox untuk menjalankan distribusi Linux. Atau, Anda dapat memilih multiboot.

Langkah 2:Siapkan host

Biarkan terlebih dahulu menginstal dependensi yang diperlukan di sistem host kami. Untuk posting ini, saya menggunakan distribusi Ubuntu. Jika Anda menjalankan distro lain, silakan lihat panduan Memulai Cepat Proyek Yocto dan lihat dependensi apa yang harus diinstal.

Luncurkan Terminal dan jalankan perintah di bawah ini:

sudo apt update
sudo apt-get install wget git-core unzip make gcc g++ build-essential subversion sed autoconf automake texi2html texinfo coreutils diffstat python-pysqlite2 docbook-utils libsdl1.2-dev libxml-parser-perl libgl1-mesa-dev libglu1-mesa-dev xsltproc desktop-file-utils chrpath groff libtool xterm gawk fop

Langkah 3:Kloning Yocto Poky

Dengan dependensi terinstal, kita dapat melanjutkan untuk mengunduh Yocto. Kami akan mengkloning repositori Yocto dari situs web Proyek Yocto. Jalankan perintah di bawah ini, yang akan mengunduh rilis terbaru (cabang "sumo"). Kami akan membuat direktori di folder Beranda untuk membangun proyek Yocto kami untuk kemudahan akses dan konsistensi.

mkdir ~/yocto
mkdir ~/yocto/Project-One/
cd ~/Yocto/Project-One/
git clone -b sumo git://git.yoctoproject.org/poky.git

Jika Anda mendapatkan pesan kesalahan seperti “git command not found”, itu berarti Anda belum menginstal git di sistem Anda. Jalankan perintah di bawah ini untuk menginstalnya.

sudo apt install git

Langkah 4:Inisialisasi lingkungan buatan.

Untuk memulai dengan Yocto, kita perlu menginisialisasi 'build environment'. Jalankan perintah di bawah ini. Yang pertama akan mengubah direktori ke folder yang baru saja kita kloning. Perintah kedua akan menginisialisasi 'build environment'.

cd ~/Yocto/Project-One/poky
source oe-init-build-env build

Setelah inisialisasi selesai, kita akan memiliki direktori build dan file konfigurasi. Direktori build adalah tempat semua pembangunan sistem terjadi dan menyimpan file gambar setelah proses selesai. Sebenarnya, setelah inisialisasi, Terminal akan secara otomatis menunjuk ke folder build. Anda dapat melihatnya pada gambar di atas.

Langkah 5:Konfigurasi

Ketika Anda menjalankan perintah ls di direktori /build, Anda akan melihat folder /conf yang berisi semua file konfigurasi kami. Arahkan ke folder ini dengan perintah di bawah ini:

$ cd ~/Yocto/Project-One/poky/build/conf/
$ ls

Dengan menjalankan perintah ls pada folder conf, Anda akan melihat file local.conf. File ini menentukan detail mesin target dan SDK untuk arsitektur target yang diinginkan.

Buka file ini untuk diedit dengan perintah di bawah ini:

$ sudo nano local.conf

Dari gambar di bawah, mesin build target adalah “qemux86-64.”

Sekarang, lanjutkan untuk menghapus komentar pada baris berikut, seperti yang ditunjukkan pada gambar di bawah. (Dengan membatalkan komentar, yang kami maksud adalah -hapus tanda '#')

DL_DIR ?= "${TOPDIR}/downloads"
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
TMPDIR ?= "${TOPDIR}/tmp"
PACKAGE_CLASSES ?= "package_rpm"
SDKMACHINE ?= "i686"
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"

Sebelum kita melanjutkan proses kompilasi, tambahkan baris berikut di akhir file 'local.conf'.

BB_NUMBER_THREADS = "X"
PARALLEL_MAKE = "-j X"

Ganti 'X' dengan menggandakan jumlah prosesor/CPU di komputer Anda. Oleh karena itu, jika Anda memiliki empat prosesor, maka Anda akan memiliki pernyataan seperti ini:BB_NUMBER_THREADS =“8” PARALLEL_MAKE =“-j 8”

Untuk melihat jumlah CPU di komputer Anda, jalankan perintah di bawah ini:

lscpu

Langkah 5:Proses Kompilasi dan Pembuatan

Untuk mulai membuat image, jalankan perintah di bawah ini di direktori /build Anda.

bitbake core-image-sato

Itu akan mulai mengunduh dan mengkompilasi paket untuk sistem target. Tolong, jangan jalankan perintah bitbake di atas dengan hak akses root karena akan menimbulkan kesalahan. Untuk build pertama kali, prosesnya bisa memakan waktu hingga beberapa jam (bahkan lebih dari 2). Terkadang bitbake mungkin mengalami kesalahan. Jangan panik; jalankan kembali perintah di atas. Kesalahan mungkin disebabkan oleh situs web tertentu yang sedang down atau sumber daya yang hilang.

Gambar biner yang dihasilkan disimpan dalam direktori /build di poky/build/tmp/deploy/images/qemux86.

Kesimpulan

Meskipun Yocto bisa sangat sulit untuk dikuasai dalam sekali duduk, ini adalah utilitas yang bagus untuk memulai dengan membuat distribusi Linux khusus untuk proyek Anda. Saya harap posting ini memberi Anda prosedur terperinci tentang cara memulai seluruh proses membangun distribusi Linux khusus.


Linux
  1. Cara Mencadangkan Seluruh Sistem Linux Anda Menggunakan Rsync

  2. Cara membuat volume fisik di Linux menggunakan LVM

  3. Cara membuat Pengguna Linux Menggunakan Ansible

  1. Buat server streaming video Anda sendiri dengan Linux

  2. Cara Membuat File di Linux Menggunakan Terminal/Command Line

  3. Cara Membuat Sistem File (Partisi) Ext4 Baru di Linux

  1. Cara Memantau Server Linux Anda menggunakan osquery

  2. Cara mendefrag sistem Linux Anda

  3. Cara Menyelamatkan Sistem Windows atau Linux Anda dengan Rescatux