LINUX.ORG.RU

Релиз Coreboot 4.11

 , , , ,


3

3

Состоялся релиз Coreboot 4.11 - свободной замены проприетарным прошивкам UEFI/BIOS, используемой для начальной инициализации железа перед передачей управления дополнению «payload», например SeaBIOS или GRUB2. Coreboot очень минималистичен, к тому же он предоставляет широкие возможности встраивания различных дополнений вроде утилиты вывода подробной системной информации coreinfo и тетриса tint, а также дискетных ОС: Kolibri, FreeDOS, MichalOS, Memtest, Snowdrop, FloppyBird и др.

В новой версии:

  • Почищен и унифицирован код многих платформ

  • Значительно улучшена поддержка чипсетов Mediatek 8173 и AMD Picasso 17h (Ryzen), а также RISC-V

  • Расширена поддержка vboot (свободного аналога проприетарному SecureBoot) — изначально он был только на хромбуках, но теперь появился и на другом железе

  • Добавлены 25 новых плат:

    AMD Padmelon, ASUS P5QL-EM, Emulation QEMU-AARCH64, Google Akemi / Arcada CML / Damu / Dood / Drallion / Dratini / Jacuzzi / Juniper / Kakadu / Kappa / Puff / Sarien CML / Treeya / Trogdor, Lenovo R60, Lenovo T410, Lenovo Thinkpad T440P, Lenovo X301, Razer Blade-Stealth KBL, Siemens MC-APL6, Supermicro X11SSH-TF / X11SSM-F.

  • Удалена поддержка единственной поддерживаемой платы MIPS (Google Urara) и архитектуры MIPS вообще, а также платы AMD Torpedo и кода AMD AGESA 12h

  • Улучшена нативная инициализация Intel-овских видеокарт в библиотеке libgfxinit

  • Исправлен спящий режим на некоторых AMD-шных платах, включая Lenovo G505S

В ближайшее после релиза время планируется удаление многих плат, не поддерживающих «relocatable ramstage», «C bootblock» и платформ использующих «Cache as RAM» без стадии postcar. Это ставит под, угрозу множество важных плат на базе AMD, в том числе сервер ASUS KGPE-D16 — самый мощный поддерживаемый coreboot-ом сервер, к тому же способный работать без блобов (libreboot). О серьёзности намерений свидетельствует ряд свежих изменений на review.coreboot.org, в особенности https://review.coreboot.org/c/coreboot/+/36961

>>> Подробности

★★★★★

Проверено: a1batross ()
Последнее исправление: cetjs2 (всего исправлений: 7)
Ответ на: комментарий от derlafff

Демагогия и фантазии. То, что его пишут не разработчики железа, которые в курсе всех незадокументированных тонкостей, а васяны, считающие что какой-то там кусок документации это всё, что нужно - это сразу обратно увеличивает в 1000раз количество потенциальных багов.

anonymous
()
Ответ на: комментарий от anonymous

Возможность разгона памяти и её частоты/задержки - это зависит от конкретной коребутной платы. Например, если у неё DDR3, то 3600мгц она не возьмёт, максимум 2400мгц, даже с ужасно завышенными таймингами (они у DDR4 заметно дольше чем у DDR3, поэтому и частоты смогли сделать выше). Просто если контроллер памяти не поддерживает такие частоты хоть с какими таймингами, то никакой коребут не поможет.

SakuraKun ★★★★★
() автор топика
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от anonymous

Даташит типичного БИОС-чипа гарантирует 100 тысяч перезаписей. При всех моих экспериментах, думаю и на тысячу не наберётся.

SakuraKun ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Разработчики железа БИОСы не пишут - это делают другие компании, вроде AMI и Insyde. И вряд ли они будут тратить время и деньги на поддержку продвинутых функций, даже задокументированных, когда этого можно не делать. IOMMU у меня в проприетарном UEFI не было, как и на большинстве других ноутов его в UEFI или нет или глючный; а с опенсорсным коребутом - пожалуйста, пользуйтесь.

SakuraKun ★★★★★
() автор топика
Ответ на: комментарий от SakuraKun

У меня, допустим, и проц и ddr4 такие частоты берут. Но ещё я знаю, что даже между версиями заводких прошивок разгон памяти отличается.

anonymous
()
Ответ на: комментарий от anonymous

Можно поинтересоваться почему именно libreboot? Как оно в работе и всё ли поддерживается?

Libreboot, если честно, чисто из-за практического интереса и наличия свободного времени, а не из-за каких-то соображений. Да всё прекрасно работает, эта плата официально поддерживается libreboot. FSF официально переназвал эту железяку Vikings ASUS KGPE D16 и продают её по 1200$, хотя на любой барахолке потипу али или амазон красная цена 400$.

anonymous
()
Ответ на: комментарий от kmeaw

Ограничения - это проблема

Может тогда и Protected Mode — проблема? Давайте вместо Linux использовать TempleOS — там нет таких «проблем», всё работает в ring0 с плоским 1:1 отображением памяти.

А что, не проблема? Сперва пишут миллионы строк кода (для разработки железа и для софта), чтобы эти ringX работали. Потом пишут миллионы строк кода, чтобы как-то осмысленно использовать эти ringX. В итоге выясняется, что уровней ring не хватает и придумывают ring-минус-один, ring-минус-два. В итоге выясняется, что эти миллионы строк кода не всегда, как они заявляют, могут ограничить. Тут еще проблемы (что, опять проблемы?) производительности вылезают с переключениями между ring-ами. И их начинают обходит сами разработчики, упрощая и ухудшая гарантии (мельтдаун, как пример не очень в тему, но около этого).

Там проблема на проблеме. И не факт, что эти проблемы решают проблемы, возникающие при решении основной задачи. То есть - это мыльный пузырь из проблем, и когда-нибудь он лопнет.

Может быть проверки синтаксиса и типов в компиляторах — проблема?

А что не проблема? На чем пишешь системный код? На haskell, coq, agda, fstar, где строгая система типов? Или на rust, где много строгости, но очень сомнительной? Или на «тупом» си, где системы типов, можно сказать, нет?

Или существование фаерволов на маршрутизаторах, ведь они ограничивают прохождение пакетов через него?

Ты это при китайский фаервол? Проблема и для админов этого файервола, и для пользователей. Один хрен дырявый как дуршлаг. Проблема создана только для того, чтобы была. Не ну, а шо? Отличный способ отвлечения внимания, чтоб «активист» занималься херней, решая ненужные проблемы. А «активистов» среди миллиардов очень много, их надо чем-то занять.

Secure Boot является частью прошивки системы, и включает в себя инструменты для настройки.

Ты щас про инструменты, или про secure boot? И много биосов, которые позволяют записать свои ключи/сертификаты, для своих загрузчиков, да даже на серверных материнках? Или нужен сторонний инструмент, который не факт, что сработает.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо. Пожалуй тоже займусь ибо любопытно, а железка у меня имеется.

anonymous
()
Ответ на: комментарий от anonymous

А что, не проблема?

А ты из какой операционной системы пишешь это сообщение? Неужели из безпроблемных DOS или TempleOS? И браузер, наверное, запущен из-под суперпользователя, с отсутствующим sandbox?

Одни люди склонны ошибаться, а другие люди - этими ошибками пользоваться. Поэтому и придумывают всякие защиты, чтобы эффект от этих ошибок минимизировать. Это дешевле, чем заставлять всех людей работать в несвойственном для них режиме, доказывая и проверяя правильность каждого аспекта принятого решения.

Пожалуй, я неправильно выразился, сказав «не вижу проблем». Правильнее будет «такой подход уменьшает общую проблемность всей системы в некотором среднем случае». То есть лучше иметь разумное количество ограничений, чем считать их злом и полностью от них отказываться.

И много биосов, которые позволяют записать свои ключи/сертификаты, для своих загрузчиков, да даже на серверных материнках?

Я за последние лет пять не видел ни одной реализации, которая бы не позволяла загружать свои ключи из setup через меню.

kmeaw ★★★
()
Ответ на: комментарий от kmeaw

А ты из какой операционной системы пишешь это сообщение?

Из ungoogled-chromium со своими патчами. Пока не выпилил sandbox, так как это менее приоритетно. И зачем в хроме сендбокс, если там куча непонятных сервисов (облачные принтеры, например) неизвестно, что делающих. А что там еще может быть в 200 мегабайтном скомпилированном бинарнике?

Лучше запретить тьюринг-полную логику на сайтах: javascript и много разных css-свойств (тьюринг полные css-свойства - это вообще полный ахтунг). Это создает другую проблему - сейчас большая часть сайтов не умеют без тьюринг-полноты.

Проблема создана, чтобы была.

Одни люди склонны ошибаться, а другие люди - этими ошибками пользоваться

Есть несубъективное определение «ошибки»? Нарастание пузыря проблем ради решения одной проблемы - это ошибка? Или способ создания рабочих мест для «активистов»?

Проблема должна измеряться просто - размером. 200Мб хрома - это огроменная проблема.

То есть лучше иметь разумное количество ограничений, чем считать их злом и полностью от них отказываться.

Вот и надо заниматься «размуностью». А не генерировать миллионы строк кода для отображения котиков и тупых емоджи. (Привет юникод с мусором из эмоджи. Когда-то юникод был «разумным», сейчас - сами знает что.)

Это качается и файрволов, которые занимаются полным анализом трафика, чтобы телеграммы с торентами не работали. Но как известно, плохо получается. Но проблема создана, рабочие места тоже. «Пилите Шура, пилите»

Но кому нужна эта «разумность»?

anonymous
()
Ответ на: комментарий от xdimquax

Это правда, coreboot грузится моментально! Правда я даже не пробовал добавлять туда линуксовое ядро: ведь у него настолько частые обновы (в том числе и важные про безопасность), что замучаешься его пересобирать и биос чип перепрошивать чтобы обновить там, а на старом сидеть не хочется. Пока что SeaBIOS - современный «legacy-style» БИОС из менее чем 50к строк кода - это всё что мне нужно; тем более что он один умеет грузить дискетные ОС из биос-чипа, а другие «payload»-дополнения вроде бы нет.

SakuraKun ★★★★★
() автор топика
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от te111011010

ну, не совсем так. на словах его придумали, чтобы «обезопасить пользователя».

mumpster ★★★★★
()
Ответ на: комментарий от xdimquax

А вот тут не знаю, так что буду ждать.

ZERG ★★★★★
()
Ответ на: комментарий от anonymous

Есть несубъективное определение «ошибки»?

Можно попытаться дать такое определение для программ.

Если я, например, хочу выполнить какую-то операцию, описываю её в понятной машине форме, но машина при её интерпретации делает не то, что я хотел - значит, я допустил ошибку. Если при решении задачи мной были сделаны какие-то допущения, которые некоторым образом использовались, но оказались неверны, то это тоже ошибка.

То есть программа содержит ошибку, если она при некоторых условиях работает не так, как задумал разработчик.

Правда, такое определение никак не затрагивает ситуации, которые возникают, когда разработчик вообще не подумал о чём-то.

Нарастание пузыря проблем ради решения одной проблемы - это ошибка? Или способ создания рабочих мест для «активистов»?

Если это происходит без злого умысла, то да, я бы назвал это ошибкой.

Сложно формализовать такое понятие, как «ошибка». Если бы это было просто, то его использовали бы юриспруденции.

Проблема должна измеряться просто - размером. 200Мб хрома - это огроменная проблема.

Можно так разбить хром на компоненты, что они будут маленькими. А потом постепенно объединять их в более крупные. В какой момент размер станет проблемой?

Можно, конечно, вспомнить старые компьютеры, которые решали такие-то задачи с помощью программ такого-то (сильно меньшего, чем сейчас) размера. Но будет ли такое сравнение корректным? Старые программы были сильнее привязаны к модели компьютера, меньше взаимодействовали с другими программами, другими компьютерами, требовали более высокой квалификации как разработчика, так и пользователя. А пользователи были менее требовательны — например, их устраивала графика низкого разрешения, они не требовали совместимости с предыдущими версиями (их могло просто не существовать), возможности работать с данными откуда угодно (ведь устройство у пользователя было всего одно).

Слои абстракции позволяют более низкоквалифицированным людям оперировать более сложными системами. Или позволяют разным системам взаимодействовать друг с другом без непосредственного вмешательства в их реазилацию. В какой момент добавление нового слоя становится проблемой?

kmeaw ★★★
()
Ответ на: комментарий от anonymous

Вот и надо заниматься «размуностью». А не генерировать миллионы строк кода для отображения котиков и тупых емоджи.

Тогда целевая аудитория будет сильно меньше. Если у конкурента будут котики, то основная пользовательская масса (конвертируемая прямо или косвенно в деньги) уйдёт к нему.

Если пытаться игнорировать деньги, то проект всё равно имеет шансы загнуться. Скажем, если я разработаю новый браузер, который не умеет котиков и юникод, то вряд ли веб-разработчики будут проверять свои труды на совместимость с ним. А, значит, у меня станет ещё меньше пользователей, ведь большинство сайтов сломаются при попытке их отобразить моим продуктом.

Если получится формализовать «ошибку» и «разумность», то можно попытаться законодательно обязать разработчиков решать такие проблемы. Но они вряд ли обрадуются такому нововведению.

kmeaw ★★★
()
Ответ на: комментарий от kmeaw

Есть несубъективное определение «ошибки»?

Можно попытаться дать такое определение для программ.

Формальная верификация -> проблема останова -> тьюринг-полнота.

Даже если можно проверить, то это NP-полная задача. Максимум за разумное время можно проверить только несколько тысяч строк (например, микроядра), но не миллионы строк.

Если это происходит без злого умысла, то да, я бы назвал это ошибкой.

Говорят, была Корпорация Добра с пунктом «Не быть злом». Уже нет этого пункта.

Можно так разбить хром на компоненты, что они будут маленькими. А потом постепенно объединять их в более крупные. В какой момент размер станет проблемой?

В тот момент, когда ты не сможешь собрать эти компоненты обратно с некоторыми изменениями.

С хромом (хромиумом) это уже так. Это уже монолит, в котором даже проверку орфографии так просто не переделаешь на использование локальных словарей. А родная проверка как минимум лезет в интернет за словарями. Ну конечно же он не стучит в гугл на каждое введенное слово. Или стучит? :)

anonymous
()

В ближайшее после релиза время планируется удаление многих плат, не поддерживающих «relocatable ramstage»

Там и так весьма скромный список поддерживаемых.

Ладно. У меня есть ноутбук/десктоп на который я бы не против поставить сабж. Какие мои действия? ps естественно в списке поддерживаемых его нет.

sehellion ★★★★★
()
Ответ на: комментарий от sehellion

Узнать как можно больше о платформе. Северный мост, южный мост, мультиконтроллер, EC (в случае ноута). Почитать документацию от Intel FSP на платформу, если есть. Собрать inteltool, superiotool, ectool (для ноута), задампить всё в файлы. Записать intel_reg dump (для встроенного видео от Intel), acpidump, lspci -nnnvvv, lspci -tt, lsusb -vv, dmidecode, dmesg на родном биосе. Скачать/слить родной биос, распаковать (uefiextract), разобрать начальные этапы загрузки. Найти и извлечь из образа биоса flash descriptor, регионы ME и GbE (если есть встроенная сеть), видеобиос (если есть встроенное видео). Найти последовательный порт на плате - если его совсем нет, то можно писать логи прямо во флеш, но это неудобно - придётся каждый раз вычитывать микросхему при отладке. Найти и выяснить работоспособность чего-нибудь, куда можно подключить POST-карту - PCIe, LPC, первый USB-порт (для USB удобно использовать linux-устройство, которое умеет usb-gadget). Найти flash-микросхему содержащую биос, научиться либо вытаскивать/выпаивать её, либо временно отключать от платы для внутрисхемного программирования на программаторе.

Дальше нужно найти в src/mainboard максимально похожую плату и пытаться поправить код, чтобы он запустился на своей плате. Придётся поправить как минимум devicetree.cb, тут пригодятся собранные логи. Теоретически может заработать util/autoport, но у меня ни разу не получалось.

После этого можно пытаться собирать и прошивать coreboot. При сборке не забыть CONFIG_USE_BLOBS, CONFIG_ADD_FSP_BINARIES, fd/me/gbe регионы, максимальный уровень логирования. Затем прошиваем образ. Можно попросить coreboot при конфигурации сразу включать плату при подаче питания — это поможет понять, что хоть что-то заработало.

Дальше смотрим логи с последовательного порта; если его нет, то сливаем их из флеша. В логах смотрим, запускаются ли bootblock, romstage, ramstage; чем отличаются настройки GPIO, топология PCI, вся ли память нашлась. Первая загрузка (особенно при сборке без CMOS) может занять заметно больше времени, чем на родном биосе из-за пустого MRC_CACHE - это нормально. Затем пытаемся понять, чем всё это отличается от родного биоса, и что надо поправить, чтобы получилось примерно так же. Удобно предварительно настроить загрузчик/ядро/систему так, чтобы можно было проконтролировать процесс загрузки и залогиниться в систему через последовательный порт — тогда в случае не полностью работающего PCI можно будет собрать больше диагностики.

На какие-то конкретные вопросы достаточно оперативно отвечают на #coreboot (IRC Freenode) — можно искать помощь там.

kmeaw ★★★
()

Lenovo Thinkpad T440P

А почему именно P? Остальные 440 не совместимы? Я думал они только видеокартами отличаются. Моему 440s пригодилось бы. Я правильно понимаю, что coreboot избавит также от белого списка адаптеров?

И можно ли как-то без паяльника попробовать? С флешки загрузиться или ещё как.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

Остальные 440 не совместимы?

хз, можно проверить здесь https://coreboot.org/status/board-status.html + в поиске, 100% кто то уже спрашивал

coreboot избавит также от белого списка адаптеров?

да

можно ли как-то без паяльника попробовать?

в некоторых случаях можно, например lenovo g505s позволяет прошивку из ОС, потом перезагружаешься и вуаля) Нужно искать гайды по прошивке твоей модели, я находил для некоторых, всё на английском.

BLOBster ★★★
()
Ответ на: комментарий от SakuraKun

У меня стандартный uefi грузится тоже моментально, аж приходится заранее лупить del чтобы в него зайти, а то сразу ядро запускается.

anonymous
()
Ответ на: комментарий от alt-x

Зачастую можно через прищепку прошить, которая цепляется к БИОС-чипу, безо всякой пайки. Например, SOIC8 test clip.

SakuraKun ★★★★★
() автор топика
Ответ на: комментарий от BLOBster

можно проверить здесь https://coreboot.org/status/board-status.html + в поиске, 100% кто то уже спрашивал

Может я где-то не там ищу, но единственное место где я нашел про 440s это сообщение разработчика, что там нет последовательного порта и что он собирается менять этот комп.

alt-x ★★★★★
()
Ответ на: комментарий от SakuraKun

Спасибо! А какую прищепку лучше купить? Есть разница? И как оно работает, например, если прошивка не заведётся, можно будет через прищепку родную прошивку вернуть?

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

А какую прищепку лучше купить?

Ту, которая совместима по форме с твоим БИОС-чипом. Если у тебя БИОС-чип формы SOIC8 то и прищепку нужно SOIC8, если SOIC16 то SOIC16, и т.д. Причём, не под все формы БИОС-чипов существуют такие прищепки. Среди одного типа прищепок могут быть разновидности - например, вот обзор различных прищепок SOIC8 http://dangerousprototypes.com/docs/Flashing_a_BIOS_chip_with_Bus_Pirate#SOIC8_test_clip . Желательно брать со штырьками 1P (2.54мм), куда ты сможешь подсоединить любые провода, например короткие медные, а не использовать припаянные длинные алюминиевые.

Если прошивка не заведётся, можно будет через прищепку родную прошивку вернуть?

Да, по крайней мере для ноутбуков. Роутеры могут пытаться запитаться от этой прищепки, периодически блокируя этот чип для прищепки, приходится использовать хитрый режим работы в прошивальщике flashrom патч для которого пока не смёржен. Но с ноутбуками таких проблем пока не встречалось. Ещё, может быть что у твоего ноута два чипа, один для биоса а другой для ME, нужно их оба сбэкапить. Ну и желательно обновить БИОС до последней версии перед его заменой на coreboot, т.к. помимо БИОСа эта утилита от производителя может обновить и прошивку EC-контроллера, например чтобы улучшить алгоритмы по смене скорости работы вентилятора в зависимости от температуры.

SakuraKun ★★★★★
() автор топика
Ответ на: комментарий от alt-x

есть еще способ выяснить

1) бекапим свой бивис
2) собираем коребут
3) накатываем коребут
4) смотрим результат, если система стартует тестируем всё остальное, если что то не работает - заливаем обратно свой бивис из бекапа.

BLOBster ★★★
()
Ответ на: комментарий от alt-x

Да. Хотя в зависимости от ноута может быть возможна прошивка через internal режим софта flashrom, программатор с прищепкой по-любому должны быть на всякий случай. Стоят они очень дёшево, но ждать 2 месяца из Китая если с бесплатной доставкой, поэтому лучше заказать заранее.

SakuraKun ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.