ПредишенСледващото

За да започнете, изтеглете BusyBox:

Задължително Linux Kernel:

Въпреки ширещата растежа на графични обвивки и "приятелски" интерфейс, представете си UNIX команден ред и без основни комунални услуги днес не е възможно. Многобройни преводачи и основни системни инструменти не са застанали неподвижно, растат и се развиват, което неминуемо води до увеличаване на обема им. В същото време има и сфери на дейност, в която компактността на всяко приложение, по очевидни причини, важно е, например, в областта на вградените устройства. Въпреки това, в много случаи не се нуждае от значителна част от функционалността, която е присъща на основни комунални услуги "обща цел".

За решаването на тези проблеми, най-рано в средата на 90-те години на Брус Перенс (Брус Перенс) BusyBox пакет е създаден. Проектът вече е определяна като "швейцарски армейски нож за вградени Linux-базирани системи" и е насочена предимно за използване в малки GNU / Linux дистрибуции. Разпределени в рамките на втората версия на GNU GPL.

BusyBox е един изпълним файл, който се зарежда, когато стартирате пълен интерфейс на командния ред. Тъй като официалната документация на BusyBox. за формиране на минимална версия на GNU / Linux това е достатъчно, за да добавите само OS ядрото и директории / и т.н., / Dev.

Една от основните цели, преследвани от BusyBox разработчици. - оптимизиран и компактен код - изчисляването на ограниченията на паметта. Тя не само говори отново за предимствата на използването му в областта на вградените устройства, но също върви добре с по-различен подход в духа на UNIX начин. високо ниво на персонализация (необходимите компоненти могат да бъдат включени само в BusyBox двоичен файл).

Дори и на етапа на компилация (или по-скоро, за процеса на сглобяване) само основни инструменти, които можете да избирате, че са необходими. Тя се осъществява в конфигурацията на ядрото стил Linux. Вместо по-често средата беше събрана от Automake пътя на приложения под формата на «конфигуриране» BusyBox скрипт за предварително конфигуриране, необходими за извършване на една от следните команди:

Аргументът на "довереник" инициира стартирането на "въпросник" със списък на наличните възможности и основни комунални услуги, като предлага да постави «Y" или "N» на мястото на необходими и излишни функции, съответно.

Аргумент «menuconfig» е по-удобно като конфигурация интерфейс меню въз основа на проклятия.

«Defconfig" аргумент автоматично включва всички налични опции в подготовка за монтаж BusyBox «общо предназначение».

Точно както в случая на ядрото на Линукс. след настройка, за да създадете конфигурационен файл .config. които след това винаги може да се върне в отбора:

Това е вярно, когато се движат до по-нова версия на BusyBox към старата конфигурация (така, че конфигурацията на работа се появи само в следващата версия на опциите).

По подразбиране, ако повикването към «направи menuconfig» съществувала .config файла. направи автоматично предварителните започва с аргумент «defconfig». По този начин потребителят ще деактивира само нежелани функции. При условие и опция да върне: тичане направи с «allnoconfig» деактивира всички опции, за да само това, което е необходимо, за да бъде в състояние да изберете след това.

Освен това, всички традиционно:

В допълнение към алтернативен набор от coreutils (LS, котка, СрН, кп, RM, коригирате, DF, LN, дата, тоалетна, хубаво, тест ...) на BusyBox включва разнообразие от други програми.

Широко достъпни мрежови възможности: клиент, така и на сървъра. Сред демони подчертае уеб-, dnsd, telnetd, inetd, udhcpd. За FTP е ftpget, ftpput и TFTP клиент. В допълнение, има и своя собствена версия GNUwget. Сред другите стандартни инструменти: фоп, маршрут, проследяващи, пинг / ping6, NETSTAT, Nslookup, ARP и arping.

Следваща в менюто, поставете отметка в:
-> Настройки Busybox
-> Опции Изграждане
[] Изграждане BusyBox като статичен двоичен (не споделят LIBS)

Пестим и излизане.

CONFIG_PREFIX = / .. / busybox_rootfs -. Показва, татко, където BusyBox ще комбинира изходните файлове.

Initrd (съкратено от английски Първоначално RAM Disk диск в паметта за инициализация ..) - временно използвани от Линукс ядрото по време на зареждане на файловата система. Initrd-често се използва за инициализация преди да монтирате "истински" файловата система.

Започвайки от версия на ядрото 2.6 стигна до initramfs концепцията. Това обикновено е компресиран CPIO архив, в която се помещава BusyBox мини система, която изпълнява същата роля като initrd.

Можете да го използвате, за да тестват функционалността на всяка вградена система или - когато просто искате да се сложи на цялата система в паметта, така че да работи бързо, като в същото време не ви е грижа дали да запазите промените, след рестартиране.

Съдържанието на initramfs се извършва чрез създаване на CPIO-архив.

Всички файлове, инструменти, библиотеки и конфигурация (ако е приложимо), и т.н. CPIO разположен в архива. След това този файл е компресиран с помощта на софтуерна програма, и се съхраняват в едно и също място, както на ядрото Linux. На следващо място, товарач ще го предаде на Линукс ядрото по време на зареждане, ядрото наясно какво се изисква initramfs.

Когато се установи, Linux ядрото ще създаде tmpfs файлова система. извличане на съдържанието на досието й и след това да започне първоначален сценария. намира в основната директория на файловата система tmpfs.

Сега нека създадем initramfs BusyBox построен:

Забележка: възел не може да създаде през mknod. копие от основната операционна система.

След това копирайте всички папки в папка busybox_rootfs rootfs. По този начин, в нашия initrd ще Linux комунални услуги. която изпълнява BusyBox.

Ние го правим изпълним:

Създаване на собствени initramfs:

Сгъстен изображение ядро ​​- / арка / x86_64 / обувка / bzImage.

Копирайте bzImage и rootfs.cpio.gz в отделна директория, отиде при нея и

Initrd вградена в ядрото

В допълнение, можете да компилирате ядрото с initrd. За да направите това, когато конфигурирате ядрото да укажете пътя към rootfs (виж по-долу.)

И / path_to_rootfs / rootfs ви трябва, е себе си rootfs (/ хамбар, / сътрудничество / сътрудничество / ОПУ / сътрудничество / конзола и др. - Вижте описанието по-горе). Не забравяйте да се създаде и първоначален сценарий.

После, след съставянето на ядрото, можете да стартирате QEMU, без да уточнява initrd:

Преминаване от Initrd rootfs на диска

Първо, създаване на диск, на който ще ви постави rootfs:

Създаване rootfs тук (в / MNT), също така, както е описано по-горе (/ хамбар, / сътрудничество / сътрудничество / ОПУ / сътрудничество / конзола и др. - виж описанието по-горе). Не забравяйте да се създаде и първоначален сценарий.

Сега имаме на изображението на HDD диск е rootfs.

За да стартирате диска с помощта на QEMU в т. команда:

Когато ядрото е зареден с initrd. За да превключите към rootfs на диска, изпълнете следната команда:

Изтеглете без Initrd

защото у по rootfs вече е на диск, след зареждане от initrd не е необходимо. За да се достави незабавно rootfs от диска, е необходимо да се ядката вариант корен пас (за зареждане на ОС).

Подкрепете проекта - споделете линка, благодаря!