V tomto článku se zaměřujeme na vytvoření minimální distribuce Linuxu pomocí projektu Yocto na platformě Ubuntu. Projekt Yocto je velmi známý ve světě vestavěného Linuxu díky své flexibilitě a snadnému použití. Účelem projektu Yocto je vytvořit linuxové distro pro výrobce vestavěného hardwaru a softwaru. Pro qemu jako cílový počítač (qemu je základní softwarový emulátor) bude vytvořeno nové minimální linuxové distro a spustíme ho v qemu.
Předpoklady pro vývojový stroj
- Alespoň 4–6 GB RAM.
- Nedávný operační systém Ubuntu (v tomto případě 16.04 LTS).
- Alespoň 60–80 GB volného místa na disku.
- Instalace následujících balíčků před vytvořením nové distribuce Linuxu.
- Stáhněte si nejnovější stabilní větev Yocto (Poky, což je minimální vývojové prostředí).
apt-get update
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
Jak je uvedeno níže, k instalaci požadovaných vývojových balíčků je zapotřebí téměř 1 GB velikosti.
V tomto tutoriálu je "morty" stabilní vydání poky naklonováno v systému.
git clone -b morty git://git.yoctoproject.org/poky.git
Přejděte do adresáře "poky" a spusťte následující příkaz pro nastavení/exportování některých proměnných pro vývoj yocto.
source oe-init-build-env
Jak je znázorněno níže, po spuštění skriptu prostředí otevřeného embedded (oe) sestavení se umístění cesty v terminálu změní na adresář „build“ pro další konfiguraci a kompilaci nové distribuce.
Výše uvedený snímek obrazovky ukazuje, že soubor „local.conf“ je vytvořen v adresáři „conf“. Toto je konfigurační soubor pro yocto, který specifikuje podrobnosti o cílovém počítači a SDK pro požadovanou architekturu atd.
Jak je uvedeno níže, nastavení cílového počítače "qemux86-64".
Odkomentujte následující parametry v souboru "local.conf", jak je znázorněno na snímcích obrazovky.
DL_DIR ?= "${TOPDIR}/downloads"
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
TMPDIR ?= "${TOPDIR}/tmp"
PACKAGE_CLASSES ?= "package_rpm"
SDKMACHINE ?= "i686"
Jak je ukázáno níže, nastavte prázdné heslo pro Linux založený na Yocto a zahrňte následující parametry do souboru local.conf. V opačném případě se uživatel nebude moci přihlásit do nového distro.
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
K vytvoření operačního systému Linux nepoužíváme žádný nástroj GUI, jako je toaster (varná deska již není podporována).
Proces sestavování a sestavování Yocto
Nyní spusťte následující příkaz nástroje bitbake a spusťte stahování a kompilaci balíčků pro vybraný cílový počítač.
bitbake core-image-minimal
Je důležité spouštět výše uvedený příkaz jako normální uživatel Linuxu a ne jako uživatel root. Jak ukazuje následující snímek obrazovky, při spuštění příkazu bitbake jako uživatel root se vygeneruje chyba.
Znovu spusťte skript exportu proměnných prostředí (oe-init-build-env) a znovu spusťte stejný příkaz pro zahájení procesu stahování a kompilace.
Jak je ukázáno níže, prvním krokem nástroje sestavení skriptu je analyzovat recept.
Následující snímek obrazovky ukazuje dokončení kroku analýzy skriptu sestavení. Zobrazuje také podrobnosti o systému sestavení, na kterém bude generováno nové distro založené na yocto.
Po stažení SDK a potřebných knihoven je dalším krokem stažení a kompilace balíčků. Následující snímek obrazovky ukazuje úkol pro novou distribuci. Tento krok bude trvat 2–3 hodiny, protože nejprve stáhne požadované balíčky a poté se zkompiluje pro novou distribuci Linuxu.
Následující snímek obrazovky ukazuje dokončení seznamu úkolů.
Zkompilované nové obrázky pro typ cílového počítače "qemux86-64" jsou uvnitř cesty "build/tmp/deploy/images/qemux86-64", jak je uvedeno níže.
Jak je ukázáno níže, výše uvedený příkaz způsobí chybu, pokud je spuštěn v Putty.
Výše uvedený příkaz je opět spuštěn uvnitř terminálu přes rdp na platformě Ubuntu.
Otevře se další obrazovka pro emulátor qemu pro novou distribuci Linuxu na bázi yocto.
Níže je zobrazena přihlašovací obrazovka nového distra, která také ukazuje referenční verzi projektu yocto. Výchozí uživatelské jméno je root a prázdné heslo.
Nakonec se přihlaste do nového distra s uživatelským jménem root a prázdným heslem. Jak ukazuje následující snímek obrazovky, základní příkazy (date,ifconfig a uname) jsou spouštěny v minimální verzi Linuxu.
Účelem tohoto článku je porozumět postupu vytváření nové distribuce Linuxu pomocí projektu yocto.