Выпуск CoreBoot 4.6

Состоялся релиз проекта CoreBoot 4.6, в рамках которого разрабатывается свободная альтернатива проприетарным прошивкам и BIOS. В создании новой версии приняло участие более 120 разработчиков, которые подготовили 1708 изменений.

Основные новшества:

  • Продолжается работа по сокращению зависимости от бинарных прошивок и проприетарных компонентов. CoreBoot пытается заменить закрытые компоненты прошивок на свободные реализации, что не всегда возможно. Например, прошивки Intel ME, AMD PSP и микрокод верифицируются по цифровой подписи. Для Intel ME удалось найти обходной вариант, позволяющий запустить сокращённый вариант прошивки, сводящий функциональность и возможности Intel ME к минимуму, необходимому для работы системы. Для чистки прошивки использован инструментарий me_cleaner, который удаляет все разделы прошивки, кроме базового FTPR. В итоге размер загружаемых в Intel ME данных удалось сократить с 5 Мб до 80 Кб. Решение работает на системах Intel от Nehalem до Skylake;
  • Представлен новый обработчик (payload) cbui, построенный с использованием графической библиотеки nuklear и позволяющий создавать интерфейсы взаимодействия с пользователем, управляемые при помощи клавиатуры и мыши. До свежих выпусков обновлены обработчики SeaBIOS, FiLO и iPXE. Во всех обработчиках для загрузки теперь по умолчанию используется HTTPS. Для упрощения разработки собственных обработчиков проектом развивается библиотека libpayload, которая была расширена в рамках подготовки к замене старого обработчика nvramcui;
  • Обновлён сборочный инструментарий, осуществлён переход с GCC 5.3.0 на GCC 6.3.0. Обновлены версии GMP, MPFR, Binutils, GDB, IASL и Clang;
  • CoreBoot теперь может использоваться совместно с реализацией UEFI от проекта Tianocore EDK2, но данная возможность пока не интегрирована в систему сборки, так как EDK2 поддерживает сборку с использованием GCC 4.8 (coreboot использует GCC 6.3.0) и наблюдаются отдельные проблемы с совместимостью (интеграцию планируется обеспечить до конца лета);
  • Продолжено развитие отладочной консоли cbmem: обеспечено сохранение состояния консоли между перезагрузками и добавлена возможность работы с консолью на поздних стадиях инициализации. Для ядра Linux разработан специальный драйвер, который позволяет обойтись без старой утилиты cbmem для чтения данных из области cbmem;
  • Представлена новая утилита blobtool, которая пока используется для генерации конфигурации контроллеров Gigabit Ethernet на некоторых старых материнских платах, но может быть применима для компиляции/декомпиляции любых других бинарных данных на основе заданной спецификации;
  • В инструментарий добавлена поддержка разработки компонентов на языке Ada;
  • В код для прямого взаимодействия с графической подсистемой добавлена поддержка EDID;
  • Решены проблемы с инициализацией памяти на платформах sandybridge и ivybridge, а также добавлена поддержка дополнительных модулей ОЗУ;
  • Расширена поддержка оборудования. Добавлена поддержка контроллера roda/it8518, новых типов устройств SPI, сенсорных экранов WCOM, тачпадов ALPS, GPIO IRQ, I2C HID, добавлен новый драйвер для SD/MMC/eMMC. В порт для RISC-V добавлена поддержка SoC lowRISC. Расширена поддержка Intel-систем на базе Sandybridge, Apollolake, Quark, Skylake и Kabylake, а также новых чипов AMD (00670F00);
  • Добавлена поддержка материнских плат:
    • AMD Gardenia — AMD Stoney Ridge
    • Asus F2A85_M_PRO — AMD Family 15h Trinity
    • Asus P5GC_MX — Intel Socket LGA775
    • Gigabyte GA_945GCM_S2L & GA_945GCM_S2C — Intel Socket LGA775
    • Google Auron: Yuna, Gandof, Lulu — Intel Broadwell
    • Google Beltino: McCloud, Monroe, Tricky, Zako — Intel Haswell
    • Google Eve — Intel Kabylake
    • Google Fizz — Intel Kabylake
    • Google Gru: Bob, Scarlet — RockChip RK3399
    • Google Oak: Hana, Rowan — MediaTek MT8173
    • Google Poppy & Soraka — Intel Kabylake
    • Google Rambi: Banjo, Candy, Clapper, Glimmer, Gnawty, Heli, Kip, Orco, Quawks, Squawks, Sumo, Swanky, & Winky — Intel Baytrail
    • Google Reef: Sand, Snappy, Nasher — Intel Apollolake
    • Google Slippy: Leon, Wolf — Intel Haswell
    • Intel KBLRVP3 & KBLRVP7 — Intel Kabylake
    • Intel LEAFHILL — Intel Apollolake
    • Intel MINNOW3 — Intel Apollolake
    • Lenovo L520: Intel Sandybridge
    • Lenovo S230U: Intel Ivybridge
    • Lenovo X1 Carbon GEN1 — Intel Sandybridge
    • lowRISC NEXYS4DDR — RiscV
    • MSI MS7721 — AMD Bulldozer
    • PC Engines APU2 — AMD Jaguar
    • RODA RV11 & RW11 — Intel Ivybridge
    • Sapphire Pure Platinum H61 — Intel Socket LGA1155
    • Siemens MC_APL1 — Intel Apollolake
  • Прекращена поддержка материнских плат:
    • Google Auron
    • Google Veyron Chromeboxes: Brain, Danger, Emile, Romy
    • Google Veyron Test Projects: Gus, Nicky, Pinky, Shark, Thea

Выпуск протестирован на материнских платах и устройствах:

  • asus kgpe-d16
  • asus kfsn4-dre
  • asus p5gc-mx
  • lenovo x60
  • lenovo x230
  • asrock e350m1
  • lenovo t420
  • lenovo x200
  • sapphire pureplatinumh61
  • gigabyte ga-945gcm-s2l
  • lenovo t400
  • lenovo t60
  • gigabyte m57sli
  • purism librem13
  • gigabyte ga-g41m-es2l
  • google slippy
  • intel d510mo
  • эмулятор q35, развиваемый проектом QEMU.

© OpenNet