From 6d54151401a5b2fda1f241709f900b720517277a Mon Sep 17 00:00:00 2001 From: Vladislav Shapovalov Date: Fri, 31 Mar 2023 21:15:41 +0300 Subject: [PATCH] add docs/build/index.uk.md --- site/docs/build/index.uk.md | 301 ++++++++++++++++++++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 site/docs/build/index.uk.md diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md new file mode 100644 index 0000000..28855b3 --- /dev/null +++ b/site/docs/build/index.uk.md @@ -0,0 +1,301 @@ +--- +title: Побудова з джерельного коду +x-toc-enable: true +... + +Система побудови libreboot, називається `lbmk`, скорочення від `Libreboot Make`, і цей +документ описує те, як використовувати її. З цим керівництвом ви можете узнати те, як побудувати +libreboot з доступного джерельного коду. +Ця версія, якщо розміщена наживо на libreboot.org, передбачає, що ви використовуєте +сховище git `lbmk`, яке +ви можете завантажити, використовуючи інструкції на [сторінці огляду коду](../../git.uk.md). + +Якщо ви використовуєте архів випуску libreboot, будь ласка, зверніться до +документації, включеної до *того* випуску. Випуски libreboot розраховані тільки, +як *знімки*, не для розробки. Для належної розробки ви маєте завжди +працювати безпосередньо в сховищі git libreboot. + +Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни +до нього: [керівництво обслуговування libreboot](../maintain/) + +Git +=== + +Система побудови Libreboot використовує Git, обширно. Ви маєте виконати кроки +знизу, *навіть, якщо ви використовуєте архів випуску*. + +Перед тим, як вам використовувати систему побудови, будь ласка, знайте: система побудови, сама по собі, +використовує Git обширно, коли завантажує програмне забезпечення, таке як coreboot, та проводить застосування виправлень. + +Ви маєте переконатись в тому, щоб ініціалізувати ваш Git належним чином, перед тим, як почати, або інакше +система побудови не буде працювати належно. Зробіть це: + + git config --global user.name "John Doe" + git config --global user.email johndoe@example.com + +Змініть ім'я та адресу електронної пошти на будь-яку, що забажаєте, коли робите це. + +Ви також можете захотіти прослідувати більшій кількості етапів тут: + + +Python +====== + +Python2 не використовується lbmk або будь-чим, що завантажується в якості модулів. Ви +маєте переконатись, що команда `python` виконує python 3 на вашій системі. + +GNU Make +======== + +libreboot Make включає файл, який названо `Makefile`. Ви досі можете +використовувати систему побудови `lbmk` безпосередньо, або ви можете використовувати GNU Make. `Makefile` +просто виконує команди `lbmk`. Однак, використання `lbmk` безпосередньо запропонує вам +набагато більше гнучкості; наприклад, Makefile наразі не може побудувати один +образ ROM (він лише будує всі з них, для всіх плат). + +Ви мусите переконатись, що всі залежності побудови встановлено. Якщо ви використовуєте +Ubuntu або подібний дистрибутив (Debian, Trisquel і тому подібні), можете виконати це: + + sudo make install-dependencies-ubuntu + +Існує конкретно для Debian: + + sudo make install-dependencies-debian + +Інша існує для Arch: + + sudo make install-dependencies-arch + +Тепер, просто побудуйте образи coreboot подібним чином: + + make + +Ця єдина команда побудує образи ROM для *кожної* плати, інтегрованої до +libreboot. Якщо ви тільки хочете побудувати обмежену вибірку, можете використовувати `lbmk` безпосередньо: + + ./build boot roms x200_8mb + +Ви можете вказати більше одного аргумента: + + ./build boot roms x200_8mb x60 + +Образи ROM з'явяться під щойно створеною директорією `bin/` в системі побудови. + +Для інших команд просто прочитайте `Makefile` в своєму улюбленому текстовому редакторі. +`Makefile` є простим, тому що він виконує виключно команди `lbmk`, таким чином дуже +просто знати те, які команди є в доступності, просто читаючи його. + +Стандартна команда `clean` доступна (чистить всі модулі, окрім `crossgcc`): + + make clean + +Щоб почистити ваші побудови `crossgcc`: + + make crossgcc-clean + +Для побудови архівів випуску: + + make release + +Побудова без використання GNU Make +============================ + +`Makefile` включено лише для *сумісності*, щоб якщо хтось +інстиктивно пише `make`, то було отримано результат. + +Фактична розробка/тестування завжди виконується безпосередньо за допомогою `lbmk`, і це також +стосується збирання з джерельного коду. Ось кілька інструкцій, щоб +почати: + +Спочатку встановіть залежності побудови +--------------------------------- + +libreboot включає сценарій, який автоматично встановлює apt-get залежності +в Ubuntu 20.04. Він працює добре в інших дистрибутивах apt-get (таких як Trisquel та +Debian): + + sudo ./build dependencies ubuntu2004 + +Окремі сценарії також існують: + + sudo ./build dependencies debian + + sudo ./build dependencies arch + + sudo ./build dependencies void + +Технічно, будь-який дистрибутив GNU+Linux може бути використано для побудови libreboot. +Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей +побудови. + +libreboot Make (lbmk) автоматично виконує всі необхідні команди; наприклад, +`./build payload grub` автоматично виконає `./build module grub`, +якщо затребувані утиліти для GRUB не збудовано, для виготовлення корисних навантажень. + +В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати +лише одну команду, з свіжого Git clone, для побудови образів ROM: + + ./build boot roms + +або навіть побудувати конкретні образи ROM, такі як: + + ./build boot roms x60 + +Якщо ви бажаєте побудувати корисні навантаження, можете зробити це. Наприклад: + + ./build payload grub + + ./build payload seabios + + ./build payload u-boot qemu_x86_12mb + +Попередні кроки буде виконано автоматично. Однак, ви можете *досі* виконати +окремі частини системи побудови власноруч, якщо виберете. Це може бути +вигідно, коли ви робите зміни, та бажаєте протестувати конкретну частину +lbmk. + +Отже, якщо ви лише хочете побудувати образи ROM, просто зробіть наведене вище. В іншому випадку, +будь ласка, продовжіть читати! + +Опціонально: видобути двійкові блоби +------------------------------ + +Деякі плати, включаючи всі плати sandy/ivybridge, вимагають невільні блоби, які не можуть бути включеними до libreboot. +Для плат, які вимагають ці блоби, libreboot спробує завантажити блоби власноруч. +Якщо ваша плата не має джерел блоба в наявності, тоді ви мусите видобути їх з резервної копії вашого rom постачальника. +Ви маєте вказати libreboot резервну копію rom та сказати системі побудові те, для якої плати ви хочете видобути блоби +Наприклад, щоб видобути блоби для t440p, ви маєте виконати: + + ./blobutil extract t440p_12mb /path/to/12mb_backup.rom + +Ви потім можете побудувати rom для цієї плати нормально: + + ./build boot roms t440p_12mb + + +Друге, завантажити всі програмні компоненти, які вимагаються +-------------------------------------------------------- + +Якщо ви не виконали просто `./build boot roms` (з або без надлишкових +аргументів), ви все одно можете виконати залишок процесу побудови власноруч. Читайте +далі! Ви можете прочитати про всі доступні сценарії в `lbmk`, читаючи +[керівництво обслуговування libreboot](../maintain/); lbmk розроблено бути модулярним, +що означає те, що кожен сценарій *може* бути використано самостійно (якщо це не є правдою, для +будь-якого сценарія, це є помилкою, яка має бути виправлена). + +Це настільки просто, як це: + + ./download all + +Вищезазначена команда завантажує всі модулі, які означено в системі побудови libreboot. +Однак, ви можете завантажити модулі індивідуально. + +Ця команда показує вам список доступних модулів: + + ./download list + +Приклад завантаження індивідуального модуля: + + ./download coreboot + + ./download seabios + + ./download grub + + ./download flashrom + + ./download u-boot + +Третє, побудова кожного з модулів: +-------------------------------- + +Побудова модуля означає, що він має вже бути завантаженим. +В цей момент, система побудови не виконує автоматично кроки передумови, +такі як цей, тому ви мусите перевірити це власноруч. + +Знову, дуже просто: + + ./build module all + +Це будує кожен модуль, означений в системі побудови libreboot, але ви можете +будувати модулі індивідуально. + +Наступна команда перелічує доступні модулі: + + ./build module list + +Приклад побудови конкретних модулів: + + ./build module grub + + ./build module seabios + + ./build module flashrom + +Команди доступні для *очищення* модуля, які, по суті, виконують make-clean. +Ви можете перелічити ці команди: + + ./build clean list + +Видаліть всі модулі таким чином: + + ./build clean all + +Приклад видалення конкретних модулів: + + ./build clean grub + + ./build clean cbutils + +Четверте, побудуйте всі корисні навантаження: +--------------------------------- + +Дуже просто: + + ./build payload all + +Ви можете перелічити доступні корисні навантаження таким чином: + + ./build payload list + +Приклад побудови конкретних корисних навантажень: + + ./build payload grub + + ./build payload seabios + +Кожна плата має свою власну конфігурацію побудови U-Boot в `lbmk` під +`resources/u-boot`. Для побудови корисних навантажень U-Boot, вам потрібно вказати +цільову плату і мабуть крос-компілятор для її архітектури ЦП. Вони +керуються автоматично під час побудови образів ROM, але для прикладу: + + ./build payload u-boot qemu_x86_12mb # на хостах x86 + + CROSS_COMPILE=aarch64-linux-gnu- ./build payload u-boot gru_kevin + + CROSS_COMPILE=arm-linux-gnueabi- ./build payload u-boot veyron_speedy + +Команда build-payload є попередньою умовою для побудови образів ROM. + +П'яте, побудуйте ROM! +---------------------- + +Виконайте цю команду: + + ./build boot roms + +Кожна плата має свою власну конфігурацію в `lbmk` під `resources/coreboot/`, +яка вказує, які корисні навантаження підтримуються. + +За замовчуванням, всі образи ROM будуються, для всіх плат. Якщо ви бажаєте побудувати лише +конкретну плату, ви можете вказати назву плати, засновану на імені директорії +для неї під `resources/coreboot/`. Наприклад: + + ./build boot roms x60 + +Імена плат, як вище, такі самі, як імена директорій для кожної плати, +під `resources/coreboot/` в системі побудови. + +Ось так! + +Якщо все пройшло добре, образи ROM мають бути доступними вам під bin/