From 88556dd7a71d9d2148c627bb1a8440d58d5d97c1 Mon Sep 17 00:00:00 2001 From: Evv1L Date: Fri, 30 Dec 2022 18:34:16 +0300 Subject: update content --- ru/common/coreboot-libreboot-compatible.md | 165 +++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 ru/common/coreboot-libreboot-compatible.md (limited to 'ru/common/coreboot-libreboot-compatible.md') 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) | "Полностью сломан" (с) Ли Роу.
[Судя по тикету из 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 -- cgit v1.2.3