176 lines
13 KiB
Markdown
176 lines
13 KiB
Markdown
---
|
||
title: Операційні системи BSD
|
||
x-toc-enable: true
|
||
...
|
||
|
||
Керівництво було востаннє оновлено 16 листопада 2022 року.
|
||
|
||
ПРИМІТКА: Це керівництво стосується хостів x86, і не покриває підтримувані CrOS/ARM
|
||
chromebook. Для цілей ARM, вам варто звернутись до документації u-boot.
|
||
|
||
libreboot є спроможним завантажити багато систем BSD. Ця секція в основному задокументовує
|
||
особливості libreboot, які стосуються BSD; ви можете в іншому випадку звернутись до
|
||
офіційної документації для будь-якої системи BSD, яку хочете використовувати.
|
||
|
||
Kernel Mode Setting
|
||
===================
|
||
|
||
Ваша система BSD *мусить* підтримувати Kernel Mode Setting для вашого графічного
|
||
пристрою (більшість з них підтримує в ці дні). Причини стануть очевидними, як
|
||
ви прочитаєте цю статтю.
|
||
|
||
Завантажуйте BSD, використовуючи SeaBIOS
|
||
=======================
|
||
|
||
На платформах x86, Libreboot надає вибір корисного навантаження GRUB та/або
|
||
SeaBIOS. GRUB технічно може завантажувати ядра BSD, але код погано
|
||
підтримується і є ненадійним для цього сценарію використання; на системах BIOS,
|
||
GRUB може завантажити ланцюгом завантажувачі BSD, але bare metal (в якості корисного навантаження coreboot),
|
||
GRUB може тільки завантажити ланцюгом інші корисні навантаження coreboot або завантажити ядра Linux/BSD
|
||
безпосередньо (але безпосереднє завантаження тільки реально надійне для Linux, в GRUB).
|
||
|
||
Це рекомендовано, щоб ви завантажувались в текстовому режимі, з SeaBIOS. Ви можете буквально
|
||
просто слідкувати офіційним керівництвам встановлення для вашої системи BSD, чи це буде
|
||
FreeBSD, OpenBSD або інші.
|
||
|
||
Якщо ви не плануєте встановлювати Xorg/Wayland, тоді це все, що вам дійсно треба
|
||
робити. Наприклад, ви могли би хотіти виконувати сервер headless, у випадку чого ви
|
||
мабуть не заперечуєте виконувати текстовий режим весь час.
|
||
|
||
OpenBSD та corebootfb
|
||
----------------------
|
||
|
||
Досі рекомендовано використовувати SeaBIOS в текстовому режимі, але OpenBSD конкретно
|
||
може працювати з завантаженням SeaBIOS в coreboot framebuffer, з SeaVGABIOS. В
|
||
Libreboot образах ROM, це були би образи SeaBIOS з `corebootfb` в
|
||
імені файла.
|
||
|
||
Переконайтесь, щоб вибрати розмітку в стилі MBR у встановлювачі, і він буде
|
||
Просто Працювати.
|
||
|
||
Якщо ви використовуєте корисне навантаження GRUB, але SeaBIOS є доступним в меню завантаження,
|
||
ви можете просто вибрати SeaBIOS в сказаному меню, і OpenBSD буде працювати чудово.
|
||
|
||
FreeBSD та corebootfb
|
||
----------------------
|
||
|
||
Припущений поламаним, тому будь ласка переконайтесь, що ви завантажуєтесь з корисним навантаженням SeaBIOS в текстовому
|
||
режимі (lbmk образи ROM з `txtmode` в імені файлу, не `corebootfb`).
|
||
|
||
Попередження для користувачів X11
|
||
----------------------
|
||
|
||
Одна важлива особливість більшості систем libreboot: Підтримка VGA mode
|
||
існує, якщо завантажуєтесь з corebootfb (власний framebuffer coreboot) і
|
||
option ROM SeaVGABIOS використано в корисному навантаженні SeaBIOS; хоча, можливість
|
||
змінювати режими не є присутньою, що означає, що ви не можете перемикнутись на текстовий режим
|
||
так само.
|
||
|
||
Coreboot може розпочатись в framebuffer (corebootfb) або INT10H текстовому режимі, і він залишається
|
||
в будь-якому встановленому режимі, допоки KMS використано для зміни режиму. Має
|
||
бути відмічено, що coreboot framebuffer це не є VGA mode, але натомість
|
||
coreboot реалізує мінімальні драйвери для апаратного забезпечення, яке він підтримує, надаючи
|
||
framebuffer безпосередньо в пам'яті, яке програмне забезпечення (таке як GRUB) може просто
|
||
використовувати.
|
||
|
||
Завантажувачі BSD на x86, в BIOS системах, типово очікують запуск текстового
|
||
режиму. Це зазвичай можливо встановити консоль на вищі VGA mode,
|
||
на більшості систем, але не на більшості систем coreboot з використаною нативною
|
||
ініціалізацією відео, в зв'язку з примхами, що вже описано. Якщо ви бачити будь-яку
|
||
документацію (на землі BSD), що стосується VESA mode, ігноруйте її повністю;
|
||
допоки ви не використовуєте пропрієтарний VGA ROM для вашого пристрою, це не буде працювати,
|
||
і Libreboot не поширює це (натомість, власна ініціалізація відео coreboot
|
||
використана там, де можливо, або налаштування headless корисного навантаження SeaBIOS
|
||
надано, де ви би або виконували його headless, або встановили графічну
|
||
карту).
|
||
|
||
Тепер, це би інакше значило: відсутність X11/Wayland. Якщо ви запускаєтесь в corebootfb
|
||
mode з SeaVGABIOS, ви не отримаєте дисплей в завантажувачах BSD, і якщо ви завантажуєтесь
|
||
в текстовому режимі, ви не можете встановити VESA mode з BSD. Тим не менш, ви в удачі:
|
||
|
||
Щонайменш OpenBSD та FreeBSD (можливо інші) всі мають чудову підтримку KMS
|
||
в ці дні; коротко для `Kernel Mode Setting`. Це уникає неефективності
|
||
методів BIOS/UEFI, маючи ядро, що встановлює режими безпосередньо. Воно засновано на
|
||
драйверах KMS, що проекти BSD портували з ядра Linux. З цим,
|
||
ви можете використовувати X11/Wayland в FreeBSD (і просто X11 в OpenBSD, тепер).
|
||
|
||
Наприклад: в FreeBSD, ви можете встановити `graphics/drm-kmod` в якості пакунка
|
||
або з портів, і (для графічних карток Intel) зробіть це:
|
||
|
||
sysrc kld_list+="i915kms"
|
||
|
||
Це створює наступний запис в `/etc/rc.conf`:
|
||
|
||
kld_list="i915kms"
|
||
|
||
В FreeBSD також рекомендовано, щоб ви перемикнулись на KMS в консолі/TTY;
|
||
додайте це до `/boot/loader.conf`, щоб ви могли досі використовувати консоль після завершення
|
||
Xorg:
|
||
|
||
kern.vty=vt
|
||
|
||
Вам не варто сподіватись на вищезазначену інструкцію (для FreeBSD), тому що точний
|
||
крок може змінитись, і це не йде в повні подробиці так само. Зверніться до
|
||
документації, наданої вашою системою, щоб знати те, як налаштовується KMS.
|
||
|
||
ЗАВЖДИ ЧИТАЙТЕ КЕРІВНИЦТВО
|
||
----------------------
|
||
|
||
Всі BSD мають *чудову* документацію; це одна з визначних
|
||
характеристик, проти типових дистрибутивів Linux.
|
||
|
||
Осторонь від цієї примхи в coreboot, що стосується *BIOS* video mode, BSD
|
||
в іншому випадку працюють в точності таким чином, як ви би передбачали, і ви можете
|
||
прослідувати їх офіційній документації без значної метушні.
|
||
|
||
Ніяких конкретних або деталізованих керівництв не буде надано тут, оскільки SeaBIOS
|
||
справедливо пояснюючий сам за себе; ви можете в іншому випадку посилатись до документації
|
||
SeaBIOS.
|
||
|
||
Якщо ви прошиваєте ROM для машини, де `seabios_withgrub`
|
||
та `seabios_grubfirst` ROM є доступними, виберіть `seabios_withgrub`.
|
||
|
||
НЕ ВИКОРИСТОВУЙТЕ ОБРАЗИ ROM З `seabios_grubfirst` В ІМЕНІ ФАЙЛА! Ці були
|
||
присутніми в старіших випусках Libreboot, і підтримувались в минулих ревізіях
|
||
системи побудови, але вони не працювали для передбаченої мети. Більше
|
||
інформації написано в [керівництві встановлення Libreboot](../install/). ROM
|
||
образи з `seabios_grubfirst` в імені файла НЕ буде включено в
|
||
наступні випуски Libreboot.
|
||
|
||
Сумнівна згадка: Tianocore
|
||
--------------------------
|
||
|
||
Tianocore є надзвичайно роздутим, та непридатним для аудіту, тому його не включено
|
||
в прошивку Libreboot, але це реалізація посилання UEFI від
|
||
Intel та вкладників. Він можете завантажувати більшість систем BSD дуже добре.
|
||
|
||
Більш міцним шляхам для надання послуг UEFI в Libreboot бути дослідженими.
|
||
Інтеграція Tianocore не буде надана офіційно, в жодному з поточних або майбутніх
|
||
випусків Libreboot.
|
||
|
||
Настільні користувачі
|
||
-------------
|
||
|
||
ПРИМІТКА: Ця секція не може бути повністю точною; наприклад, сторінка апаратного забезпечення
|
||
про HP Elite 8200 SFF розповідає про використання графічних карток на обох налаштуваннях corebootfb
|
||
та txtmode, і здається працюючою добре з SeaBIOS в обох випадках.
|
||
|
||
Настільні користувачі на Libreboot мають просто встановити графічну картку,
|
||
та знову завантажитись з SeaBIOS в текстовому режимі; тим не менш, коли ви робите це,
|
||
SeaBIOS виконає option ROM VGA на карточці, яка надасть
|
||
ранню ініціалізацію відео, замість ініціалізації coreboot, і цей
|
||
VGA ROM зазвичай буде реалізовувати повні INT10H mode, включаючи можливість
|
||
встановлювати режими в BIOS (використовуючи переривання), у випадку чого ви не
|
||
маєте хвилюватись про Kernel Mode Setting, але вам варто досі використовувати KMS
|
||
в будь-якому випадку.
|
||
|
||
Причиною використовувати KMS є те, що він більш ефективний. Сервіс INT10H може тільки
|
||
бути викликано в Real Mode або Virtual 8086 mode; v8086 є недоступним в
|
||
long mode (x86\_64) та перемикання в Real Mode лише для встановлення VGA mode є
|
||
надзвичайно дорого, говорячи з точки зору обчислень. Це те, чому сучасні ядра
|
||
(Linux та BSD) роблять mode setting самостійно.
|
||
|
||
Ви можете вивчити більше про режими INT10H text/VGA тут:
|
||
|
||
<https://en.wikipedia.org/wiki/INT_10H>
|