GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit vlastní linuxové distro pomocí Yocto

Linux se stal spolehlivým nástrojem pro vytváření operačních systémů pro vestavěné systémy. Křivka učení pro vestavěné vývojové nástroje však může být docela náročná. Mnoho lidí, kteří používají tyto složité nástroje, strávilo spoustu času jejich pochopením a zvládnutím a Yocto není jiné. S ním můžete vyvinout vlastní minimální distribuci Linuxu pro váš projekt vestavěného systému.

Tento příspěvek vám poskytne krok za krokem průvodce, jak začít s Yocto a vytvořit minimální distribuci Linuxu.

Projekt Yocto

Yocto je opensource projekt spolupráce zaměřený na vytváření nástrojů, šablon a procesů potřebných k vývoji vlastních systémů založených na Linuxu pro vestavěné systémy navzdory základní hardwarové architektuře. Yocto bylo spuštěno v březnu 2011 ve spolupráci 22 organizací, včetně OpenEmbedded, který funguje jako jeho sestavovací systém.

Výstup sestavení projektu Yocto se skládá ze tří hlavních komponent:

  • Cílení na binární soubory za běhu: Obsahuje všechny pomocné soubory potřebné k nasazení Linuxu v cílovém systému. Mezi další soubory patří bootloader, jádro, moduly jádra, obraz kořenového souborového systému.
  • Zdroj balíčku: To se týká softwarových balíčků potřebných pro váš systém. Můžete také vybrat správce balíčků, kterého potřebujete pro svůj systém – deb, dnf, ipk atd. Takové balíčky můžete zahrnout do binárních souborů Target runtime nebo je přidat později do již nasazeného systému.
  • Cílová sada SDK: Toto jsou knihovny a hlavičkové soubory, které ukazují systém nainstalovaný v cíli. Používají je hlavně vývojáři aplikací, aby zajistili propojení správných knihoven podle systému.

Proč nepoužíváme existující distribuci?

Zpočátku vestavěné systémy používaly běžně dostupné distribuce a snažily se je přizpůsobit tak, aby vyhovovaly jejich potřebám. To zahrnovalo odstranění nepotřebných balíčků pro optimalizaci úložiště a zvýšení zabezpečení. Mrtvý software může způsobit, že systém bude zranitelný vůči různým vektorům útoku. I přes tyto výhody představovalo používání stávající distribuce několik výzev.

Jedním z nich je, že celý proces stahování balíků nebyl snadný. Odstranění některých balíčků by mohlo narušit závislosti držené různými jinými balíčky, které by pro vás mohly být užitečné. Některé balíčky byly navíc integrovány s procesem bootování a běhu, takže jejich odstraňování bylo zdlouhavé.

Stávající distribuce proto často vedla ke zbytečným zpožděním nebo k tomu, že systém nesplňoval všechny požadované standardy.

Pojďme začít.

Vytvoření vlastního linuxového distra pomocí Yocto

Krok 1:Požadavky na hardware a operační systém

  • Minimálně 4 GB RAM (čím vyšší, tím lepší)
  • Nejnovější operační systém Ubuntu (20.04 LTS) nebo jakýkoli jiný operační systém Linux:
    • Fedora
    • openSUSE
    • CentOS
    • Debian
  • Minimálně 100 GB volného místa na pevném disku (větší velikost zaručí lepší výkon). Yocto může být poměrně náročné na zdroje v závislosti na vašem cílovém konečném produktu.

Pokud jste uživatelem macOS nebo Windows, použijte ke spuštění distribuce Linuxu virtualizační software, jako je VMware nebo Virtualbox. Případně se můžete rozhodnout pro multiboot.

Krok 2:Nastavte hostitele

Nejprve nainstalujte požadované závislosti do našeho hostitelského systému. Pro tento příspěvek používám distribuci Ubuntu. Pokud provozujete jinou distribuci, projděte si průvodce Yocto Project Quick Start a podívejte se, jaké závislosti je třeba nainstalovat.

Spusťte Terminál a proveďte níže uvedené příkazy:

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

Krok 3:Naklonujte Yocto Poky

S nainstalovanými závislostmi můžeme přistoupit ke stažení Yocto. Naklonujeme úložiště Yocto z webu projektu Yocto. Proveďte níže uvedený příkaz, který stáhne nejnovější verzi (větev „sumo“). Vytvoříme adresář ve složce Home pro sestavení našeho projektu Yocto pro snadný přístup a konzistenci.

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

Pokud se zobrazí chyba jako „příkaz git nenalezen,“ to znamená, že ve svém systému nemáte nainstalovaný git. Nainstalujte jej provedením níže uvedeného příkazu.

sudo apt install git

Krok 4:Inicializujte vestavěné prostředí.

Abychom mohli začít s Yocto, musíme inicializovat ‚sestavení prostředí.‘ Spusťte níže uvedené příkazy. První z nich změní adresář na složku, kterou jsme právě naklonovali. Druhý příkaz inicializuje ‚sestavení prostředí.‘

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

Po dokončení inicializace budeme mít adresář sestavení a konfigurační soubor. Adresář sestavení je místem, kde probíhá veškeré budování systému a po dokončení procesu hostí soubory s obrázky. Ve skutečnosti po inicializaci terminál automaticky ukáže na složku sestavení. Můžete to vidět na obrázku výše.

Krok 5:Konfigurace

Když spustíte příkaz ls v adresáři /build, uvidíte složku /conf, která obsahuje všechny naše konfigurační soubory. Přejděte do této složky pomocí příkazu níže:

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

Spuštěním příkazu ls ve složce conf byste měli vidět soubor local.conf. Tento soubor specifikuje podrobnosti o cílovém počítači a SDK pro požadovanou cílovou architekturu.

Otevřete tento soubor pro úpravy pomocí příkazu níže:

$ sudo nano local.conf

Z obrázku níže je cílový stroj pro sestavení „qemux86-64.“

Nyní pokračujte v odkomentování následujících řádků, jak je znázorněno na obrázku níže. (Odkomentováním máme na mysli -odstranit znak „#“)

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

Než budeme pokračovat v procesu kompilace, přidejte na konec souboru ‚local.conf‘ následující řádky.

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

Nahradit „X“ s dvojnásobným počtem procesorů/CPU ve vašem počítači. Pokud tedy máte čtyři procesory, měli byste následující příkazy:BB_NUMBER_THREADS =„8“ PARALLEL_MAKE =„-j 8“

Chcete-li zobrazit počet CPU ve vašem počítači, proveďte následující příkaz:

lscpu

Krok 5:Proces kompilace a sestavování

Chcete-li začít s vytvářením bitové kopie, spusťte níže uvedený příkaz v adresáři /build.

bitbake core-image-sato

Tím se začnou stahovat a kompilovat balíčky pro cílový systém. Prosím, neprovádějte výše uvedený příkaz bitbake s právy root, protože by došlo k chybě. Při prvním sestavení může proces trvat až několik hodin (dokonce více než 2). Občas může bitbake narazit na chybu. Nepanikařte; proveďte znovu výše uvedený příkaz. Chyba může být způsobena výpadkem konkrétního webu nebo chybějícím zdrojem.

Výsledné binární obrazy jsou uloženy v adresáři /build na poky/build/tmp/deploy/images/qemux86.

Závěr

Zatímco Yocto může být docela těžké zvládnout na jedno sezení, je to skvělý nástroj, jak začít s vytvářením vlastní distribuce Linuxu pro váš projekt. Doufám, že vám tento příspěvek poskytl podrobný postup, jak začít s celým procesem vytváření vlastní distribuce Linuxu.


Linux
  1. Jak zálohovat celý systém Linux pomocí Rsync

  2. Jak vytvořit fyzický svazek v Linuxu pomocí LVM

  3. Jak vytvořit uživatele Linuxu pomocí Ansible

  1. Vytvořte si svůj vlastní server pro streamování videa s Linuxem

  2. Jak vytvořit soubor v Linuxu pomocí terminálu/příkazového řádku

  3. Jak vytvořit nový souborový systém Ext4 (oddíl) v Linuxu

  1. Jak monitorovat váš Linux Server pomocí osquery

  2. Jak defragmentovat váš systém Linux

  3. Jak zachránit váš systém Windows nebo Linux pomocí Rescatux