Das U-Boot (повна назва "the Universal Boot Loader", часто скорочується до U-Boot; див. розділ Історія для більш детальної історії назви) це первинний завантажувач операційної системи (англ. boot loader) з відкритим кодом, що використовується у вбудованих пристроях для упаковування програмних інструкцій, що здійснюють завантаження ядра операційної системи на пристрої. Він доступний для багатьох архітектур комп'ютерів, серед яких 68k, ARM, , , MIPS, , SuperH, PPC, RISC-V і x86.
Тип | |
---|---|
Автор | d |
Розробники | DENX Software Engineering |
Перший випуск | 15 жовтня 1999 |
Стабільний випуск | v2019.07 (8 липня 2019 ) |
Версії | 2023.01 (9 січня 2023)[2] |
Нестабільний випуск | v2019.10-rc3 (27 серпня 2019 ) |
Мова програмування | C, Асемблер |
Доступні мови | Англійська |
Ліцензія | (GNU GPLv2+) |
Онлайн-документація | denx.de/wiki/DULG/Manual u-boot.readthedocs.io/en/latest/ |
Репозиторій | source.denx.de/u-boot/u-boot |
Вебсайт | docs.u-boot.org/en/latest/ |
Функціонування
U-Boot є одночасно завантажувачем першої і другої стадії. Він завантажується ROM або BIOS системи із доступного пристрою завантаження, такого як SD карта, SATA диск, NOR флеш пам'ять (використовуючи SPI або I²C), або NAND флеш-пам'ять. Якщо існують обмеження по обсягу пам'яті, завантаження U-Boot можна розділити на стадії: платформа буде завантажувати невеликий SPL (Secondary Program Loader), який є укороченою версією U-Boot, і тоді SPL буде виконувати початкову конфігурацію обладнання і завантажувати більшу, більш повну за функціоналом версію U-Boot. Незалежно від того чи використовується SPL, U-Boot виконує обидві: першу стадію (тобто, конфігурування контролерів пам'яті і SDRAM) і другу стадію завантаження (виконує послідовність із декількох кроків для завантаження сучасної операційної системи із набором різних пристроїв, які необхідно сконфігурувати, і надає меню для того, щоб користувач міг керувати процесом завантаження, тощо).
U-Boot запускає інтерфейс командного рядка через послідовний порт. За допомогою консолі користувачі можуть завантажувати і запускати на виконання ядро, при необхідності змінювати параметри за замовчуванням. Також існують команди для вичитування інформації про пристрій, читання і запису флеш- пам'яті, завантаження файлів (образів ядра та завантажувача, та ін.) через послідовний порт чи мережу, керування деревом пристроїв, і для роботи із змінними середовища (які можна записати у постійне сховище, і які використовують для керування поведінкою U-Boot, наприклад, дають змогу змінити команду завантаження за замовчуванням і затримку перед автоматичним завантаженням, а також параметри обладнання, наприклад, Ethernet MAC-адресу).
На відміну від завантажувачів на ПК, які неявним чином або автоматично вибирають локацію у пам'яті для ядра і інших даних для завантаження, U-Boot потребує, щоб у його командах завантаження було явним чином вказано фізичні адреси пам'яті, куди будуть копіюватися дані (ядро, ramdisk, дерево пристроїв, тощо) і вказівник переходу на адресу запуску ядра і як аргумент, який передаватиметься ядру. Оскільки команди U-Boot є відносно низькорівневими, для запуску ядра необхідно виконати декілька кроків, але це також робить U-Boot більш гнучким завантажувачем у порівнянні із іншими, оскільки ті самі команди можна застосувати для виконання більш загальних задач. Навіть можливо оновити сам U-Boot за допомогою U-Boot, просто вичитавши новий завантажувач з якогось джерела (локальне сховище, із послідовного порту або мережі) у пам'ять, і записавши потім ці дані у постійну пам'ять де зберігається завантажувач.
U-Boot має підтримку роботи із USB, тому з ним можна використовувати USB-клавіатуру для роботи з консоллю (як альтернативу для вводу команд через послідовний порт), а також він може доступатися і завантажуватися із пристроїв USB Mass Storage, таких як зчитувач SD-карт.
Збереження даних та джерела для завантаження
U-Boot завантажує операційну систему зчитуючи ядро і інші необхідні дані (дерево пристроїв та образ ramdisk) у пам'ять, і потім запускає ядро із необхідними аргументами.
Команди U-Boot є загальними командами, які можна використовувати для читання і запису будь-яких даних. Застосовуючи ці команди, дані можна зчитувати або записувати до будь-якого сховища даних з тих, які підтримує U-Boot. До них належать:
- Сховище на пристрої або зовнішнє під'єднане сховище
- Послідовний порт (передача файлів)
- Завантаження по мережі (при необхідності із використанням DHCP, BOOTP, або RARP)
Сумісні файлові системи
U-Boot не потрібно вміти читати файлову систему для того, щоб ядро використовувало її як кореневу файлову систему або початковий ramdisk; U-Boot лише надає відповідний параметр ядру kernel, і/або копіює дані у пам'ять без розбору їх вмісту.
Однак, U-Boot також може читати із (і у деяких випадках, писати) файлових систем. Таким чином, U-Boot не вимагатиме аби дані, які будуть завантажені, були збережені у фіксованому місці на пристрої збереження даних, а U-Boot зможе прочитати файлову систему аби знайти і завантажити ядро, дерево пристроїв, тощо за допомогою шляху.
U-Boot має підтримку наступних файлових систем:
Дерево пристроїв
Дерево пристроїв (Device tree) це структура даних для описання схеми пристроїв. Використовуючи дерево пристроїв, виробник може використовувати незмінений mainline U-Boot на іншому обладнанні із спеціальним призначенням. Так само як це прийнято у ядрі Linux, дерево пристроїв розроблене з метою оптимізації ситуації в індустрії вбудованих пристроїв, де існує велика кількість форків (коду U-Boot і Linux), що виконують специфічні для продукту функції. З боку користувача перевагою може бути можливість запускати програмне забезпечення основної гілки, за умови відсутності оновлень від виробника.
Виноски
- Це джерела завантаження даних, з яких U-Boot може завантажувати ядро, образ RAM-диска та інші дані у пам'ять. Сам U-Boot має завантажуватися платформою — наприклад, за допомогою Boot ROM, BIOS, UEFI або інших механізмів.
- Це справжнє завантаження з NFS (U-Boot використовує NFS для завантаження ядра), на відміну від завантаження ядра з мережі, за допомогою TFTP вказується що ядро має використовувати приєднану NFS, так що вона буде коренем файлової системи ядра.
Примітки
- Rini, Tom (8 липня 2019). . u-boot (Список розсилки). Архів оригіналу за 9 липня 2019. Процитовано 9 липня 2019.
- . Архів оригіналу за 23 вересня 2019. Процитовано 27 серпня 2019.
- . git.denx.de. 2013. Архів оригіналу за 27 лютого 2019. Процитовано 13 жовтня 2018.
- . Архів оригіналу за 23 вересня 2019. Процитовано 23 вересня 2019.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 23 вересня 2019. Процитовано 23 вересня 2019.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 5 вересня 2017. Процитовано 23 вересня 2019.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title ()
Посилання
- Офіційний сайт
- Official git repository
- Barebox [ 25 серпня 2019 у Wayback Machine.] (formerly known as U-Boot-V2)
- Das U-Boot на SourceForge.net
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Das U Boot povna nazva the Universal Boot Loader chasto skorochuyetsya do U Boot div rozdil Istoriya dlya bilsh detalnoyi istoriyi nazvi ce pervinnij zavantazhuvach operacijnoyi sistemi angl boot loader z vidkritim kodom sho vikoristovuyetsya u vbudovanih pristroyah dlya upakovuvannya programnih instrukcij sho zdijsnyuyut zavantazhennya yadra operacijnoyi sistemi na pristroyi Vin dostupnij dlya bagatoh arhitektur komp yuteriv sered yakih 68k ARM MIPS SuperH PPC RISC V i x86 Das U BootTipAvtordRozrobnikiDENX Software EngineeringPershij vipusk15 zhovtnya 1999 24 roki tomu 1999 10 15 Stabilnij vipuskv2019 07 8 lipnya 2019 4 roki tomu 2019 07 08 Versiyi2023 01 9 sichnya 2023 2 Nestabilnij vipuskv2019 10 rc3 27 serpnya 2019 4 roki tomu 2019 08 27 Mova programuvannyaC AsemblerDostupni moviAnglijskaLicenziyaGNU GPLv2 Onlajn dokumentaciyadenx de wiki DULG Manual u boot readthedocs io en latest Repozitorijsource denx de u boot u bootVebsajtdocs u boot org en latest FunkcionuvannyaU Boot ye odnochasno zavantazhuvachem pershoyi i drugoyi stadiyi Vin zavantazhuyetsya ROM abo BIOS sistemi iz dostupnogo pristroyu zavantazhennya takogo yak SD karta SATA disk NOR flesh pam yat vikoristovuyuchi SPI abo I C abo NAND flesh pam yat Yaksho isnuyut obmezhennya po obsyagu pam yati zavantazhennya U Boot mozhna rozdiliti na stadiyi platforma bude zavantazhuvati nevelikij SPL Secondary Program Loader yakij ye ukorochenoyu versiyeyu U Boot i todi SPL bude vikonuvati pochatkovu konfiguraciyu obladnannya i zavantazhuvati bilshu bilsh povnu za funkcionalom versiyu U Boot Nezalezhno vid togo chi vikoristovuyetsya SPL U Boot vikonuye obidvi pershu stadiyu tobto konfiguruvannya kontroleriv pam yati i SDRAM i drugu stadiyu zavantazhennya vikonuye poslidovnist iz dekilkoh krokiv dlya zavantazhennya suchasnoyi operacijnoyi sistemi iz naborom riznih pristroyiv yaki neobhidno skonfiguruvati i nadaye menyu dlya togo shob koristuvach mig keruvati procesom zavantazhennya tosho U Boot zapuskaye interfejs komandnogo ryadka cherez poslidovnij port Za dopomogoyu konsoli koristuvachi mozhut zavantazhuvati i zapuskati na vikonannya yadro pri neobhidnosti zminyuvati parametri za zamovchuvannyam Takozh isnuyut komandi dlya vichituvannya informaciyi pro pristrij chitannya i zapisu flesh pam yati zavantazhennya fajliv obraziv yadra ta zavantazhuvacha ta in cherez poslidovnij port chi merezhu keruvannya derevom pristroyiv i dlya roboti iz zminnimi seredovisha yaki mozhna zapisati u postijne shovishe i yaki vikoristovuyut dlya keruvannya povedinkoyu U Boot napriklad dayut zmogu zminiti komandu zavantazhennya za zamovchuvannyam i zatrimku pered avtomatichnim zavantazhennyam a takozh parametri obladnannya napriklad Ethernet MAC adresu Na vidminu vid zavantazhuvachiv na PK yaki neyavnim chinom abo avtomatichno vibirayut lokaciyu u pam yati dlya yadra i inshih danih dlya zavantazhennya U Boot potrebuye shob u jogo komandah zavantazhennya bulo yavnim chinom vkazano fizichni adresi pam yati kudi budut kopiyuvatisya dani yadro ramdisk derevo pristroyiv tosho i vkazivnik perehodu na adresu zapusku yadra i yak argument yakij peredavatimetsya yadru Oskilki komandi U Boot ye vidnosno nizkorivnevimi dlya zapusku yadra neobhidno vikonati dekilka krokiv ale ce takozh robit U Boot bilsh gnuchkim zavantazhuvachem u porivnyanni iz inshimi oskilki ti sami komandi mozhna zastosuvati dlya vikonannya bilsh zagalnih zadach Navit mozhlivo onoviti sam U Boot za dopomogoyu U Boot prosto vichitavshi novij zavantazhuvach z yakogos dzherela lokalne shovishe iz poslidovnogo portu abo merezhi u pam yat i zapisavshi potim ci dani u postijnu pam yat de zberigayetsya zavantazhuvach U Boot maye pidtrimku roboti iz USB tomu z nim mozhna vikoristovuvati USB klaviaturu dlya roboti z konsollyu yak alternativu dlya vvodu komand cherez poslidovnij port a takozh vin mozhe dostupatisya i zavantazhuvatisya iz pristroyiv USB Mass Storage takih yak zchituvach SD kart Zberezhennya danih ta dzherela dlya zavantazhennya U Boot zavantazhuye operacijnu sistemu zchituyuchi yadro i inshi neobhidni dani derevo pristroyiv ta obraz ramdisk u pam yat i potim zapuskaye yadro iz neobhidnimi argumentami Komandi U Boot ye zagalnimi komandami yaki mozhna vikoristovuvati dlya chitannya i zapisu bud yakih danih Zastosovuyuchi ci komandi dani mozhna zchituvati abo zapisuvati do bud yakogo shovisha danih z tih yaki pidtrimuye U Boot Do nih nalezhat Shovishe na pristroyi abo zovnishnye pid yednane shovishe SD karta SATA SCSI I C tobto EEPROMs abo NOR flash SPI tobto NOR abo NAND flash raw NAND flash eMMC kerovanij NOR abo NAND flash NVMe Pristrij USB mass storage Poslidovnij port peredacha fajliv Zavantazhennya po merezhi pri neobhidnosti iz vikoristannyam DHCP BOOTP abo RARP TFTP NFS Sumisni fajlovi sistemi U Boot ne potribno vmiti chitati fajlovu sistemu dlya togo shob yadro vikoristovuvalo yiyi yak korenevu fajlovu sistemu abo pochatkovij ramdisk U Boot lishe nadaye vidpovidnij parametr yadru kernel i abo kopiyuye dani u pam yat bez rozboru yih vmistu Odnak U Boot takozh mozhe chitati iz i u deyakih vipadkah pisati fajlovih sistem Takim chinom U Boot ne vimagatime abi dani yaki budut zavantazheni buli zberezheni u fiksovanomu misci na pristroyi zberezhennya danih a U Boot zmozhe prochitati fajlovu sistemu abi znajti i zavantazhiti yadro derevo pristroyiv tosho za dopomogoyu shlyahu U Boot maye pidtrimku nastupnih fajlovih sistem btrfs CBFS fajlova sistema coreboot ext2 ext3 ext4 FAT FDOS ReiserFS ZFS Derevo pristroyiv Dokladnishe Derevo pristroyiv Derevo pristroyiv Device tree ce struktura danih dlya opisannya shemi pristroyiv Vikoristovuyuchi derevo pristroyiv virobnik mozhe vikoristovuvati nezminenij mainline U Boot na inshomu obladnanni iz specialnim priznachennyam Tak samo yak ce prijnyato u yadri Linux derevo pristroyiv rozroblene z metoyu optimizaciyi situaciyi v industriyi vbudovanih pristroyiv de isnuye velika kilkist forkiv kodu U Boot i Linux sho vikonuyut specifichni dlya produktu funkciyi Z boku koristuvacha perevagoyu mozhe buti mozhlivist zapuskati programne zabezpechennya osnovnoyi gilki za umovi vidsutnosti onovlen vid virobnika VinoskiCe dzherela zavantazhennya danih z yakih U Boot mozhe zavantazhuvati yadro obraz RAM diska ta inshi dani u pam yat Sam U Boot maye zavantazhuvatisya platformoyu napriklad za dopomogoyu Boot ROM BIOS UEFI abo inshih mehanizmiv Ce spravzhnye zavantazhennya z NFS U Boot vikoristovuye NFS dlya zavantazhennya yadra na vidminu vid zavantazhennya yadra z merezhi za dopomogoyu TFTP vkazuyetsya sho yadro maye vikoristovuvati priyednanu NFS tak sho vona bude korenem fajlovoyi sistemi yadra PrimitkiRini Tom 8 lipnya 2019 u boot Spisok rozsilki Arhiv originalu za 9 lipnya 2019 Procitovano 9 lipnya 2019 https source denx de u boot u boot tags v2023 01 Arhiv originalu za 23 veresnya 2019 Procitovano 27 serpnya 2019 git denx de 2013 Arhiv originalu za 27 lyutogo 2019 Procitovano 13 zhovtnya 2018 Arhiv originalu za 23 veresnya 2019 Procitovano 23 veresnya 2019 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 23 veresnya 2019 Procitovano 23 veresnya 2019 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 5 veresnya 2017 Procitovano 23 veresnya 2019 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya PosilannyaOficijnij sajt Official git repository Barebox 25 serpnya 2019 u Wayback Machine formerly known as U Boot V2 Das U Boot na SourceForge net