OpenWrt на x86-системах з UEFI

Зараз завантаження через UEFI стало стандартом, а плати з тільки UEFI BIOS — звичним явищем. Ще у 2017 році компанія Intel оголосила, що з 2020 року підтримка застарілого BIOS (Legacy BIOS) буде припинена.

- https://www.anandtech.com/show/12068/intel-to-remove-bios-support-from-uefi-by-2020 - http://www.uefi.org/sites/default/files/resources/Brian_Richardson_Intel_Final.pdf

У зв’язку з цим, у системі збірки OpenWrt з’явилася можливість створення UEFI-завантажуваних образів.

Починаючи з коміту a6b7c3e672764858fd294998406ae791f5964b4a OpenWrt підтримує створення UEFI-сумісних образів для x86-64. Завантажити їх можна зі сторінки: downloads.openwrt.org → snapshots → x86/64.

Щоб створити UEFI-сумісний образ:

  • Запустіть `make menuconfig`
  • Перейдіть у розділ Target Images
  • Увімкніть опцію: Build GRUB EFI images (Linux x86 or x86_64 host only)

За потреби оберіть додаткові пакети. Збережіть зміни і вийдіть з `menuconfig`.

Запустіть збірку як звичайно:

make

Після завершення збірки, результати з’являться в каталозі: `./bin/targets/x86/64/`

Увага: створений файл — це disk image, а не partition image!

Його потрібно записувати на пристрій цілком, наприклад `/dev/sdX`, а не на розділ `/dev/sdX1`.

Щоб створити UEFI-образ із підтримкою Secure Boot, використовуйте спеціальний форк OpenWrt із відповідним feeds-репозиторієм у гілці `feature-uefi-secure-boot`.

Цей форк базується на гілці Jow-staging та підтримує:

  • генерацію підписаних EFI-бінарників (sbsigntool)
  • роботу з EFI-ключами та змінними (efivar, efibootmgr, efitools)

##### Покрокова інструкція

# Додайте форк репозиторію
git remote add devrepo https://github.com/alive4ever/openwrt
git fetch devrepo
git checkout feature-uefi-secure-boot
 
# Налаштуйте feeds
echo 'src-git packages https://github.com/alive4ever/packages;feature-uefi-secure-boot' > ./feeds.conf
./scripts/feeds clean
./scripts/feeds update packages
./scripts/feeds update -i
./scripts/feeds install -a
 
# Запустіть конфігурацію
make menuconfig
# Оберіть Target: x86, Subtarget: x86_64
# Увімкніть: 'Sign EFI executable binaries' у Target Images
# У розділі Utilities оберіть: efitools, efibootmgr, efivar, sbsigntool

##### Генерація сертифіката

# Створіть ключ і сертифікат для підпису
OLD_UMASK=$(umask)
umask 077
openssl req -new -x509 -sha256 \
  -days 90 -out ./db.crt \
  -subj '/CN=secure boot signing certificate' \
  -newkey rsa:2048 -nodes \
  -keyout ./db.key
umask $OLD_UMASK

##### Збірка образу

make

Щоб мати змогу завантажити цей образ на реальному UEFI-пристрої:

  • Імпортуйте сертифікат `db.crt` у змінну UEFI `db`
  • За потреби конвертуйте його в формат DER
  • Можна скористатися інструментами: `efitools`, `mokutil`, `KeyTool.efi` (у режимі Setup Mode)

Після імпорту — система зможе надійно та безпечно завантажитися з цього образу.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/05/25 18:26
  • by vazaz