Page 1 of 1

KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Tue Aug 20, 2019 6:02 pm
by koteg94
На Thinkpad x230 по этой статье прошил свежий Coreboot с SeaBIOS в качестве Payload.

Попытался добавить KolibriOS и наткнулся на нехватку места:

Code: Select all

$ ./build/cbfstool build/coreboot.rom add -f ./build/kolibri.img -n floppyimg/kolibri.lzma -t raw -c lzma
E: Could not add [./build/kolibri.img, 1293553 bytes (1263 KB)@0x0]; too big?
E: Failed to add './build/kolibri.img' into ROM image.
E: Failed while operating on 'COREBOOT' region!
E: The image will be left unmodified.
Протестировал добавление похожих микро ОС (MichalOS и Snowdrop), они добавились успешно. Они сжимаются до нескольких сотен килобайт.
Есть ли какой-то способ решить проблему?

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Thu Aug 22, 2019 9:45 pm
by art_zh
Возьми WinImg и сотри всякий мусор с kolibri.img.
по хорошему, для загрузки требуется только kernel.mnt , шрифты и пара десятков крошечных программ.
всё должно отлично сжаться хотя бы до 200кбайт
всяких монстров вроде драйвера ati можно подгрузить с диска и потом

PS. я уже не помню когда с 4мб SPI ROM чипами работал.
сейчас дешевле впаять 64мб чип в том же корпусе, чем найти такой раритет

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Fri Oct 25, 2019 5:49 pm
by floppy121
art_zh wrote:PS. я уже не помню когда с 4мб SPI ROM чипами работал.
сейчас дешевле впаять 64мб чип в том же корпусе, чем найти такой раритет
SOIC-8 максимум 16МБ (128 МБит) в природе видел.

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Fri Oct 25, 2019 5:53 pm
by floppy121
koteg94 wrote:Есть ли какой-то способ решить проблему?
На AMD-шном Lenovo G505S ( viewtopic.php?f=25&t=3446 ) сам coreboot весит меньше мегабайта, и Kolibri прекрасно влезает.
Почему твой коребут оказался таким жирным? - скорее всего из-за интеловских блобов в составе коребута.
Попробуй порезать их по максимуму, например ME при помощи me_cleaner - https://github.com/corna/me_cleaner

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Thu Jun 04, 2020 12:28 pm
by koteg94
floppy121 wrote:
koteg94 wrote:Есть ли какой-то способ решить проблему?
На AMD-шном Lenovo G505S ( viewtopic.php?f=25&t=3446 ) сам coreboot весит меньше мегабайта, и Kolibri прекрасно влезает.
Почему твой коребут оказался таким жирным? - скорее всего из-за интеловских блобов в составе коребута.
Попробуй порезать их по максимуму, например ME при помощи me_cleaner - https://github.com/corna/me_cleaner
При сборке coreboot в make nconfig помечен ME для резки.

Code: Select all

FMAP REGION: COREBOOT
Name                           Offset     Type           Size   Comp
cbfs master header             0x0        cbfs header        32 none
fallback/romstage              0x80       stage           80588 none
cpu_microcode_blob.bin         0x13bc0    microcode       26624 none
fallback/ramstage              0x1a440    stage          115629 none
config                         0x36840    raw               735 none
revision                       0x36b80    raw               674 none
fallback/dsdt.aml              0x36e80    raw             14521 none
cmos.default                   0x3a7c0    cmos_default      256 none
vbt.bin                        0x3a900    raw              1433 LZMA (4281 decompressed)
cmos_layout.bin                0x3af00    cmos_layout      1884 none
pci8086,0166.rom               0x3b6c0    optionrom       65536 none
fallback/postcar               0x4b740    stage           19060 none
img/nvramcui                   0x50200    simple elf      68721 none
fallback/payload               0x60ec0    simple elf      68602 none
payload_config                 0x71b00    raw              1639 none
payload_revision               0x721c0    raw               237 none
bootorder                      0x72300    raw               294 none
etc/ps2-keyboard-spinup        0x72480    raw                 8 none
etc/threads                    0x724c0    raw                 8 none
(empty)                        0x72500    null           448664 none
bootblock                      0xdfdc0    bootblock       65536 none
Если не пометить для резки получается почти такой же размер.

Code: Select all

FMAP REGION: COREBOOT
Name                           Offset     Type           Size   Comp
cbfs master header             0x0        cbfs header        32 none
fallback/romstage              0x80       stage           80588 none
cpu_microcode_blob.bin         0x13bc0    microcode       26624 none
fallback/ramstage              0x1a440    stage          115629 none
config                         0x36840    raw               693 none
revision                       0x36b40    raw               674 none
fallback/dsdt.aml              0x36e40    raw             14521 none
cmos.default                   0x3a780    cmos_default      256 none
vbt.bin                        0x3a8c0    raw              1433 LZMA (4281 decompressed)
cmos_layout.bin                0x3aec0    cmos_layout      1884 none
pci8086,0166.rom               0x3b680    optionrom       65536 none
fallback/postcar               0x4b700    stage           19060 none
img/nvramcui                   0x501c0    simple elf      68721 none
fallback/payload               0x60e80    simple elf      68602 none
payload_config                 0x71ac0    raw              1639 none
payload_revision               0x72180    raw               237 none
bootorder                      0x722c0    raw               294 none
etc/ps2-keyboard-spinup        0x72440    raw                 8 none
etc/threads                    0x72480    raw                 8 none
(empty)                        0x724c0    null           448728 none
bootblock                      0xdfdc0    bootblock       65536 none
Может быть причина в том что на X230 два чипа 4mb+8mb и ME во втором чипе где места больше. Как kolibri добавить именно во второй чип?

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Thu Jun 04, 2020 1:00 pm
by floppy121
koteg94 wrote:

Code: Select all

...
bootblock                      0xdfdc0    bootblock       65536 none
Может быть причина в том что на X230 два чипа 4mb+8mb и ME во втором чипе где места больше. Как kolibri добавить именно во второй чип?
я не эксперт по интеловским блобам и нескольким чипам, но судя по распечатке cbfstool выше - у тебя размер чипа выбран 8 Мегабит = 1 МегаБайт! Судя по тому, что последний элемент - bootblock - у тебя начинается по адресу 0xdfdc0 (ближе к 0x100000) , а у меня по 0x3f7dc0 (ближе к 0x400000) для 4 МегаБайт чипа. Проверь, что в твоём коребутовском конфиге размер БИОС-чипа выставлен правильно, и размер файловой системы CBFS выбран равным размеру БИОС-чипа а не его части (если только оставшееся "неразмеченное" место не нужно для интеловских блобов)

Если дело было именно в этом, то после того как пересоберёшь coreboot - у тебя и KolibriOS влезет, и может быть другие дискеты. Посмотри скрипт ./csb_patcher.sh, который помогает выкачать и добавить интересные дискеты, а также - помимо других патчей - предлагает патч SeaBIOS для поддержки нескольких дискет: http://dangerousprototypes.com/docs/Len ... cking#NEWS

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Thu Jun 04, 2020 1:46 pm
by koteg94
В конфиге у меня выбрано 12 мб
Spoiler:

Code: Select all

Mainboard vendor (Lenovo)  --->      
Mainboard model (ThinkPad X230)  --->
(LENOVO) Mainboard vendor name       
ROM chip size (12288 KB (12 MB))  --->       
System Power State after Failure (S5 Soft Off)  ---> 
()  fmap description file in fmd format      
(0x100000) Size of CBFS filesystem in ROM
Если выбрать 8 собирается так же, а выбрав 4 получается ошибка:
Spoiler:

Code: Select all

IFDTOOL    me.bin -> coreboot.pre
File build/coreboot.pre is 4194304 bytes
File 3rdparty/blobs/mainboard/lenovo/x230/me.bin is 5230592 bytes
Output file is too small. (4194304 < 5242880)
make: *** [src/southbridge/intel/common/firmware/Makefile.inc:34: add_intel_firmware] Error 1
Какой тогда правильный адрес нужно указать в Size of CBFS? В документации ничего не нашел https://doc.coreboot.org/mainboard/leno ... eries.html

Указал 0x400000 получилось почти 4 мб свободного места. Есть ли правильный размер или найти его только методом проб и ошибок?
Spoiler:

Code: Select all

FMAP REGION: COREBOOT
Name                           Offset     Type           Size   Comp
cbfs master header             0x0        cbfs header        32 none
fallback/romstage              0x80       stage           80588 none
cpu_microcode_blob.bin         0x13bc0    microcode       26624 none
fallback/ramstage              0x1a440    stage          115629 none
config                         0x36840    raw               761 none
revision                       0x36b80    raw               674 none
fallback/dsdt.aml              0x36e80    raw             14521 none
cmos.default                   0x3a7c0    cmos_default      256 none
vbt.bin                        0x3a900    raw              1433 LZMA (4281 decompressed)
cmos_layout.bin                0x3af00    cmos_layout      1884 none
pci8086,0166.rom               0x3b6c0    optionrom       65536 none
fallback/postcar               0x4b740    stage           19060 none
img/nvramcui                   0x50200    simple elf      68721 none
fallback/payload               0x60ec0    simple elf      68602 none
payload_config                 0x71b00    raw              1639 none
payload_revision               0x721c0    raw               237 none
bootorder                      0x72300    raw               294 none
etc/ps2-keyboard-spinup        0x72480    raw                 8 none
etc/threads                    0x724c0    raw                 8 none
(empty)                        0x72500    null          3594392 none
bootblock                      0x3dfdc0   bootblock       65536 none

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Thu Jun 04, 2020 9:28 pm
by koteg94
Колибри добавил, старт выдает ошибку

Code: Select all

K: HPET caps 8086A701 K: using mwait for idle loop
Перепробовал все варианты VGA и ни один не помог.

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Mon Jun 15, 2020 11:46 am
by floppy121
koteg94 wrote:В конфиге у меня выбрано 12 мб
Тут нужно быть внимательным, и следить чтобы Size of CBFS filesystem in ROM хоть как-то соответствовал ROM chip size (у меня они равны, но может в твоём случае с интеловскими блобами он должен быть например 8 МБ - то есть 0x800000) Дело в том, что когда ты меняешь ROM chip size туда-сюда, Size of CBFS filesystem in ROM с ним не синхронизируется! Поэтому, если возникают сомнения, удали свой ./coreboot/.config и начни конфигурить заново, с чистого листа - возможно, используя чью-то проверенную конфигурацию из board-status https://coreboot.org/status/board-status.html

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Mon Jun 15, 2020 11:48 am
by floppy121
koteg94 wrote:Колибри добавил, старт выдает ошибку

Code: Select all

K: HPET caps 8086A701 K: using mwait for idle loop
Перепробовал все варианты VGA и ни один не помог.
В других ОС у тебя графика работает? И, думаю, нужно будет затестить Колибри заново после пересборки коребута с правильными размерами (см. сообщение выше) - может быть, это отчасти влияет на возникновение проблемы

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Tue Jun 16, 2020 9:08 pm
by koteg94
Собирается с 0x700000 без ошибок. В других ОС графика работает, проверил убунту, виндовс, дебиан.

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Wed Jun 17, 2020 4:36 pm
by floppy121
koteg94 wrote:Собирается с 0x700000 без ошибок. В других ОС графика работает, проверил убунту, виндовс, дебиан.
Пожалуйста, попробуй ещё две вещи:

1) Подготовь загрузочную флешку с Колибри ( используя например Rufus - https://rufus.ie/ ) и попытайся загрузиться оттуда
2) Если и там не загрузится - когда будет возможность, откатись временно на проприетарный UEFI и попробуй ещё раз загрузиться с флешки

Это поможет понять - проблема в самом коребуте, или плохой поддержке в КолибриОС твоей встроенной видеокарты

Re: KolibriOS в coreboot+SeaBIOS на x230 - не влезает

Posted: Wed Jun 17, 2020 5:01 pm
by koteg94
floppy121 wrote:
koteg94 wrote:Собирается с 0x700000 без ошибок. В других ОС графика работает, проверил убунту, виндовс, дебиан.
Пожалуйста, попробуй ещё две вещи:

1) Подготовь загрузочную флешку с Колибри ( используя например Rufus - https://rufus.ie/ ) и попытайся загрузиться оттуда
2) Если и там не загрузится - когда будет возможность, откатись временно на проприетарный UEFI и попробуй ещё раз загрузиться с флешки

Это поможет понять - проблема в самом коребуте, или плохой поддержке в КолибриОС твоей встроенной видеокарты
1) не работает. 2) работает.