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

Using Kolibri in embedded systems
  • Возьми WinImg и сотри всякий мусор с kolibri.img.
    по хорошему, для загрузки требуется только kernel.mnt , шрифты и пара десятков крошечных программ.
    всё должно отлично сжаться хотя бы до 200кбайт
    всяких монстров вроде драйвера ati можно подгрузить с диска и потом

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

    Code: Select all

    ; В начале было Слово:
    B32:        mov     ax, os_stack       ; Selector for os
    [/size]
  • art_zh wrote:PS. я уже не помню когда с 4мб SPI ROM чипами работал.
    сейчас дешевле впаять 64мб чип в том же корпусе, чем найти такой раритет
    SOIC-8 максимум 16МБ (128 МБит) в природе видел.
  • koteg94 wrote:Есть ли какой-то способ решить проблему?
    На AMD-шном Lenovo G505S ( viewtopic.php?f=25&t=3446 ) сам coreboot весит меньше мегабайта, и Kolibri прекрасно влезает.
    Почему твой коребут оказался таким жирным? - скорее всего из-за интеловских блобов в составе коребута.
    Попробуй порезать их по максимуму, например ME при помощи me_cleaner - https://github.com/corna/me_cleaner
  • 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 добавить именно во второй чип?
  • 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
  • В конфиге у меня выбрано 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
    
  • Колибри добавил, старт выдает ошибку

    Code: Select all

    K: HPET caps 8086A701 K: using mwait for idle loop
    Перепробовал все варианты VGA и ни один не помог.
  • 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
  • koteg94 wrote:Колибри добавил, старт выдает ошибку

    Code: Select all

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

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

    Это поможет понять - проблема в самом коребуте, или плохой поддержке в КолибриОС твоей встроенной видеокарты
  • floppy121 wrote:
    koteg94 wrote:Собирается с 0x700000 без ошибок. В других ОС графика работает, проверил убунту, виндовс, дебиан.
    Пожалуйста, попробуй ещё две вещи:

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

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

    Users browsing this forum: No registered users and 5 guests