KolibriOS в BIOS ( coreboot / SeaBIOS ) на G505S - успех!

Using Kolibri in embedded systems
  • Погонял в играх, и да, действительно. По ядрам максимум была нагрузка 60% (на каждое ядро, а не ЦП в целом), что уже говорит о том, что ЦП хватает! А вот графический процессор(ы) всегда на 100%. И как вообще будет выводится изображение, интересно, если подключить сюда внешнюю видеокарту? Через монитор, который к самой видюхе подключается, или все же на экран ноутбука можно запихнуть?
  • olodar wrote:Погонял в играх, и да, действительно. По ядрам максимум была нагрузка 60% (на каждое ядро, а не ЦП в целом), что уже говорит о том, что ЦП хватает! А вот графический процессор(ы) всегда на 100%. И как вообще будет выводится изображение, интересно, если подключить сюда внешнюю видеокарту? Через монитор, который к самой видюхе подключается, или все же на экран ноутбука можно запихнуть?
    https://www.youtube.com/watch?v=iXcKZdB95eM <--- на экран ноутбука выводится :)
  • У тебя при сборке много куча непонятных вещей сделано, поэтому:
    1) git clone https://review.coreboot.org/coreboot.git
    2) make crossgcc-i386
    3) в coreboot/src/device/Kconfig

    Code: Select all

    config MULTIPLE_VGA_ADAPTERS
       bool
       default n
    
    4) с VGA все понятно.
    5) make menuconfig - заходим и выбираем производителя и модель. сохраняем конфиг и
    6) make
    Правильно? После загрузки сможет ли грузится ОС по сети, с диска (AHCI)? Или для этого еще нужно установить SeaBIOS обязательно? И как биосу "сказать", с какого именно диска (ус-ва) грузиться, если у него нет конфига?
    И см. скрин: это, я так понимаю, чтобы биос смог загрузится с USB-дисков? (usb 3.0).
    И как задать режим работы дискового контроллера? IDE/AHCI?
    ПЫ СЫ: через недельку появятся средства, и закажу все ингредиенты :D :D :D
    ПЫ СЫ2: а как с корбутом ноут ведет себя при перегреве? есть ли троттлинг? или он даже при сверхнагреве не отрубит ноут? очень интересно! и как будет себя вести при 90 градусах... потому что на стоке чуть что, сразу троттлинг :(
    Attachments
    Capture.PNG
    Capture.PNG (22.56 KiB)
    Viewed 10606 times
  • ПЫ СЫ3: в конфиге есть что-то вроде SATA MODE, но там нифига не понятно, потому что есть только численный параметр (0 по дефолту)
  • Попробовал собрать с этим xhci. это ошибка, или что? :lol:
    Attachments
    Capture.PNG
    Capture.PNG (33.39 KiB)
    Viewed 10606 times
  • Там бинарник xhci фирмвари надо предоставить для включения в образ
  • А как быть все же с двумя видеокартами? lspci говорит следующее:

    Code: Select all

               +-01.0  Advanced Micro Devices, Inc. [AMD/ATI] Richland [Radeon HD 8650G]
               +-01.1  Advanced Micro Devices, Inc. [AMD/ATI] Trinity HDMI Audio Controller
               +-02.0-[01]----00.0  Advanced Micro Devices, Inc. [AMD/ATI] Sun PRO [Radeon HD 8570A/8570M]
    
    То есть, видит обе карточки. Но нужно ли их обе запихнуть в корбут? Или потом система сама все подловит? Или у этой дискретной карты есть свой биос, и включать его в биос системы не надо?
  • ROM Chip Size - что тут указывать? По дефолту стоит 4 мб, но у нас же размер чипа 8 мб?
    PS. Как раз на этапе сборке и возникает куча вопросов :)
    Add a bootsplash image - а какое нужно разрешение и параметры изображения? Или пойдет любое? :)
    PS/2 keyboard init - означает, что будет ли иннициализирована встроенная клава? нужно ли это? :)
    Как себя ведет вентилятор? На линуксе температура если 40 по Цельсию в простое, то вентилятор никак не хочет отключаться. А вот даже при перегреве не разгоняется выше ~30%, когда через Power Manager (lenovo) можно включить "продув" и охлад будет работать на 100%.
    Думаю взять этот и этот, судя по отзывам, ошибок при работе нет. На 500 руб., собака :)
    Ну вот, собрал первый тестовый образ. Включил картинку и vgabios.
    sha512:a5ed622d2f11a6ee6305137b28bc8927481aba76337125a593e63a129c098328c6393fd08442e57cda5cf044c2fdc568417962c278b36fc4e42d837bd05965f2
  • art_zh wrote:на АМД системную частоту при перегреве скидывает специальный встроенный микроконтроллер.
    который программируется по дефолту в отдельном модуле BIOS (и в coreboot тоже - AMD давно слила туда свой микрокод).

    ну и да, интел (увы) всегда впереди. Потому что против их холодных нанометров никто (просто термодинамически) устоять не сможет.
    Раз он есть в корбуте, значит, можно просто как-то выпилить?
  • olodar
    ну наверное в принципе можно, но вот насчет "просто" я бы не зарекался.
    Евангелие от Иоанна: стих 1

    Code: Select all

    ; В начале было Слово:
    B32:        mov     ax, os_stack       ; Selector for os
    [/size]
  • olodar wrote:У тебя при сборке много куча непонятных вещей сделано, поэтому:
    1) git clone https://review.coreboot.org/coreboot.git
    2) make crossgcc-i386
    3) в coreboot/src/device/Kconfig изменить config MULTIPLE_VGA_ADAPTERS
    4) с VGA все понятно.
    5) make menuconfig - заходим и выбираем производителя и модель. сохраняем конфиг и
    6) make
    Правильно?
    Да, можно так сделать, это "минимальный рабочий конфиг" - минимум настроек чтобы получить рабочий биос. Моя версия настроек занимает на 10 минут больше времени если без "аддона" filo; или на час больше если собирать filo (из-за того что придётся делать загрузочный диск/флешку с 32-битной убунтой, потому что на 64-битном линуксе filo не собирается) . Зато полученная на выходе сборка биоса будет отличаться в лучшую сторону; вот список отличий:
    1) выбрана последняя версия SeaBIOS (новее чем "стабильная", но тоже исправно работает)
    2) добавлены "payload-аддоны" memtest, nvramcui, coreinfo и tint (причём исходники тетриса tint пропатчены до новой версии, а в исходники nvramcui вручную добавлены три строчки для поддержки USB-клавиатуры)
    3) включены дополнительные опции чтобы работал nvramcui и в coreinfo можно было смотреть сколько времени грузился биос
    4) отдельно собран и добавлен загрузчик линуксовых ядер filo (минималистичная альтернатива GRUB-у), причем в исходниках libpayload разрешено использование "непротестированных" SATA-контроллеров чтобы запустить AMD-шный
    5) включен YABEL для дополнительной безопасности (чтобы "огородить" закрытый VGABIOS)
    6) выключена поддержка интеловских PCI-e карт (потому что они редко встречаются, да и не люблю интел)
    7) пожалуй, самое главное - добавлен дискетный образ с KolibriOS

    Начиная со спойлера "6)" в моем первом сообщении этой темы - подробно рассказано как выполнить все эти изменения и какие конкретные опции нужно дополнительно включить. + В конец первого сообщения в этой теме добавил краткую инструкцию как пользоваться меню menuconfig; например: кнопка ? - узнать больше о подсвеченной опции, а правый слэш / - поиск по опциям.

    Можно конечно воспользоваться моими собранными образами коребута, приложенными к первому сообщению, но они были собраны месяца 3 назад и немного устарели... В любом случае неплохо бы всем пользователям coreboot научиться самостоятельно собирать биос, чтобы оперативно обновляться и ни от кого не зависеть, это похвально! :wink:
    olodar wrote:После загрузки сможет ли грузится ОС с диска (AHCI),
    Разумеется сможет
    olodar wrote:по сети?
    по сети сможет если дополнительно собрать образ IPXE и добавить этот образ к образу coreboot. Инструкция - https://www.coreboot.org/IPXE . Загрузка по сети - это дополнительный риск безопасности, поэтому она меня не интересует...
    olodar wrote:Как биосу "сказать", с какого именно диска (ус-ва) грузиться,
    Про это уже было написано в первом сообщении... После нажатия кнопки включения ноутбука понажимать Escape и дальше начать кнопку 1-9 на клавиатуре, которая соответствует диску, устройству, RamDisk-у или payload-у ("аддону") с которого ты хочешь загрузиться
    olodar wrote:если у него нет конфига?
    Статичный конфиг (меняется только с перепрошивкой) у него разумеется есть, например https://www.seabios.org/Runtime_config# ... boot_order - можно добавить к образу coreboot текстовый файл чтобы изменить порядок загрузки по умолчанию. Динамический конфиг (можно менять после прошивки) есть в "аддоне" nvramcui - там есть опция boot_devices, но скорее всего она используется только загрузчиком filo, и вообще по ней нет толковой документации - остаётся или гуглить сообщения или исходники читать...

    Конфиг не нужен, ведь после нажатия кнопки включения нажимать ещё ровно две кнопки (Escape и номер девайса в списке) - это несложно! :)
    olodar wrote:Или для этого еще нужно установить SeaBIOS обязательно?
    Хоть и удобно называть весь BIOS одним словом "коребут", на самом деле coreboot производит лишь начальную низкоуровневую инициализацию железа компа и передает управление аддону payload-у ("полезной нагрузке), которым обычно является SeaBIOS (в конфиге по умолчанию уже выбрана опция CONFIG_SEABIOS_STABLE - собрать coreboot вместе со стабильным SeaBIOS, но я меняю её на CONFIG_SEABIOS_MASTER чтобы получить SeaBIOS посвежее), причём через SeaBIOS можно грузить вторичные payload-ы: мемтест, тетрис, загрузчик FILO и т.д. Но при желании можно заменить SeaBIOS другим payload-ом: загрузчиком GRUB или FILO, или вообще линуксовым ядром (которое придётся собирать с небольшим набором опций, иначе всё вместе не влезет в 4 МБ биос чип) , или ещё чем-то другим... Вот полный список - https://www.coreboot.org/Payloads
    olodar wrote:И см. скрин: это, я так понимаю, чтобы биос смог загрузится с USB-дисков? (usb 3.0)
    Нет. Это возможность добавить в образ коребута XHCI "прошивку"-блоб с закрытым исходным кодом, для того чтобы синие порты USB 3.0 (у G505S таких порта два) работали как USB 3.0 . Проблема в том, что большинство "USB 3.0" устройств по своей скорости работы - "фейковый USB 3.0" : или та же скорость что и USB 2.0, или как в случае с моим переносным жёстким диском "USB 3.0", скорость файловых операций через USB 3.0 максимум на 10 процентов быстрее чем если на том же компе переключить в порт USB 2.0 . К тому же некоторые программы, например VirtualBox, глючат с USB 3.0 портами. Короче, я не увидел смысла в USB 3.0 и не стал добавлять этот блоб (который к тому же создаёт дополнительный риск безопасности т.к. его исходники закрыты), поэтому в моих прошивках все порты работают как USB 2.0 . Если ты считаешь что USB 3.0 нужен, можешь добавить этот блоб самостоятельно, это или ./coreboot/3rdparty/blobs/southbridge/amd/bolton/xhci.bin или ./coreboot/3rdparty/blobs/southbridge/amd/hudson/xhci.bin . Не уверен на 100% какой из них, потому что Southbridge у этого ноута стоит A76M Fusion (Bolton-M3, 218-0844012), но при автоматической сборке хочет взять от Hudson у которого по идее меньше функций... Можешь попробовать и тот и другой
    olodar wrote:И как задать режим работы дискового контроллера? IDE/AHCI?
    Режим работы дискового контроллера скорее всего выбирается payload-ом. SeaBIOS инициализирует как AHCI, но если вдруг дисковый контроллер древний и AHCI не поддерживает, то наверное будет инициализировать как IDE. Если ставить GRUB вместо SeaBIOS - начиная с какой-то версии он тоже научился в AHCI инициализировать. Кстати, KolibriOS показала мою SATA как AHCI 1.0 , но не знаю правильно ли она определила версию, потому что SATA в KolibriOS на этом ноуте почему-то не работает...
    olodar wrote:ПЫ СЫ: через недельку появятся средства, и закажу все ингредиенты :D :D :D
    я думал что ты уже давно заказал :D чем раньше тем лучше, ведь ещё из Китая месяц ждать
    olodar wrote:как с корбутом ноут ведет себя при перегреве? есть ли троттлинг? или он даже при сверхнагреве не отрубит ноут? и как будет себя вести при 90 градусах... потому что на стоке чуть что, сразу троттлинг :(
    Троттлинг ведь определяется процессором а не биосом. Разумеется при сверхнагреве процессор мгновенно вырубит компьютер, чтобы самому не сломаться. Чтобы избежать троттлинга, нужно как-то понизить температуру процессора
    floppy121 wrote:Довольно давно поменял термопасту на Gelid GC-Extreme, одна из лучших термопаст согласно куче таблиц тестов которые я посмотрел, и до сих пор даже при загрузке ЦП почти 100% температура не поднимается выше 70 градусов. Раньше (на старой "зубной" пасте которая была намазана производителем) при таких нагрузках он быстро перегревался и выключался
    Если будут лишние деньги купи вот эту вот баночку 10 грамм GC-Extreme с лопаткой в комплекте, выгоднее чем шприцы и надолго хватит , http://www.xcom-shop.ru/gelid_gc-extreme_426960.html . Не пожалеешь! Самая хорошая термопаста, лучше только "жидкий металл" (который проводит электричество и поэтому лучше избегать) . Ещё как вариант можно купить специальный внешний вентилятор, который прикладывается к вентиляционным отверстиям ноутбука и помогает внутреннему вентилятору высасывать горячий воздух. Например вот эта модель очень хорошая, до 4500 оборотов в минуту, понижает температуру ноута где-то на 10 градусов. http://aliexpress.com/item/Protable-Min ... 37989.html . Такой вентилятор намного луше чем охлаждающая подставка, потому что вентиляторы охлаждающей подставки параллельны материнской плате и располагаются сразу под ней - электромагнитные импульсы этих вентиляторов негативно влияют на материнскую плату и она может сломаться раньше времени. А боковой вентилятор расположен сбоку, не параллельно и на значительном удалении от платы, поэтому он безопасен
  • olodar wrote:в конфиге есть что-то вроде SATA MODE, но там нифига не понятно, потому что есть только численный параметр (0 по дефолту)
    Если нажать кнопку ? на этой опции, то всё станет понятно :D
    Spoiler:
    CONFIG_HUDSON_SATA_MODE.png
    CONFIG_HUDSON_SATA_MODE.png (62.92 KiB)
    Viewed 10445 times
    Сообщением выше я думал что режим SATA задается payload-ом (SeaBIOS или GRUB например), но возможно я был неправ, по крайней мере по отношению к Hudson... Вообще в G505S Bolton стоит, а у Hudson фич меньше, но по какой-то причине (может быть для объединения кода) эти разработчики coreboot записали его в Hudson
    olodar wrote:Попробовал собрать с этим xhci. это ошибка, или что? :lol:
    По какой-то причине оно не нашло блоба по этому адресу, и решило не включать в сборку. Почему у тебя меню menuconfig криво рисуется, и вообще всё странно выглядит? В какой операционной системе ты пытаешься собирать, неужели в винде?
  • olodar wrote:А как быть все же с двумя видеокартами? lspci говорит следующее:

    Code: Select all

               +-01.0  Advanced Micro Devices, Inc. [AMD/ATI] Richland [Radeon HD 8650G]
               +-01.1  Advanced Micro Devices, Inc. [AMD/ATI] Trinity HDMI Audio Controller
               +-02.0-[01]----00.0  Advanced Micro Devices, Inc. [AMD/ATI] Sun PRO [Radeon HD 8570A/8570M]
    
    То есть, видит обе карточки. Но нужно ли их обе запихнуть в корбут? Или потом система сама все подловит? Или у этой дискретной карты есть свой биос, и включать его в биос системы не надо?
    У дискретной карты есть свой VGABIOS который операционная система по идее должна считать в процессе включения, чтобы например иметь возможность переключать разрешение экрана для изображения идущего через эту видеокарту. Но недавно я обнаружил одну интересную вещь: оказывается, в большинстве дистрибутивов линукса отказались от проприетарных AMD драйверов с закрытыми исходниками в пользу опенсорсных, а опенсорсные AMD-шные драйвера для этого семейства дискретных видеокарт пока ещё не подоспели... Вернее, они доступны в ядре Linux 4.10, но только в экспериментальном режиме, и можно включить только пересборкой линуксового ядра с этим включённым конфигом т.к. по умолчанию у всех выключено! Или подождать пока выйдет ядро Linux 4.11 (через полтора-два месяца приблизительно) и или собрать ядро из исходников чтобы притащить его на убунту, или выбрать линуксовый дистрибутив вроде Antergos (Arch линукс с человеческим лицом, по удобству почти как убунта) - в котором постоянно идут обновления на самый свежие версии пакетов как только они выходят, чтобы линуксовое ядро автоматически обновилось до самого нового без ручной пересборки
  • olodar wrote:ROM Chip Size - что тут указывать? По дефолту стоит 4 мб, но у нас же размер чипа 8 мб?
    Вообще-то у всех Lenovo G505S стоит биос чип 4 МБ одной из нескольких моделей, например cFeon EN25QH32-104HIP. Теоретически можно отпаять этот биос чип и припаять другой биос чип таких же линейных размеров, почти такой же модели (чтобы увеличить шансы на совместимость), но 8 МБ. Например, EN25QH64-104HIP (в маркировке этого производителя 32 или 64 в этом месте - количество мегабит; 64 мегабита - максимально, к сожалению не бывает EN25QH128 модели чипа с такими же физическими размерами SOIC-8) . Но я не изучал насчёт адресных линий биос чипа на этой плате, может ли получиться так что припаяли 8 МБ чип а процессору всё равно доступно только "нижних" 4 МБ ?

    Пока что биос умещается в 4 МБ, но если захочешь например грузить линуксовое ядро прям из биос чипа то 8 МБ были бы кстати. Проблема ещё в том что EN25QH64-104HIP стали редкими, например на алиэкспрессе только один продавец остался - https://www.aliexpress.com/item/EN25QH6 ... 48556.html , и на eBay тоже только один - http://www.ebay.com/itm/1x-OH64-104HIP- ... 1676542140 . Хорошо что я в своё время купил такой чип, хоть и не протестировал его до сих пор... Можешь купить себе хотя бы один такой на будущее, а лучше два чтобы был запасной... 60 рублей всего стоит
    olodar wrote:Add a bootsplash image - а какое нужно разрешение и параметры изображения? Или пойдет любое? :)
    https://www.coreboot.org/SeaBIOS#Adding ... h.22_image
    Подойдёт BMP или JPG (жаль что PNG не поддерживает), разрешение картинки должно быть в списке поддерживаемых экраном, иначе картинку не покажет. Вообще я без картинки собирал всегда, не знаю как будет выглядеть её отображение
    olodar wrote:PS/2 keyboard init - означает, что будет ли иннициализирована встроенная клава? нужно ли это? :)
    Зависит от того, собираешься ли ты пользоваться клавиатурой ноутбука :lol: Если серьёзно, нажми кнопку ? на этой опции и ты увидишь что некоторым payload-ам вроде filo, которые не инициализируют PS/2 сами, нужно чтобы coreboot до них проинициализировал, а некоторые - например SeaBIOS - инициализируют сами и помощь коребута им не нужна. Кстати, у меня в конфиге коребута (во вложениях из первого письма в этой теме) опция CONFIG_DRIVERS_PS2_KEYBOARD, но при этом и в SeaBIOS клавиатура работает, и даже в filo работает - потому что SeaBIOS уже проинициализировал эту клавиатуру до filo, который у меня в качестве "вторичного" payload-а и может быть загружен только из меню загрузки SeaBIOS-а
  • Who is online

    Users browsing this forum: No registered users and 1 guest