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>
|