Linux се превърна в надеждна програма за създаване на операционни системи за вградени системи. Кривата на обучение за вградените помощни програми за разработка обаче може да бъде доста предизвикателна. Много хора, които използват тези сложни инструменти, са прекарали много време в разбирането и овладяването им, а Yocto не е по-различен. С него можете да разработите персонализирана минимална Linux дистрибуция за вашия вграден системен проект.
Тази публикация ще ви даде стъпка по стъпка ръководство за започване на работа с Yocto за създаване на минимална дистрибуция на Linux.
Проектът Yocto
Yocto е съвместен проект с отворен източник, насочен към създаване на инструменти, шаблони и процеси, необходими за разработване на персонализирани базирани на Linux системи за вградени системи, въпреки основната хардуерна архитектура. Yocto стартира през март 2011 г. като сътрудничество на 22 организации, включително OpenEmbedded, която действа като негова система за изграждане.
Резултатът от изграждането на проекта Yocto се състои от три основни компонента:
- Целеви двоични файлове по време на изпълнение: Това съдържа всички помощни файлове, необходими за разполагане на Linux в целевата система. Други файлове включват буутлоудъра, ядрото, модулите на ядрото, изображението на коренната файлова система.
- Емисия на пакета: Това се отнася до софтуерните пакети, необходими за вашата система. Можете също така да изберете мениджъра на пакети, който ви е необходим за вашата система - deb, dnf, ipk и т.н. Можете да включите такива пакети в целевите двоични файлове за изпълнение или да ги добавите по-късно към вече внедрената система.
- Целеви SDK: Това са библиотеките и заглавните файлове, които показват системата, инсталирана на целта. Те се използват главно от разработчиците на приложения, за да гарантират, че свързват правилните библиотеки според системата.
Защо не използваме съществуващ Distro?
Първоначално вградените системи използваха дистрибуциите на рафтовете и се опитваха да ги персонализират, за да отговарят на техните нужди. Това включваше премахване на ненужни пакети за оптимизиране на съхранението и подобряване на сигурността. Наличието на мъртъв софтуер може да направи системата уязвима за различни вектори на атака. Дори и с тези предимства, използването на съществуващ дистрибутор постави няколко предизвикателства.
Едната е, че целият процес на премахване на пакети не беше лесен. Премахването на някои пакети може да прекъсне зависимостите, държани от различни други пакети, които може да са полезни за вас. Освен това някои пакети бяха интегрирани с процеса на зареждане и изпълнение, което правеше тяхното премахване досадно.
Следователно съществуващите дистрибуции често водят до ненужни закъснения или разполагане на система, която не отговаря на всички изисквани стандарти.
Нека започнем.
Създаване на собствена дистрибуция на Linux с помощта на Yocto
Стъпка 1: Хардуер и изисквания към операционната система
- Минимум 4gb RAM (колкото по-висока, толкова по-добре)
- Най-новата Ubuntu OS (20.04 LTS) Или друга операционна система Linux:
- Fedora
- openSUSE
- CentOS
- Debian
- Минимум 100 GB свободно място на твърдия диск (по-голям размер ще гарантира по-добра производителност). Yocto може да бъде доста ресурсно интензивен, в зависимост от целевия краен продукт.
Ако сте потребител на macOS или Windows, използвайте софтуер за виртуализация като VMware или Virtualbox, за да стартирате дистрибуция на Linux. Като алтернатива можете да изберете мулти-стартиране.
Стъпка 2: Настройте хоста
Нека първо инсталираме необходимите зависимости в нашата хост система. За тази публикация използвам дистрибуция на Ubuntu. Ако използвате друга дистрибуция, моля, прегледайте ръководството за бърз старт на Yocto Project и вижте какви зависимости да инсталирате.
Стартирайте терминала и изпълнете командите по-долу:
sudo apt актуализация sudo apt-get инсталирайте wget git-core разархивирайте направете gcc g ++ компилация от съществено значение 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
Стъпка 3: Клонирайте Yocto Poky
С инсталираните зависимости можем да продължим да изтегляме Yocto. Ще клонираме хранилището Yocto от уебсайта на Yocto Project. Изпълнете командата по-долу, която ще изтегли последната версия (клонът „sumo“). Ще създадем директория в папката Home, за да изградим нашия проект Yocto за лесен достъп и последователност.
mkdir ~ / yocto mkdir ~ / yocto / Project-One / cd ~ / Yocto / Project-One / git clone -b sumo git: // git.йоктопроект.org / poky.git
Ако получите грешка като „командата git не е намерена, ” това означава, че нямате инсталиран git във вашата система. Изпълнете командата по-долу, за да го инсталирате.
sudo apt инсталирайте git
Стъпка 4: Инициализирайте изградената среда.
За да започнем с Yocto, трябва да инициализираме средата за изграждане.'Изпълнете командите по-долу. Първият ще промени директорията в папката, която току-що клонирахме. Втората команда ще инициализира средата за изграждане.'
cd ~ / Yocto / Project-One / poky източник oe-init-build-env build
Едната инициализация е завършена, ще имаме директория за изграждане и конфигурационен файл. Директорията за изграждане е мястото, където възниква цялата сграда на системата и хоства файловете с изображения след завършване на процеса. Всъщност след инициализацията Терминалът автоматично ще сочи към папката за изграждане. Можете да видите това на изображението по-горе.
Стъпка 5: Конфигуриране
Когато изпълните командата ls в директорията / build, ще видите папка / conf, която съдържа всички наши конфигурационни файлове. Придвижете се до тази папка с командата по-долу:
$ cd ~ / Yocto / Project-One / poky / build / conf / $ ls
Изпълнявайки командата ls в папката conf, трябва да видите локалния.conf файл. Този файл определя подробностите за целевата машина и SDK за желаната целева архитектура.
Отворете този файл за редактиране с командата по-долу:
$ sudo nano local.конф
От изображението по-долу целевата машина за изграждане е „qemux86-64.”
Сега продължете да коментирате следните редове, както е показано на изображението по-долу. (Под коментиране имаме предвид-премахнете знака „#“)
DL_DIR ?= "$ TOPDIR / изтегляния" SSTATE_DIR ?= "$ TOPDIR / sstate-cache" TMPDIR ?= "$ TOPDIR / tmp" PACKAGE_CLASSES ?= "package_rpm" SDKMACHINE ?= "i686" EXTRA_IMAGE_FEATURES ?= "отстраняване на грешки"
Преди да продължим процеса на компилация, добавете следните редове в края на 'local.conf 'файл.
BB_NUMBER_THREADS = "X" PARALLEL_MAKE = "-j X"
Сменете „X“ с двойния брой процесори / процесор във вашия компютър. Следователно, ако имате четири процесора, тогава ще имате изявления като тези: BB_NUMBER_THREADS = “8” PARALLEL_MAKE = “-j 8”
За да видите броя на процесорите във вашия компютър, изпълнете командата по-долу:
lscpu
Стъпка 5: Компилация и процес на изграждане
За да започнете да изграждате изображението, изпълнете командата по-долу в директорията / build.
bitbake core-image-sato
Това ще започне да изтегля и компилира пакети за целевата система. Моля, не изпълнявайте горната команда bitbake с root права, тъй като това ще доведе до грешка. При първото изграждане процесът може да отнеме до няколко часа (дори повече от 2). Понякога bitbake може да срещне грешка. Не изпадайте в паника; изпълнете командата по-горе отново. Грешката може да се дължи на срив на определен уебсайт или липсващ ресурс.
Получените двоични изображения се съхраняват в директорията / build на poky / build / tmp / deploy / images / qemux86.
Заключение
Въпреки че Yocto може да бъде доста трудно да се овладее за едно заседание, това е чудесна програма, за да започнете да създавате персонализирана Linux дистрибуция за вашия проект. Надявам се тази публикация да ви даде подробна процедура за това как да започнете с целия процес на изграждане на персонализирана дистрибуция на Linux.