LINUX.ORG.RU

Проблема с запуском системы с жёсткого диска, после установки Coreboot на Lenovo G505s

 , , , ,


1

4

В общем, узнал на этом форуме о такой любопытной штуке как Coreboot, подходящий ноутбук под него как раз имелся (Lenovo G505s). Решил его поставить, купил программатор, но как только сел знакомиться с инструкцией более детально смачно зассал :) :(, ведь опыта в прошивке никакого нет, а брать на себя риск угробить матплату не решился. Поэтому решил поручить данное дело более ответственным и опытным людям и отнёс в мастерскую. Там мне благополучно поставили Coreboot (по заявлениям мастера, а то при запуске ноутбука характерный лого коребута не высвечивается на экране, не знаю нормально ли это), а вместе с ним SeaBIOS и KolibriOS.

Собственно, проблема в том, что при запуске ноутбука происходит примерно следующий алгоритм:

сначала запускается SeaBIOS, спустя секунду открывается синяя менюха колибри, и спустя 5 секунд автоматически открывается графическое окружение колибриОС с рабочим столом, и всякими приложениями на нём как и положено.

Мне же нужно просто запустить свой дистр установленный на жёстком диске, но я не понимаю как это сделать. Я пробовал при запуске нажимать esc, меня выводило в меню seaBIOS, и показывало «Select boot device», где предлагало на клавишу q запуститься с моего жёсткого диска. После нажатия на q, просто появляется новая строка «Booting from Hard Disk…», после чего не происходит вообще ничего. Пытался дистанционно обмусолить этот вопрос с мастером, после чего попробовал по его инструкциям несколько возможных решений, но всё безрезультатно. Просто не могу запуститься с диска. Сам мастер без догадок, т.к. сам впервые прошивал корбут.

Некоторые из этих решений включали в себя изменение Current settings [a][b][c][d][e] в KolibriOS. Например, настройку [b] Add disks visible by BIOS: ставил на «on», которая по дефолту стоит «off», ничего не менялось после перезапуска. Также менял [d] Start LAUNCHER after kernel is loaded: на «off», которая по умолчанию стоит «on», далее enter и после этого просто не запускается графическое окружение колибри. Там чёрный экран и пара непонятных мне строчек в верхнем левом углу экрана. После перезапуска ВСЕ настройки колибри ОС возвращаются к дефолтным, хотя вроде и прошу их сохранять, но оно всё равно сбивает.

Что ещё характерно: когда нахожусь на рабочем столе колибри, у меня не работает мышка ни в одном из всех троих портов. Другие юсб-устройства подключать пока не пробовал, т.к. под рукой пока что нет, позже ещё проверю. Насколько я понял, отмирание некоторых юсб портов дело нормальное после установки коребута, что мне, в принципе, не сильно мешает, но везде где я встречал предостережение о том, что могут сдохнуть некоторые юсб-порты, я встречал и утешение, что хотя бы 1 рабочий останется точно. Поэтому, к отмиранию всех портов я точно не был готов :0 Но сейчас меня волнуют не столько порты, сколько то, что мой ноутбук превратился по сути в железку, которая может меня порадовать разве что тетрисом и танчиками из колибри :D

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

Надеюсь, авторитет в данной теме @SakuraKun сможет мне чем-то помочь. А то, учитывая малую популярность корбута, я видимо не могу рассчитывать даже на мастеров, не то что на свои кривые руки :D Всё железо моего ноутбука соответствует советам SakuraKun по подбору, которые я нашёл на данном форуме.



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

установщик по умолчанию создаёт специальные UEFI-шные разделы если выбирать авторазметку

Кажется были такие «новости» про Ubuntu

Насчёт «полета фантазии» авторов некоторых установщиков – увы, бывает.

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

SakuraKun, не получается у меня ничего. Я уже 5 часов мозолюсь и всё никак.

Выполняю команду «make», и вот что пишет:

`/home/lrr/coreboot/util/genbuild_h/genbuild_h.sh: line 59: -v: command not found toolchain.inc:192: The coreboot toolchain version of iasl '20220331' was not found toolchain.inc:215: toolchain.inc:216: Path to your toolchain is currently set to '/home/lordlord/coreboot/util/crossgcc/xgcc/bin/' toolchain.inc:218: toolchain.inc:219: To build the entire coreboot toolchain: run 'make crossgcc' toolchain.inc:221: To build just IASL: run 'make iasl' toolchain.inc:223: For more toolchain build targets: run 'make help_toolchain' toolchain.inc:224: toolchain.inc:226: To try to use any toolchain in your path, run 'make menuconfig', then select toolchain.inc:228: the config option: 'General setup', and 'Allow building with any toolchain' toolchain.inc:230: Note that this is NOT supported. Using it means you're on your own. toolchain.inc:232: toolchain.inc:234: *** Halting the build. Останов.«`

Ещё и на каждый второй шаг из инструкции всё у меня не как в ней идёт. Постоянно каких-то пакетов нет, после команды `./csb_patcher.sh` показывает что найдены „Bad files“, потом удаляю их, повторяю процесс, находит снова но уже у '*.rej' а не '*.orig', снова удаляю, снова повторяю, и снова меняются местами проблемы. Короче, вообще не знаю что делать уже, ни сил ни времени на это нет. Последняя надежда на то, что вы дадите какой-то дельный супер-совет после которого у меня всё заработает, но понимаю, что никакое слово мои руки не исправит :с

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

Наверное, всё-таки, такая задача мне не по силам. Не понимаю кучу очевидных но не для меня вещей, вроде того, что случится, если после выбора устанавливаемых патчей я решу повторить команду ./csb_patcher.sh, и выбрать их снова – они наслоятся друг на друга, т.к. добавляют какие-то файлы, слепливаясь в кашу? или изменяют их, и можно их повторно выбирать хоть по сто раз? А если наслоятся то критично ли это?

У меня сейчас стоит почти с десяток дискет, что с ними будет после того, как я закончу создание образа и попытаюсь перейти на него? Как они должны/не должны влиять на выбор патчей и вообще сборку корбута?

А какие патчи ставить, какие нет? Вроде понятно, что конфиги для десктопных плат мне не нужны, но не очень понятно, нужен ли мне патч для дискретной видеокарты, учитывая что у меня её сейчас нет, и учитывая то, что есть другой конфиг для g505s, который нужно ставить после патча для дискретки?

А как быть с сообщениями вроде:

found a `.seabios` hidden file at the current directory, maybe you have applied this patch already.

Apply a seabios patch now? [Y/N]

С чего оно взяло что я применял патч? То есть, всё-таки оно создаёт какой-то файл, а не изменяет, потому-что находит их в скрытом состоянии? Значит нужно жмякать «N» должно быть. Но тогда почему после «N» у меня появляется ошибка и в итоге «bad files – YES» (уже не помню напротив .orig или .rej), а после «Y» ошибки нет, хотя «bad files» всё-также YES, но другого цвета и напротив другого «.X». Если стираю .orig и .rej командой find . -name "*.orig" -o -name "*.rej" -type f -delete, и повторяю операцию, оно всё равно умудряется найти бэд файлс. Может .orig пусть и остаётся со значением «YES»? Потому что YES напротив него менее угрожающего цвета – жёлтого, а напротив .rej красного…

И уйма подобного. Вроде задачка «просто повторяй команды», но как только начинаю их повторять, начинается вынужденная импровизация в поле, в котором совсем ничего не понимаю. Эхб :(

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

А, и да. Не знаю должно ли так быть, но две ошибки, о которых упомянуто в инструкции, у меня в процессе выполнения шагов из неё не появлялись. Я о:

«22th Nov 2022 ERRATA, still true if you see this note: unfortunately our precious AMD boards have been removed from coreboot master :-( So, to build a coreboot, for now you will have to additionally run»

и

«05th Jan 2022 ERRATA, still true if you see this note: new gcc 11.x of the latest coreboot master’s compiler toolchain builds the unstable ROMs for our AMD ! Downgrade a gcc to old trusty 8.3.0 - run»

Tomohyeah
() автор топика

Ну я вот прошивал готовый бинарник Libreboot только пересадил данные сетевой карты из дампа старого BIOS по инструкции (это firmware, но там не код, а только настройки включая mac-адрес)

Всё заработало. Попробуйте прошить другую сборку Coreboot с Grub2 вместо seabios, kolibri правда перестанет работать, но зато линукс и прочее будет запускаться точно так же как с груба, установленного в UEFI или MBR.

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

Может дело в загрузчике? Возможно до перепрошивки был UEFI, теперь же его нет. GPT в «начале» имеет имитацию MBR — не могу утверждать, что это гарантирует загрузку в BIOS mode. Поведение

Систему установленную в режиме GPT можно без переустановки пересадить на BIOS, достаточно просто как-то загрузить систему и сделать команду grub-install с параметрами. Можно через livecd и chroot, можно вытащить жесткий диск и загрузиться на другом компе и тд.

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

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

Ничего никуда конвертить не нужно. GPT полностью совместима с классическим BIOS, но нужно создать отдельный раздел bios boot partition, обычно он имеет размер меньше мегабайта и влезает в пространство между GPT и первым разделом. Потом туда установить grub, lilo, syslinux или что угодно.

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

Я так понимаю, нужно установить утилиту flashrom, и как-то произвести обновление Coreboot?

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

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

Например у меня на ноутбуке именно легаси BIOS, но разметка GPT, есть раздел: /dev/sda5 34 2047 2014 1007K BIOS boot

занимающий всё место от конца GPT до начала первого раздела. Там как раз и сидит GRUB, ну и микро-загрузчик в MBR, который загружает основную часть. И да, в разметке GPT остаётся и таблица разделов DOS и её можно даже посмотреть командой от рута:

fdisk -x -t dos /dev/sda

ну или можно взять gdisk

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

Только заметил ваши комментарии. Спасибо за них! Интересные замечания, возьму их на заметку (пускай уже и решил проблему с запуском самой системы перезаписав в MBR)

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

А что нужно для обновления coreboot? Такая же морока как и для его перепрошивки? А то с его компиляцией я не справился, завис на перечне ошибок, по борьбе с которыми руководств не нашёл. Но тем не менее, у меня уже установлена очень старая версия coreboot мастером. Что требуется для его обновления?

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

А, и ещё такой вопрос

GPT полностью совместима с классическим BIOS

А с SeaBios? Думал как-то попробовать Qubes OS, но забыл об этой идее т.к. с моим Coreboot’ом (который привёл меня к MBR, что не любят кубы) и SeaBios (который тоже отдельно не дружит с GPT) нормально установить такую систему мне вроде как не светит. Но после ваших слов, вспомнил ещё слова SakuraKun:

ОС на жёстком диске была установлена в режиме GPT, а coreboot+SeaBIOS - по крайней мере без дополнительного пердолинга - поддерживает только старый добрый MBR

Может вы подскажите, как произвести этот дополнительный пердолинг для обеих прошивок, чтобы можно было спокойно запускать системы в GPT?

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

А что нужно для обновления coreboot? Такая же морока как и для его перепрошивки?

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

А то с его компиляцией я не справился, завис на перечне ошибок, по борьбе с которыми руководств не нашёл.

Можно попробовать Libreboot или подобную штуку. Это набор скриптов для упрощения сборки и настройки Coreboot под нужное железо. Если ванильный coreboot не получается собрать, может будет проще с ним.

Но тем не менее, у меня уже установлена очень старая версия coreboot мастером. Что требуется для его обновления?

Собрать из исходников, возможно пересадить какие-то данные из старого биоса, но не обязательно, вроде mac-адреса сетевой карты. Но тут уже по желанию.

Затем прошить на свой ноутбук. Как это сделать вроде выше описывали.

По второму вопросу, я уже отвечал выше.

Надо понимать, что это такое, в процитированном сообщении тут путаница терминологии.

Есть два «стандартных» загрузки ОС на x86 компьютерах. BIOS, существующий в проприетарных реализациях от Phoenix, Award, AMI и свободной SeaBIOS и UEFI, существующий в проприетарных реализациях и в свободной TianoCore. Кроме этого есть «нестандартные» способы загрузки, из которых наиболее популярен GRUB. SeaBIOS, GRUB и TianoCore — это возможные «payload» для Coreboot, то есть дополнительные модули которые запускаются coreboot после того как он произведёт минимальную инициализацию железа.

Кроме того есть множество вариантов таблицы разметки диска. На x86-компьютерах наиболее популярны варианты разметки DOS (иногда называемый MBR) и GPT. Кроме этого есть разметки BSD, IRIX и тд.

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

Классический BIOS равнодушен к таблице разделов полностью, он просто загружает нулевой сектор накопителя по адресу 0x7c00 в оперативной памяти и передаёт управление процессору на этот адрес. Соответственно, с классическим BIOS подойдёт любой вариант разметки, где начало нулевого блока не содержит данных разметки. Можно загрузиться даже вообще без таблицы разделов.

Нулевой блок диска называется MBR (master boot record), и таблица разделов DOS находится в его конце, начиная с 448-го байта, состоит из четырёх записей по 16 байт. Из-за этого таблицу разделов DOS ещё называют таблицей MBR.

Таблица разделов GPT находится в нескольких следующих секторах после нулевого, при этом в нулевом секторе есть ещё и таблица разделов DOS, в которой как правило всего один раздел типа 0xEE. Но можно создать при желании любую комбинацию.

UEFI обычно работает только с разметкой DOS и GPT. Могут быть реализации UEFI, которые с MBR не работают, только с GPT, но я сомневаюсь, что тебе такие попадутся.

UEFI работает по-другому, чем BIOS, он читает таблицу разделов и ищет там раздел типа EFI System, в таблице DOS он имеет идентификатор 0xEF, в таблице GPT какой-то там GUID, который не имеет смысла запоминать, поскольку все программы разметки, поддерживающие GPT его и так знают. Но вообще это C12A7328-F81F-11D2-BA4B-00A0C93EC93B, если вдруг интересно.

На этом разделе должна быть файловая система FAT32, хотя некоторые реализации UEFI поддерживают и другие файловые системы. Далее, в случае UEFI некоторые настройки загрузки хранятся в самом чипе, но по умолчанию запускается файл EFI/boot/bootx64.efi или EFI/boot/bootia32.efi. Если UEFI 64-битный, то первый, если 32-битный (встречается довольно редко, на очень старых маках и старых планшетах с Windows 10), то второй. Но если есть загрузочные записи, то запускается тот файл, который в них прописан, например EFI/Microsoft/Boot/BCD или что-то вроде. На совсем уж кривых реализациях этот путь может быть захардкожен, но вообще у первого варианта приоритет должен быть.

Надеюсь всё понятно? Весь «дополнительный пердолинг» — это создание в GPT раздела BIOS boot partition, если требуется GRUB, а lilo вроде бы влезает в первый сектор, и ему это не обязательно. Ну и затем установка загрузчика. У разных загрузчиках разные требования, но в любом случае раздел BIOS boot partition не повредит, поскольку он всё равно маленкий и влезает в промежуток между GPT и первым нормальным разделом, начинающимся с сектора 2048 как правило, то есть занимает место, которое обычно пропадает без дела, у меня это сектора от 34 до 2047, например.

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

В общем если кратко:

Если у вас BIOS, а на диске GPT, то нужен специальный раздел BIOS Boot partition, чтобы загрузчик знал, куда ему устанавливаться.

Если у вас UEFI, а на диске MBR, то нужен специальный раздел 0xEF с файловой системой, где должны быть файлы, нужные для загрузчика.

Если у вас Coreboot+GRUB, то пофиг что на диске, он читает почти любые таблицы разделов и файловые системы и загружает с них что угодно.

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

На мой взгляд, последний вариант как раз оптимален, поскольку из-под GRUB можно загружать линукс, убирая лишнюю сущность, думаю загрузка coreboot+grub будет быстрее, чем coreboot+seabios+grub, но кстати, можешь рассмотреть вариант первым запускать grub, а из него по желанию seabios, самый универсальный вариант если тебе понадобится иногда запускать другие ОС, кроме линукса, например FreeDOS.

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

Tomohyeah , извини за долгий ответ: случайно пропустил уведомления этой темы, но теперь буду внимательнее

The coreboot toolchain version of iasl '20220331' was not found

По какой-то причине не собрался iasl - скорее всего из-за того, что сервер откуда качался архив с iasl заблокировал вашу страну. Начните с чистого листа по той инструкции - и перед тем как выполнять make crossgcc-i386 , откройте ./coreboot/util/crossgcc/buildgcc и замените строчку

IASL_ARCHIVE="https://acpica.org/sites/acpica/files/acpica-unix2-${IASL_VERSION}.tar.gz"
например на
IASL_ARCHIVE="http://sources.buildroot.net/acpica/acpica-unix2-20220331.tar.gz"

что случится, если после выбора устанавливаемых патчей я решу повторить команду ./csb_patcher.sh, и выбрать их снова

Они будут пытаться наслоиться и будут ошибки смёрживания патчей: т.к. если ты посмотришь как работает patch/diff , там помимо добавляемых и удаляемых строк всегда указывается контекст - по несколько строчек исходного файла сверху/снизу изменяемого куска кода. В-общем, ни к чему хорошему это не приведёт, но утилита ./csb_patcher.sh способна распознавать - был ли применён уже этот конкретный патч или нет (для этого создаются скрытые .-файлы) - и напечатает тебе предупреждение если такой патч уже применялся. + Так как перед применением каждого патча утилита спрашивает Y/N, то можно запускать её хоть сто раз если ты видя предупреждение будешь благоразумно отвечать N. Например: ты на вопрос о каком-то нужном патче случайно ответил N - тогда просто запускаешь утилиту ещё раз и на всё кроме этого патча отвечаешь N а на интересующий патч уже Y

Постоянно каких-то пакетов нет

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

показывает что найдены „Bad files“, потом удаляю их

А вот этого делать не нужно! Обнаруженные .orig можно просто игнорить, они никак не мешают последующей сборке и всего лишь говорят о том, что какие-то патчи успешно применились но на чуть отличающихся строках (+ небольшое количество .orig-ов практически неизбежно). А вот если нашлись .rej - или из-за того что какие-то из патчей данного набора несовестимы с используемой вами ревизией коребута (но упоминаемая в инструкции 5e8e911b7caee021faff96c4e82a77a42544ea62 сто раз проверена и это исключено) - или вы пытались применить одни и те же патчи несколько раз - то двигаться дальше нельзя: даже если вы и удалите все .rej (которые являются лишь симптомами проблемы), будут проблемы с дальнейшей сборкой коребута - и тут уж проще начать с чистого листа и аккуратно по инструкции делать всё правильно, чем пытаться вручную разрулить эту ситуацию путём ручного редактирования исходников

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

У меня сейчас стоит почти с десяток дискет, что с ними будет после того, как я закончу создание образа и попытаюсь перейти на него?

Если после сборки коребута вы выполните команду ./csb_patcher.sh atomflop, то будет вопросы Y/N на добавление каждой из дискет к образу коребута (причем итоговый образ коребута с дискетами будет называться не coreboot.rom а coreflop.rom) . В дальнейшем, эти дискеты будут доступны в меню загрузочных устройств помимо HDD и других настоящих устройств

Как они должны/не должны влиять на выбор патчей и вообще сборку корбута?

Почти никак не влияют, разве что - если вы забудете применить патч SeaBIOS'а - то в меню загрузочных устройств будет доступна лишь одна из дискет (последняя добавленная если не ошибаюсь), а остальные дискеты будут лежать внутри BIOS-чипа мертвым грузом

А какие патчи ставить, какие нет?

Обычно ставят все патчи, разумеется за исключением тех которые предлагают установить тебе конфиг для чужой платы в качестве твоего основного - т.е. можно отвечать Y на все начальные вопросы вначале, а как дойдёт до вопросов о конфигах - делаешь Y только на один из трёх вопросов для трёх плат (G505S , A88XM-E , AM1I-A)

нужен ли мне патч для дискретной видеокарты

Его применение практически не влияет на coreboot для G505S без дискретки на плате, но для бОльшей универсальности собранного образа можете ответить и Y

есть другой конфиг для g505s, который нужно ставить после патча для дискретки?

Он тоже в этом плане универсален, и вы можете использовать этот конфиг на вашем «бездискреточном» g505s без изменений, чтобы самому конфиг не настраивать

А как быть с сообщениями вроде: found a `.seabios` hidden file at the current directory, maybe you have applied this patch already. Apply a seabios patch now? [Y/N]

Отвечать N, т.к. этот патч уже применялся ранее и попытка его повторного применения приведет к .rej-проблемам

С чего оно взяло что я применял патч?

Потому что, как оно признаётся в «found a `.seabios` hidden file at the current directory» - оно нашло скрытый пустой файл с именем патча. Этот файл .seabios автоматически создался при успешном применении этого патча ранее, просто как индикатор того что этот патч уже был, чтобы при перезапуске ./csb_patcher.sh проверять наличие файлов-индикаторов и при их обнаружении предупредить пользователя, чтобы он благоразумно ответил N на данный вопрос

Но тогда почему после «N» у меня появляется ошибка и в итоге «bad files – YES»

Видимо, потому что раньше вы уже отвечали Y больше одного раза на какой-то патч исходников... Короче, удаляйте это всё и попробуйте сначала, только не забудьте про подмену ссылки IASL и избегайте отвечать Y более одного раза на один и тот же патч, и у вас всё получится

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

ERRATA - это не ошибка, а новость о том что теперь нужно делать то-то и то-то для избегания ошибки. Если вы не сделаете git reset --hard от первой ERRATA, то в вашем локальном репозитории коребута не будет G505S как и других AMD'шных плат, потому что их удалили в ноябре прошлого года из coreboot'а (правда, Майк недавно нашёл способ вернуть их в свежий коребут, пусть и несколько костыльным способом, но об этом позже); а без доп.действий по второй ERRATA коребут у вас хоть и соберётся но будут проблемы с его загрузкой. Поэтому делать нужно все действия под этими двумя ERRATA'ми в дополнение к инструкции, указанной ниже

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

Успешно выполнив инструкцию с учётом моих комментариев выше, вы получите «почти свежий» коребут ревизии 5e8e911b7caee021faff96c4e82a77a42544ea62 (той самой на которую в первой ERRATA откатываются путём git reset --hard) - последней версии коребута с нашими AMD'шными платами перед их удалением в ноябре прошлого года. Когда вы разберётесь с этим, могу подсказать как добыть себе коребут ещё свежее

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

Думал как-то попробовать Qubes OS, но забыл об этой идее т.к. с моим Coreboot’ом (который привёл меня к MBR, что не любят кубы) и SeaBios (который тоже отдельно не дружит с GPT) нормально установить такую систему мне вроде как не светит

Почему это? Многие, включая меня, успешно устанавливали и использовали Qubes OS на coreboot+SeaBIOS. Скажу больше: заведётся 99.9% дистрибутивов, за исключением тех которые потеряли совместимость с BIOS-компами из-за перехода на еретический systemd-bootd - ну или просто авторы дистрибутива случайно сломали загрузку для них и не заметили т.к. и у самих и у 3.5 пользователей их дистрибутива только UEFI-компы

Может вы подскажите, как произвести этот дополнительный пердолинг для обеих прошивок, чтобы можно было спокойно запускать системы в GPT?

А смысл? Это может быть целесообразно только если у вас есть старая установка ОС в режиме GPT которую вы почему-то не хотите преобразовывать в «нормальный формат». К тому же, вы ещё с этим пердолингом не разобрались, чтобы предлагать вам новый ;-)

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

Xenius , благодарю вас за попытку помощи Tomohyeah в моё отсутствие, хотелось бы уточнить пару моментов вашего сообщения

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

Могу ошибаться, но по-моему сам coreboot никак не может блокировать запись в BIOS-чип. Запись в BIOS-чип может быть заблокирована со стороны OS, из-за чего пользователям приходится для перепрошивки грузиться с обычным ядром Linux вместо linux-hardened и использовать доп.флаг ядра iomem=relaxed который можно задать через меню GRUB

Можно попробовать Libreboot или подобную штуку. Это набор скриптов для упрощения сборки и настройки Coreboot под нужное железо. Если ванильный coreboot не получается собрать, может будет проще с ним.

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

Собрать из исходников, возможно пересадить какие-то данные из старого биоса, но не обязательно, вроде mac-адреса сетевой карты.

Спешу обрадовать ОПа, в случае с коребутным AMD не придётся ни бинарники пересаживать ни mac-адрес вбивать

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

На самом деле он довольно бодро шёл к успеху, но споткнулся на трёх вещах: сайт с IASL'ом блочит РФ из-за чего не полностью собрался тулчейн, зачем-то повторно пытался применять уже установленные патчи, и возможно не выполнил те пару команд в двух ERRATA'х. А так, он был в шаге от успеха - и если повторит всё с учётом советов которые я только что написал выше, у Tomohyeah всё должно получиться

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

Интересно, а для Т480 готовые полноценные, то есть где всё работает, как должно, сборки есть? Программатор едет, буду тыкать им Х200, но интересно и относительно Т480 узнать.

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

К сожалению судя по этой таблице (которая правда не всё показывает), максимальные Thinkpad'ы поддерживаемые коребутом это T440P/W541. Как правило, коребут на новом железе возможен по милости производителя, хотя возможны и исключения - например, компании 3mdeb удалось сделать коребут для новой десктопной платы от MSI. Если же нужен прям свежий коребутный ноут, пожалуй придётся идти к Purism

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

P.S.если бы CH341A не существовало, то вместо него подошёл бы любой другой программатор поддерживающийся опенсорсным софтом для прошивки «flashrom»

Может случится и такое что flashrom сможет прошить вообще ничего не разбирая и не покупая.
Но это как повезет.

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

в гугле много результатов по «black ch341a mod fix», например инструкции есть здесь и здесь P.S. не понимаю, зачем люди покупают чёрные CH341A и потом мучаются, есть же зелёные CH341A ! + как до китайцев до сих пор не дошло, что есть ошибка в чёрной версии программатора

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

После применения git revert'ов, которое ты уже скорее всего сделал (т.к. если до, то дальнейшие git revert'ы могут не сработать) - найди альтернативный хостинг этого архива в интернете, затем открой скрипт ./coreboot/util/crossgcc/buildgcc где указана ссылка на архив IASL'а, и подмени эту ссылку на альтернативную

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

Можете посоветовать ещё какой-нибудь программатор с зажимной панелькой для микросхем в корпусе DIP8 (в материнской плате Asus AM1I-A именно такая), желательно основанный не на CH341A, потому что я на 5 Вольт никак не хотел бы нарваться.

open-source
()
Ответ на: комментарий от open-source

Любой программатор, поддерживающийся опенсорсным софтом для прошивания flashrom. Прямо сейчас у меня нет возможности проверить, появился ли среди поддерживаемых какой-нибудь хороший аналог CH341A - но я всё же посоветовал бы вам взять CH341A с зелёной платой: у меня их несколько, купленных в разное время у разных продавцов, и ни один из них мне ничего не сломал. А жалуются люди с «чёрными» CH341A

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

Самая последняя команда make у меня в итоге выдала ошибку:

  Building ld scripts
/bin/sh: 1: python: not found
make[2]: *** [Makefile:169: out/romlayout16.lds] Error 127
make[1]: *** [Makefile:103: build] Error 2
make: *** [payloads/external/Makefile.inc:66: payloads/external/SeaBIOS/seabios/out/bios.bin.elf] Error 2 
open-source
()
Ответ на: комментарий от open-source

Вряд ли у тебя совсем нет питона - скорее всего, его исполняемые файлы в твоей OS называются python2 или python3. Попробуй сделать следующее:

sudo ln -s /usr/bin/python3 /usr/bin/python
В результате выполнения этой команды появится символьная ссылка /usr/bin/python, обращение к которой будет вызывать имеющийся у тебя /usr/bin/python3 (на всякий случай уточни где он лежит у тебя при помощи команды which python3) ===> После этого программы, пытающиеся выполнить просто python - включая скрипты этого make - будут работать! Разумеется, при условии что директория /usr/bin/ (где находится символьная ссылка) присутствует в твоей переменной окружения PATH (указанные в PATH директории последовательно просматриваются на наличие любого исполняемого файла, когда ты пытаешься запускать его без указания абсолютного/относительного пути; обычно /usr/bin/ там уже есть по умолчанию, но при необходимости она легко добавляется через export PATH=$PATH:"/usr/bin/" - если это нужно на постоянной основе, чтобы не делать в каждом новом терминале, то скопируй строчку в конец твоего ~/.bashrc)

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

С питоном разобрался, у меня действительно исполняемые файлы называются python3. Вот следующая ошибка, которая появилась:

make: pkg-config: No such file or directory
/root/coreboot/util/amdfwtool/amdfwtool.c:51:10: fatal error: openssl/sha.h: No such file or directory
   51 | #include <openssl/sha.h>
      |          ^~~~~~~~~~~~~~~
compilation terminated.
make: *** [util/amdfwtool/Makefile.inc:15: build/util/amdfwtool/amdfwtool.o] Error 1
open-source
()
Ответ на: комментарий от SakuraKun

Сначала подумал, что это у меня уже есть, так как build-essential я устанавливал. После проверки выяснилось, что ни pkg-config, ни libssl-dev сейчас нет в пакете-списке build-essential. В итоге всё прошло успешно, по крайней мере других ошибок не возникало. Последние строки вывода команды make такие:

Built asus/am1i-a (AM1I-A)
*** WARNING: The ASL code for this platform is incomplete.  Please fix it. ***
*** If _PRS is present, must have _CRS and _SRS ***
*** If _SRS is present, must have _PRS and _CRS ***
*** If _DIS is present, must have _SRS, _PRS and _CRS ***
open-source
()
Ответ на: комментарий от open-source

Built asus/am1i-a (AM1I-A)

Так ты коребут под AM1I-A собрал, а не под G505S... :P Среди трёх вопросов ./csb_patcher.sh про конфиги - G505S, A88XM-E, AM1I-A - надо было ответить Y для G505S и N для двух других плат (об этом я рассказывал раньше) . К счастью, между платами легко переключаться - для этого, находясь в директории ./coreboot/, нужно выполнить следующие команды:

make clean
make distclean
cp ./configs/config.lenovo_g505s_use_with_dgpu_patches ./.config
Затем мы запускаем make menuconfig и ничего не делая выходим оттуда с сохранением изменений конфига (чтобы он адаптировался под текущую версию coreboot) - ну и собираем через make. Остальное всё уже сделано, повторять не нужно. После завершения сборки, не забудь выполнить ./csb_patcher.sh atomflop чтобы добавить при необходимости блоб AtomBIOS для второй возможной видеокарты G505S а также дискетные OS (к сожалению MichalOS - в которой можно играть на пианино и прочие развлечения - сейчас там лежит сломанная, только если вручную скачать отсюда, собрать через make noboot и добавить получившуюся дискету к нашему образу coreflop.rom командой ./build/cbfstool ./build/coreflop.rom add -f ~/path_to/MichalOS/build/images/michalos.flp -n floppyimg/michalos.lzma -t raw -c lzma )

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

Я собираю Сoreboot как раз для платы Asus AM1I-A, поэтому я наоборот выбирал N для G505S и A88XM-E, а всё остальное Y (кроме floppies). В этом треде просто обсуждались моменты сборки Coreboot’а для AMD’шных плат, поэтому я и продолжил здесь.

open-source
()
Ответ на: комментарий от open-source

а, прошу прощения, тогда всё норм ;-) Кстати, хорошая новость - Создан скрипт restore_agesa, возвращающий в БИОС coreboot удалённые AMD-платы , благодаря которому ты при желании сможешь собрать более свежую версию коребута под свою плату

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

Отличная новость, обязательно попробую на днях собрать. Было бы ещё детальное руководство по сборке, как например это и подтверждение работоспособности на Asus AM1I-A, а не просто заявка «AM1I-A most likely boot works too but I didn’t have the time to test» от Майка Бэнона.

open-source
()
Ответ на: комментарий от open-source

Это детальное руководство для G505S справедливо и для A88XM-E / AM1I-A , там только конфиг другой выбирается - ну и прошивается без прищепки, а вытягиванием / переставлением чипа (который кстати при желании можно заменить и на SPI Flash чип бОльшего объёма, но тогда придётся внести пару изменений в коребутовский конфиг чтобы его образ собирался под 16MB / 32MB размер; это может быть интересно при экспериментах со встраиванием минималистичного образа Linux в БИОС)

подтверждение работоспособности на Asus AM1I-A

у меня тоже AM1I-A есть, только не со мною сейчас; при возможности проверю для тебя... А так - по прошлому опыту, припоминаю лишь один случай как какая-то одна плата среди этого AMD ломалась а остальные работали: в большинстве случаев, если уж ломались то сразу все. + К счастью, времени на «раскирпичивание» тратится совсем немного, особенно в случае десктопов

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

Провёл проверку синего программатора: даёт устойчивые 3,3 вольта на всех нужных ногах, пяти вольт на выходе нет нигде.

Вопрос: какая из шестнадцатиногих прищепок по ссылке лучше всего подходит для работы — третья (шестнадцать контактов для чипа, восемь проводов к разъёму), четвёртая (шестнадцать проводов к шестнадцатиногому переходнику) или пятая (шестнадцать проводов «россыпью» к переходнику на шестнадцать ног)?

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

Провёл проверку синего программатора: даёт устойчивые 3,3 вольта на всех нужных ногах, пяти вольт на выходе нет нигде.

Это радует) Т.е. он действительно как зелёный, просто штырьков поменьше

какая из шестнадцатиногих прищепок по ссылке лучше всего подходит для работы

5-ая с «изогнутыми ногами» лучше всего, потому что туда ты можешь удобно присоединять проводки любого качества и любой длины (в отличие от прищепок 1-3) - а не полагаться на уже припаянные. а 4-ая без «гнутых ног» не подходит - из-за того, что штырьки слишком близко, стандартные проводки с 2.54mm-разъёмами не смогут залезть

SakuraKun ★★★★★
()
5 июня 2024 г.