LINUX.ORG.RU

Coreboot на thinkpad l420

 , ,


0

2

Пока нет времени вникать, может быть кто-то сталкивался. Есть ли рабочий coreboot для данного ноутбука, надо ли паять, чтобы прошить и возможные подводные камни.

Если никто не в курсе, попробую сам разобраться и отписаться тут, вдруг кому пригодится.

★★★★
Ответ на: комментарий от ddidwyll

Пожалуйста ;) Кстати, в этом руководстве - http://dangerousprototypes.com/docs/Flashing_a_BIOS_chip_with_Bus_Pirate#CH341A_flashing_coreboot_open_source_BIOS_to_Lenovo_G505S_hacking - ты можешь увидеть как выглядит процесс прошивки при помощи программатора CH341A, а также есть небольшой обзор различных прищепок SOIC8 - http://dangerousprototypes.com/docs/Flashing_a_BIOS_chip_with_Bus_Pirate#SOIC8_test_clip . Правда я не знаю, какого формата у твоего ноута BIOS-чип, может тебе другая прищепка нужна. А под некоторые формы чипов прищепок ещё не изобрели, и людям приходится или самодельную хлипкую фигню делать или всё же отпаивать.

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

Если flashrom поддерживает internal режим на твоём ноуте, после однократной прошивки рабочего coreboot ты сможешь прошивать его более новые версии без прищепок. + После того как разобрал ноут, можешь раскалённым ненужным ножом (можно нагревать зажигалкой) / паяльником (с ненужным жалом, потому что очень запачкается) прорезать окошко в корпусе для быстрого доступа к BIOS-чипу, и аппаратная прошивка. будет занимать не более 5-10 минут даже с учётом времени на подключение. Главное перед этим отсоединяй аккумулятор/блок питания, и на всякий случай снимай заряд с ноута нажатием кнопки включения после того как всё отсоединил.

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

Вандализм какой-то :)

Лучше уж припаять проводки к ножкам и вывести через какой-нибудь ненужный порт. siro так делает :)

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

К плате припаиваться может быть страшновато ;) А прищепка в корпус не поместится, да и слететь может если её шевельнуть...

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

Кстати, в зависимости от ноута эта «дырень» к БИОС-чипу может быть скрыта под ещё одной крышкой, но которая держится на трёх шурупах

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

Прищепку конечно не надо. Но дырка в корпусе (при чем сверху, ведь на thinkpad SPI чипы всегда на той стороне платы, что сверху), как по мне, это слишком) водой случайно зальешь, коротнет.

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

Звучит круто, но насколько востребованы новые версии, если и так всё работает, что там может появиться?

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

дырень может быть и снизу в зависимости от ноута ;) + можно сделать герметичную мини-крышку. а с водой лучше вообще к компам не подходить)

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

Ну на всех thinkpad что я шил, а это штук 8-9 разных моделей, они под палмрестом, плюс на Тшках чаще всего прикрыты ещё и железкой внутри (магниевым каркасом таким).

Вот на макбуках кайф. Я недавно добавил поддержку трёх новых макбуков. На прошках флешка прямо под крышкой. Снимаешь её и шьешь сразу. Очень быстро.

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

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

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

Да мало ли. Например в gerrit висит патч для отключения hyperthreading. Когда его смержат, появится новая фича такая. Как пример.

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

Или фиксы нативного raminit. Тоже полезно.

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

Кстати, чем пользуешься для снятия логов coreboot на начальных этапах отладки (когда материнка пока ещё не грузится до ОС) ? USB-платой FT232H, или чем-то другим?

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

Грубо говоря, git pull, make, и шьешь. Иногда конфиг придётся обновить.

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

Есть даже скрипт csb_patcher.sh https://review.coreboot.org/c/coreboot/ /33509 , который - помимо возможности автоматически выкачать и установить некоторые неофициальные патчи, также поможет скачать и установить хорошие дискетные ОС - с проверкой SHA256 контрольных сумм, разумеется! Сейчас там 9 дискет: KolibriOS, FreeDOS, MichalOS, Snowdrop, Fiwix, Memtest, Tatos, Plop, FloppyBird - и, благодаря LZMA-сжатию, они все влезают в мой 4МБ БИОС-чип помимо coreboot+SeaBIOS (которые сами по себе занимают чуть меньше мегабайта)

Среди неофициальных патчей, обязательно применить набор из патчей для SeaBIOS, который включает в себя патч multiple_floppies для поддержки нескольких дискет - иначе SeaBIOS будет показывать только первую найденную дискету. в SeaBIOS (основной «payload» у coreboot) вообще закоммитить что-то проблематично, поэтому так и будет висеть в неофициальных, скорее всего.

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

Жаль spiconsole не для всех плат работает, по крайней мере когда я попытался для AMD-шной она даже не скомпилилась

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

SakuraKun Влезу не в свою тему, но про коребут: скоро у меня освобождается Tyan S8226, на которую когда-то портировали коребут, но он протух.
С какой вероятностью его можно будет воскресить слишком большого количества секса и кому это может быть нужно?

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

у нас на Lenovo G505S только недавно дискретная видеокарта заработала

Какой замечательный биос, очманiти просто.

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

Можно, но заметно меньшее количество чипов, т.к. ардуина вроде не поддерживается опенсорсным софтом для прошивки flashrom. https://www.flashrom.org/Flashrom/1.0/Supported_Hardware#USB_Devices

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

Если бы всё было так просто то и flashrom был бы не нужен. Т.к. пример по твоей ссылке не учитывает особенности различных чипов, он не может быть совместим с их значительной частью. https://www.flashrom.org/Supported_hardware#Supported_flash_chips

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

Какой замечательный биос, очманiти просто.

Зато наш опенсорсный биос развивается и IOMMU поддерживает - в отличие от проприетарного, который так и останется кривым индусским поделием застрявшим в 2014. Да и крутые дискетки к нашему коребуту можно добавлять - это ли не киллер фича? Когда показывал знакомому загрузку KolibriOS прям из биоса, у него глаза на лоб вылезли ;)

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

Чё-то там время коммитов до выхода ризен. Есть что для процессоров, а не для кукурузозатычек?

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

Меня ризены не волнуют из-за наличия в них аппаратного бэкдора AMD PSP. К тому же ризены пока не поддерживаются коребутом, а наши «кукурузозатычки» там есть - и это самое главное, тем более что по производительности они не уступают многим днищеультрапукам

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

Нда? А Haswell с Sandy Bridge поддерживаете, я так понимаю там бэкдоров нет, лол.

А более быстрый и дешёвый ризен нет - позорище и абсурд.

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

Я помню, на канале писали, что у AMD хуже с открытостью, иногда вообще нет никаких даташитов, и тд. У интела больше документации. Сам с AMD не работал, не знаю насколько это правда.

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

Думаю можно воскресить. Платы удаляют, когда у них долгое время нет мейнтейнера ими никто не пользуется (нет board_status и тд). Если хочешь стать мейнтейнером этой платы, то пожалуйста.

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

Haswell с Sandy Bridge поддерживаете, я так понимаю там бэкдоров нет, лол.

Кто это «поддерживаете» ? я вот не поддерживаю ;) разве что общим кодом не зависящим от платформы.

Пока ризен не избавится от своего главного изъяна - бэкдора PSP - часть коребутного сообщества даже не посмотрит в его сторону! Ведь многие бежали на коребут ради безопасности, и на бэкдор в процессоре - хоть Intel ME, хоть AMD PSP - не согласятся.

Поэтому сейчас главная инициатива по добавлению ризена в коребут исходит от китайцев, которые совместно с AMD смастерили похожие на райзен процессоры - https://www.phoronix.com/scan.php?page=news_item&px=Hygon-Dhyana-Coreboot-First

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

Не знаю :) А откуда мне знать, если у меня нет ни одного интеля кроме четвёртого пенька? Он без Intel ME, кстати ;)

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

Тогда следовало бы заниматься чем-нибудь вроде risc-v или Raptor Talos™ II Secure Workstation, а не надеждами, что ты знаешь про все бэкдоры, а не только про некоторые.

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

Справедливости ради - сейчас уже известно много способов отключения ME.

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

SakuraKun говорил, что мейнтейнер для борды пропал и, соответственно, код для нее не перевели на свежий апи(?).
Насколько я понимаю, эта амдшная платформа еще более-менее свободна от зондов. Главный вопрос в том, сколько времени потребуется на то, чтобы портануть коребут: или это буду делать я, или отдать плату какому-нибудь идейному лоровцу.
И стоит ли рассчитывать на консультации с вашей стороны?

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

на свежий апи

Не знаю, что там за API (это ведь еще от платформы зависит, а я с AMD не работал, только с разными интеловскими платами, в отличие от SakuraKun), но там периодически рефакторят код, отказываются от каких-то typedef-ов, вводят новые, что-то переписывают, и т.д.

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

Мы всегда готовы помочь, а еще есть #coreboot на freenode, где тоже всегда помогут (особенно если подождать и/или периодически напоминать о себе).

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

Плату могут удалить и если её код не обладает каким-то свойством, даже если ей кто-то пользуется. Tyan S8226 удалили скорее потому что никто не портировал её инициализацию памяти с LATE_CBMEM_INIT на EARLY_CBMEM_INIT, а так бы скорее всего и висела в поддерживаемых.

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

Можешь посмотреть как в своё время портировали другие AMD-шные платы на EARLY_CBMEM_INIT и сделать по образу и подобию. Если удастся, отправляешь свои наработки на review.coreboot.org - и, возможно после нескольких ревизий твоего патча (сложно всем угодить с первого раза) твою плату примут обратно.

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

А я знаю забавный противоположный случай: macbookair4_2 висела с 2015 (если не ошибаюсь) года, никто ей не пользовался, она не работала (!), у нее не было мейнтейнеров, но никто её не удалял :) Это был просто конфиг, сгенерированный autoport.

Там даже вывод для графики неправильный был прописан (LVDS вместо eDP для libgfxinit), и никто не жаловался, потому что никто ей не пользовался :)

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

Можешь действовать следующим образом:

1) Качаешь самый свежий коребут (git clone https://review.coreboot.org/coreboot/) и копируешь туда самую последнюю версию папки ./src/mainboard/tyan/s8226 до её удаления в коребуте.

2) Пытаешься под неё скомпилить, и скорее всего у тебя не компилится потому что не хватило какой-то зависимости удалённой из коребута - например, код отвечающий за LATE_CBMEM_INIT. Дальше находишь самую последнюю версию этой удалённой зависимости и тянешь её из старого коребута в новый, опять пытаешься скомпилить, и делаешь так до тех пор пока не скомпилится. Получается свежий коребут + ./src/mainboard/tyan/s8226 с минимально необходимым набором старых зависимостей. Тестишь его на своей плате Tyan S8226 - если работает - т.е. грузится до ОС - переходим к следующему шагу, а если нет, то пытаемся заставить работать. Логи можно считывать или через COM-порт или при помощи USB-адаптера FT232H / FT2232H вставленного в правильный USB-порт. Более подробно можешь почитать тут - https://www.coreboot.org/Console_and_outputs - к сожалению не все эти способы работают для каждой платы.

3) Пытаешься избавиться от старых зависимостей, поглядывая как портировали с LATE_CBMEM_INIT на EARLY_CBMEM_INIT для других плат: желательно найти какую-то одну, максимально похожую по железу, и брать пример с неё. Ну а потом, как всё получится, отправить патч на https://review.coreboot.org и работать над ним.

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

Интересно :) Получается, можно полагаться только на board_status - ведь его можно получить только с рабочей платы. Жаль только немногие его отправляют. Кстати, перед отправкой лучше посмотреть сгенерированную инфу и удалить оттуда лишнее: например, MAC-адрес твоего WiFi-адаптера или модель твоей флешки / жёсткого диска.

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

Спасибо.
Звучит осмысленно, как железка освободится, попробую настроить сетап для дебага, а там посмотрим.
Надеюсь, с тем, чтобы завести дебаг, проблем не возникнет.
А что насчет наличия AMD PSP в Bulldozer'ах, точнее в opteron 42** серии?

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

Bulldozer это архитектура 15h - и, в качестве дополнительного подтверждения, твоя железка действительно 15h - т.к. в Kconfig твоей Tyan S8226 я вижу NORTHBRIDGE_AMD_AGESA_FAMILY15. а AMD PSP добавили в «поздней 16h» (Puma)

Некоторые, например сайт libreboot, пишут что всё после 2013 года зашкварено - но это неправда, т.к. PSP внедрялся постепенно и есть некоторые более поздние процы которые всё же не содержат в себе PSP - например Opteron X2170 «ранний 16h» (Jaguar), конец 2016.

В коребуте среди AMD-шных плат массового производства, с PSP есть пожалуй только PC Engines APU2 с процом архитектуры «поздняя 16h». Райзен - 17h - пока не добавили. Как видишь, «не вляпаться в PSP» с коребутом довольно несложно. у меня есть железо 15h (Richland) - ноут Lenovo G505S с A10-5750M, и «ранняя 16h» (Jaguar) - десктопная MiniITX плата AM1I-A с Athlon 5370 от которой я не в восторге, например потому что из «раннего 16h» выбросили IOMMU: возможно переделывали его под этот бэкдор PSP который не успели вовремя сделать, вот и PSP и IOMMU нет. Поэтому поглядываю на десктопную плату 15h ASUS A88XM-E с сокетом FM2+ куда можно установить например Richland A10-6700. Правда её пока не приняли в coreboot, но патч уже есть - https://review.coreboot.org/c/coreboot/+/30987

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

Разумеется интересна как и всё coreboot+AMD-шное, жаль времени не хватает на кучу различных проектов (например прошивку для роутера уже сто лет никак не пересоберу) - к тому же, было бы здорово если бы ты тоже немного овладел магией коребута. Поэтому лучше ты сам начинай пробовать, а мы с сообществом поможем тебе по возможности.

Кстати, я не знаю какой БИОС-чип на твоей плате. Он в сокете и вытаскивается? Если нет, у тебя уже есть программатор с прищепкой, чтобы прошивать его без выпаивания? Почитай комменты здесь - Релиз Coreboot 4.8 (комментарий) - и лучше заранее закажи программатор с прищепкой и что-то для снятия начальных логов загрузки с твоей платы.

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

Разумеется интересна как и всё coreboot+AMD-шное, жаль времени не хватает на кучу различных проектов

Я, скорее, интересуюсь, куда потом эту плату деть: она пока стоит в домашнем серваке с парой 4284, который я скоро поменяю.
У меня у самого времени мало, поэтому интересуюсь готовыми гайдлайнами по дебагу, чтобы не пробивать стены самому.

Кстати, я не знаю какой БИОС-чип на твоей плате. Он в сокете и вытаскивается

Микруха в кредле, на матери есть компорт. Но вообще весь этот стаф у меня в наличии, тк случается я занимаюсь всякой электроникой.

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

Самое главное чтобы было чем смотреть логи загрузки если плата не грузится до ОС - а дальше ты эти логи можешь попробовать понять сам, или отправить в список рассылки coreboot чтобы подсказали что к чему - https://doc.coreboot.org/community/forums.html

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