summaryrefslogtreecommitdiff
path: root/ru/common/coreboot-libreboot-compatible.md
diff options
context:
space:
mode:
Diffstat (limited to 'ru/common/coreboot-libreboot-compatible.md')
-rw-r--r--ru/common/coreboot-libreboot-compatible.md165
1 files changed, 165 insertions, 0 deletions
diff --git a/ru/common/coreboot-libreboot-compatible.md b/ru/common/coreboot-libreboot-compatible.md
new file mode 100644
index 0000000..676d785
--- /dev/null
+++ b/ru/common/coreboot-libreboot-compatible.md
@@ -0,0 +1,165 @@
+# Coreboot, Libreboot совместимые ThinkPad'ы
+
+## Что такое Coreboot?
+
+[**Coreboot**](https://www.coreboot.org/) - это свободная альтернатива проприетарным BIOS/UEFI прошивкам под лицензией GPLv2.
+
+**Это не загрузчик сам по себе**, это скорее прослойка для взаимодействия с железом, поверх которого используют загрузчики (payload).
+
+Примеры payload'ов для загрузки операционных систем:
+
+- SeaBIOS (Классический BIOS);
+- Tianocore (UEFI);
+- GRUB2;
+- u-boot (используется в Chromebook'ах);
+- Linux ядро в самом ROM чипе;
+- И многие другие.
+
+Coreboot используется в Chromebook'ах, в QEMU виртуалках (вместе с SeaBIOS либо Tianocore, в зависимости от того что вы выберите) и портирован на многие ThinkPad'ы до поколения Haswell. Из более менее современных материнских плат, на данный момент был портирован на [MSI PRO Z690-A](https://docs.dasharo.com/variants/msi_z690/overview/) от проекта Dasharo, который работает на Intel 11го поколения.
+
+## Что такое Libreboot?
+
+[Libreboot](https://libreboot.org/) - это *дистрибутив* Coreboot, цель которого предоставить свободную (на сколько это возможно) прошивку для загрузки систем, альтернативную приприетарным.
+
+В качестве загрузчика используется GRUB2 и/или SeaBIOS и меню для настройки оборудования. Сопровождающим проекта является Ли Роу ([Leah Rowe](https://libreboot.org/contrib.html#leah-rowe))
+
+>Раньше проект Libreboot предоставлял только полностью свободные прошивки без каких-либо блобов. Но 16го ноября 2022, в результате слияния проекта os-boot (тоже от Ли Роу), проект [сменил политику поставки проприетарных компонентов (далее: blob'ов)](https://libreboot.org/news/policy.html) в прошивку.
+>
+> Вот некоторые выноски оттуда:
+> - Если blob'а можно избежать, его следует избегать. Например, инициализация VGA или ОЗУ, даже если опенсорсный аналог хуже работает.
+> - Если в ноутбуке есть дискретная графика (например, Nvidia) и для её работы нужен blob, то он будет добавлен в прошивку.
+> - Если для процессора есть обновление микрокода, то он будет добавлен в прошивку, так как это исправляет ошибки безопасности в процессоре.
+
+## Другие Coreboot дистрибутивы
+
+Таблица существующих Coreboot дистрибутивов (помимо упомянутого Libreboot):
+
+| Название | Загрузчик (payload) | Ссылка | Комментарий |
+| ----------- | ------------------------- | -------- | --------------------------------------------------------------- |
+| Skulls | SeaBIOS | [GitHub](https://github.com/merge/skulls) | Предоставляют собранные Coreboot образы (только сам BIOS регион). Поддерживаются: X230, X230t, T430, T530 и T440p. | |
+| Heads | Свой на основе Linux (?) | [GitHub](https://github.com/osresearch/heads) | Добольно интересный проект, предоставляющий верифицированную загрузку используя USB ключи (TOTP или HOTP) и TPM. В основном поддерживается только X230 и документация по нему расписана лучше всего, но также упоминаются X220, T420, T430.
+| MrChromebox | Tianocore (UEFI) | [Сайт](https://mrchromebox.tech) | Coreboot прошивка для Chromebook и Chromebox устройств, позволяющая загружать Windows и Linux системы привычным UEFI. Из ThinkPad'ов поддерживаются только, соответственно, некоторые Chromebook'и (например ThinkPad 131e) |
+| Dasharo | Неизвестно, возможно UEFI | [Документация](https://docs.dasharo.com) | Информации по ним мало, но прославились тем, что портировали Coreboot на [MSI PRO Z690-A](https://docs.dasharo.com/variants/msi_z690/overview/). ThinkPad'ы не поддерживаются, они занимаются более современным железом.
+
+Coreboot также используется: в Chromebook и Chromebox; ноутбуках System76 и Librem от Purism. Coreboot также планируется порт на ноутбуки от Framework и уже есть [первый коммит](https://review.coreboot.org/c/coreboot/+/62569).
+
+## Поддерживаемые ThinkPad'ы
+
+Это таблица ThinkPad'ов, для которых можно собрать Coreboot образы:
+
+| Устройство | Поддержка Libreboot | Полностью свободный | Возможна внутренняя прошивка | Комментарий |
+| ------------- | ------------------- | ------------------- | ---------------------------- | ------------------------------------------------------------------------------- |
+| X210 (NB51) | Нет | Нет | Да, разблокирован изначально | Это материнская плата от энтузиастов для X200 с процессором Intel 8го поколения |
+| X60 | Да | Да | Да, bucts метод |
+| X60t (Tablet) | Да | Да | Да, bucts метод |
+| X60s | Да | Да | Да, bucts метод
+| T60 | Да | Да | Да, bucts метод | Только если у вас версия T60 _без_ ATI графики |
+| T60 (ATI) | Нет | Нет (VGA) | Да, bucts метод | Нужно добавить поддержку VGA BIOS в прошивку
+| ======== | ======== | ======== | ======== | ========
+| X200 | Да | Да | Нет |
+| X200s | Да | Да | Нет |
+| X200t (Tablet)| Да | Да | Нет |
+| T400 | Да | Да | Нет |
+| T400s | Да | Да | Нет |
+| R400 | Да | Да | Нет |
+| T500 | Да | Да | Нет |
+| W500 | Да | Да | Нет |
+| R500 | Да | Да | Нет |
+| ======== | ======== | ======== | ======== | ========
+| X201 | Нет | Неизвестно | Нет | Упоминается в исходниках Coreboot
+| X301 | Да (?) | Неизвестно | Нет | Упоминается в поддерживаемых устройствах Libreboot, но документации по нему нет
+| ======== | ======== | ======== | ======== | ========
+| T410 | Нет | Нет (IntelME) | Нет | Упоминается в исходниках Coreboot
+| ======== | ======== | ======== | ======== | ========
+| X220 | Да | Нет (IntelME) | Нет |
+| X220t (Tablet)| Да | Нет (IntelME) | Нет |
+| T420 | Да | Нет (IntelME) | Нет |
+| T420s | Да | Нет (IntelME) | Нет |
+| T520 | Нет | Нет (IntelME) | Нет | Упоминается в исходниках Coreboot
+| L520 | Нет | Нет (IntelME) | Нет | Упоминается в исходниках Coreboot
+| ======== | ======== | ======== | ======== | ========
+| X131e (STOUT) | Нет | Нет (IntelME) | Неизвестно, Chromebook | Поддерживается MrChromebox. Упоминается в исходниках Coreboot
+| X230 | Да | Нет (IntelME) | Да, S3 уязвимость (1vyrain) | Последняя уязвимая версия BIOS 2.60
+| X230edp | Да | Нет (IntelME) | Да, S3 уязвимость (1vyrain) | Версия X230 с модом на FullHD дисплеи (напр. nitrocaster или e-gain)
+| X230t (Tablet)| Да | Нет (IntelME) | Да, S3 уязвимость (1vyrain) | Последняя уязвимая версия BIOS 2.58
+| S230u | Нет | Нет (IntelME) | Нет | Упоминается в исходниках Coreboot
+| T430 | Да | Нет (IntelME) | Да, S3 уязвимость (1vyrain) | Последняя уязвимая версия BIOS 2.64
+| T430s | Нет | Нет (IntelME) | Да, S3 уязвимость (1vyrain) | Последняя уязвимая версия BIOS 2.59. Упоминается в исходниках Coreboot
+| T530 | Нет | Нет (IntelME) | Да, S3 уязвимость (1vyrain) | Последняя уязвимая версия BIOS 2.60. Упоминается в исходниках Coreboot
+| W530 | Нет | Нет (IntelME) | Да, S3 уязвимость (1vyrain) | Последняя уязвимая версия BIOS 2.58. Общие Coreboot исходники с T530
+| X1 Carbon (G1)| Нет | Нет (IntelME) | Нет | Упоминается в исходниках Coreboot
+| ======== | ======== | ======== | ======== | ========
+| T440p | Да | Нет (IntelME) | Нет |
+| W541 (W540) | Нет | Нет (IntelME) | Нет |
+| ======== | ======== | ======== | ======== | ========
+| 11e (GLIMMER) | Нет | Нет (IntelME) | Неизвестно, Chromebook | Поддерживается MrChromebox. Нет в исходниках Coreboot (Сторонний репозиторий?)
+| 11e (ULTIMA) | Нет | Нет (IntelME) | Неизвестно, Chromebook | Поддерживается MrChromebox. Нет в исходниках Coreboot (Сторонний репозиторий?)
+| 13 (SENTRY) | Нет | Нет (IntelME) | Неизвестно, Chromebook | Поддерживается MrChromebox. Нет в исходниках Coreboot (Сторонний репозиторий?)
+| 11e (PYRO) | Нет | Нет (IntelME) | Неизвестно, Chromebook | Поддерживается MrChromebox. Нет в исходниках Coreboot (Сторонний репозиторий?)
+| C13 (MORPHIUS)| Нет | Нет (IntelME) | Неизвестно, Chromebook | Поддерживается MrChromebox. Нет в исходниках Coreboot (Сторонний репозиторий?)
+
+Поддержка Libreboot означает что эти модели поддерживаются сопровождающим проекта. Если поддержки Libreboot нет, вы всё ещё можете собрать свой образ из репозитория Coreboot.
+
+Внутренняя прошивка означает то что вы можете прошить образ на целевой машине, используя при этом проприетарную прошивку, обычно это происходит за счёт нахождения уязвимостей.
+В противном случае придется использовать программатор.
+
+> Советую всегда использовать прошивку программатором, перед этим сделав бэкап BIOS чипа. Так вы сможете вернуть свою машину в рабочее состояние при неудачной прошивке.
+> При внутренней прошивке возможность вернуться на заводской образ отсутствует!
+
+Если устройство полностью свободное, то его можно собирать без IntelME и микрокода.
+В такие устройства можно прошить Libreboot образ без модификаций.
+
+Если устройство *не* полностью свободное, то вам нужно будет сначала снять дамп вашего BIOS чипа программатором (включая IFD, IME, BIOS и GBE регионы) ,"вытащить" оттуда нужные blob'ы и пропатчить готовый Libreboot образ, либо собрать самому образ Coreboot из исходников, со ссылкой на blob'ы в makefile.
+
+> Вроде бы можно вытащить нужные blob'ы из .exe и .iso-образов для обновления BIOS с сайта Lenovo. Я не пробовал этот метод, но многие говорили что способ рабочий.
+
+## Известные проблемы
+
+Таблица известных проблем при использовании Coreboot:
+
+| Проблема | Устройства | Статус | Комментарий |
+| ------------------------------------------------------ | -------------------------- | --------------- | ---------------------------- |
+| Проблемы с выходом из сна (S3) на Haswell | 40ые серии (T440p, W541) | [Подтверждено](https://libreboot.org/news/libreboot20221214.html#s3-suspendresume-on-haswell-t440pw541) | "Полностью сломан" (с) Ли Роу.<br>[Судя по тикету из Coreboot](https://ticket.coreboot.org/issues/432), проблема появляется при сборке образа скриптами Libreboot. Сам не проверял. |
+| Не работают многие USB 3.0 корпуса для жестких дисков | X230 | [Подтверждено](https://ticket.coreboot.org/issues/175) | У самого была такая проблема, это касается портов на самой материнской плате и на докстанциях. Если подключать диск через USB 3.0 ExpressCard модуль, то диск работает нормально. |
+| Не работает GRUB2 payload с ATI графикой | T60 ATI | Нужно тестировать | Когда у меня был T60 с ATI графикой, у меня не получилось запустить загрузчик GRUB2 - был просто черный экран, но работал SeaBIOS. Ли Роу потом посоветовала использовать GRUB2 в текстовом режиме, но к тому времени ноутбук был уже продан.
+| На ThinkPad'ах не работает актуальная версия Tianocore (UEFI) | Все модели | [Подтверждено](https://www.reddit.com/r/coreboot/comments/rilew7/tianocore_upstream_vs_uefipayload_vs/) | На данный момент, невозможно использовать актуальную версию Tianocore с ThinkPad'ами. Единственная рабочая версия Tianocore это CorebootPayloadPkg, который является **срезом кода 2018 года и с тех пор не обновляется.** Secure Boot тоже не работает.
+
+К сожалению, T440p и W541 (W540) являются самыми современными ThinkPad'ами (не Chromebook'ами) с поддерживающие Coreboot на данный момент. Другие 40ые модели и более новые не поддерживаются из-за [Intel Boot Guard](https://github.com/corna/me_cleaner/wiki/Intel-Boot-Guard), который мешает работе Coreboot, но почему-то не мешает модификации заводских проприетарных прошивок через me_cleaner и UEFI Patcher.
+
+> Стоит упомянуть, что Ли Роу не советует использовать программатор CH341A для прошивки чипов из-за бага с 3.3 вольтовой линией, которая выдает 5 вольт. Таким образом можно сжечь BIOS чип. Лучше прошивать чип при помощи RaspberryPi.
+>
+> Сам я использую CH341A с Алика. На моём программаторе этот баг отсутствовал, но неисправные версии до сих пор встречаются.
+>
+> *Имхо*, если у вас уже есть RaspberryPi, то просто докупите прищепку и прочее что нужно для прошивки. Если у вас нет RaspberryPi но есть любой компьютер работающий с GNU/Linux, то экономнее взять CH341A, при условии, что вы сможете проверить самостоятельно наличие этого бага при помощи вольтметра и исправить пайкой (либо выкинуть).
+
+## А нужно ли оно вообще?
+
+Зависит от того с какой целью вы хотите себе прошить Coreboot.
+
+Если ваша цель собрать полностью свободный ноутбук, установить ath9k WiFi карту без микрокода и использовать Trisquel, PureOS или Qubes OS, то прошивка на Libreboot того стоит.
+
+Установка Coreboot поможет вам справиться с whitelist'ами на WiFi и WWAN карты, если на вашу модель нет пропатченного заводского BIOS, как например на ThinkPad T60.
+
+Также это даёт вам возможность поддерживать BIOS прошивку в актуальном состоянии со всеми патчами безопасности.
+
+Если вы стали владельцем Chromebook или Chromebox и вы хотите за место ChromeOS использовать Windows или Linux, то Coreboot образы от MrChromebox ваш выбор.
+
+Безопасникам возможно очень понравится Coreboot дистрибутив Heads - ради него стоит покупать X230 с TPM модулем.
+
+> *Имхо*, ставить Coreboot лично на свой ThinkPad я не вижу смысла, так как я уже его прошивал на X230 и из более менее рабочих payload'ов там SeaBIOS и GRUB2.
+>
+> SeaBIOS - это обычный Legacy BIOS, поддержку которого чуть не выпилили в Fedora, хотя на этот payload каждый выпуск прилетают какие-то патчи. Не такое уж и легаси, с одной стороны.
+>
+> GRUB2 в качестве загрузчика очень интересен из-за гибкого конфигурационного файла. Им даже можно расшифровывать LUKS диски и загружать оттуда Linux ядро.
+>
+> У меня был тогда Libreboot с GRUB2 на X230 (тогда ещё os-boot) и он не смог мне запустить Linux Mint с зашифрованного носителя (застрял на логотипе Mint), а Arch Linux он загрузить смог, но с пинка - пришлось вручную через терминал GRUB расшифровывать диск и указывать где находится ядро. Автоматическую расшифровку мне Libreboot не предложил.
+>
+> Современные версии Tianocore всё равно не поддерживаются, а в форке отсутствует поддержка Secure boot - главной фичи UEFI в принципе. Сам форк не обновлялся с 2018го года, в то время как, к примеру, ThinkPad T440p получил последнее обновление безопасности относительно недавно - в середине 2021 года.
+>
+>Из загрузчиков с поддержкой верификации есть если только Heads, но поддерживаемые модели можно по пальцам пересчитать.
+>
+> Ставить спорно работающий опенсорсный аналог ради опенсорса? Я к такому не готов.
+>
+> GRUB2 в качестве загрузчика это интересная вещь, но у меня нет времени заниматься его настройкой и конфигурацией, в том числе и сборкой Coreboot образов каждый раз. Если вы готовы тратить на это время, то пожалуйста.
+>
+> Проект всё равно считаю интересным, хотелось бы его видеть на более современных потребительских ноутбуках и материнских платах. Прошивки с открытым исходным кодом это здорово! \ No newline at end of file