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

Using Kolibri in embedded systems
  • olodar wrote: Хм, сейчас проверил - танки потребляют около 480 мб (что минималки, что ультра), а видеопамяти - 512 мб.
    Первое это что? ОЗУ?
    olodar wrote:Судя по всему - да, так и получается. А подкачки нет, т.к. рамы 16 гб.
    И это мало ОЗУ? Сейчас вроде больше особо и не надо (если конечно кучи виртуалок не держать). Да и вообще эти танки странная вещь, а может и не они а АМД. Работало себе спокойно на RX480 на максимуме качества, и тут бац, где-то что-то поменялось, и все три кулера СО видеокарты начали работать на все 100%. Правда давно уже не запускал, может что и исправилось.
    to infinity and beyond
  • punk_joker wrote:
    olodar wrote: Хм, сейчас проверил - танки потребляют около 480 мб (что минималки, что ультра), а видеопамяти - 512 мб.
    Первое это что? ОЗУ?
    Видео ОЗУ (столько выделил coreboot).
    punk_joker wrote: и тут бац, где-то что-то поменялось
    Что где поменялось? Ты о чем?
  • olodar wrote: Что где поменялось? Ты о чем?
    Это так, отход от темы. Я имел ввиду, что играл себе спокойно в танки, видеокарта вела себя умеренно. А потом, после обновления игры. или возможно я драйвера при этом еще обновил, при тех же настройках, кулеры на видеокарте стали крутиться если не по максимуму, то близко к нему. Но это просто вспомнилось, когда прочитал про танки и RX470, и не имеет никакого отношения к теме разговора
    to infinity and beyond
  • нашел в src/mainboard/amd/dinar/Kconfig следующие параметры:
    1)
    config HW_MEM_HOLE_SIZEK
    hex
    default 0x200000

    что-то связанное с памятью, но если перевести его из 16-ой СС в десятичную, то получаем число 2097152, что далеко не соответствует 512 МБ.
    2)
    config HW_MEM_HOLE_SIZE_AUTO_INC
    bool
    default n
    Тоже что-то похожее
  • punk_joker
    Включи вертикальную синхронизацию в настройках игры или драйвера.
  • Вобщем, погонял танки. Твоя теория не канает, игра действительно потребляет около 480 мегабайт видео ОЗУ (минимальные настройки графики), 60 FPS, постоянно загружен процессор на 25% (1 ядро из 4), и часто происходят микрофризы, "подергивания" в игре. Так что, процессор не особо нужен играм, но минимум он должен потянуть. Это как палка, на которой груз. Если чуть чуть нехватит ей прочности, то она сломается, а вот добавить прочности немного и будет держать.
  • Какая теория? Почему не канает?
    60 FPS при загрузке на 25% это десятикратный запас. "Маловато будет! Маловато!"
    О каких танках идёт речь? World of Tanks? Так там рекомендуется 2 ГБ видеопамяти.
  • olodar wrote:нашел в src/mainboard/amd/dinar/Kconfig следующие параметры
    "dinar" это совсем другая плата. Исходники специфичные для нашей платы:

    Code: Select all

    ./src/mainboard/lenovo/g505s/
    дальше

    Code: Select all

    ./src/ec/compal/ene932/ - интерфейс с EC контроллером
    ./cpu/amd/agesa/family15rl/ - процессор
    ./northbridge/amd/agesa/ - северный мост
    ./southbridge/amd/agesa/hudson/ - южный мост
    Остальные вещи можно узнать в ./mainboard/lenovo/g505s/dsdt.asl и похожих исходниках.
    Разработчики коребута любят объединять код и приходится помнить некоторые особенности:
    например у нас EC контроллер ENE KB9012 но для него подходят исходники из ./src/ec/compal/ene932
    или например у нас южный мост Bolton, но для них обоих подходит код из ./southbridge/amd/agesa/hudson/
    а дальше нужно добавлять xhci блоб от болтона если хочешь чтобы был USB3.0

    Если посмотреть KConfig в папке g505s там тоже есть

    Code: Select all

    config HW_MEM_HOLE_SIZEK
    	hex
    	default 0x200000
    
    config HW_MEM_HOLE_SIZE_AUTO_INC
    	bool
    	default n
    Чтобы понять, на что именно влияют эти конфиги, нужно всего лишь поискать
    "HW_MEM_HOLE_SIZEK" и "HW_MEM_HOLE_SIZE_AUTO_INC" по всем исходникам коребута
    или какой то отдельной папке. Для этого можно использовать или Total Commander (если сидишь на винде) -
    - или в линуксовом терминале командой типа

    Code: Select all

    find ./coreboot/ -type f -print0 | xargs -0 grep -n "HW_MEM_HOLE_SIZEK"
    Напечатает список файлов и строчку на которой смотреть, а дальше их открываешь прям из консоли в тестовом редакторе, например

    Code: Select all

    gedit ./mainboard/lenovo/g505s/dsdt.asl &
    главное не забывать на конце команды значок & чтобы открытие текстового редактора не заблокировало терминал и в том же окне можно было вызвать ещё команд

    Code: Select all

    gedit ./src/northbridge/amd/agesa/family15rl/northbridge.c &
    а иногда достаточно просто погуглить по названию этого конфига - часто его обсуждали в списке рассылки coreboot и там есть его описание

    по-моему там просто отъедается небольшой кусок оперативки (2 МБ) для использования PCI устройствами (не как видеопамять и т.д. а просто для работоспособности интерфейсов PCI) . можно попробовать увеличить до 4 МБ если есть ощущение что этого не хватает
  • Pathoswithin wrote:Какая теория? Почему не канает?
    60 FPS при загрузке на 25% это десятикратный запас. "Маловато будет! Маловато!"
    О каких танках идёт речь? World of Tanks? Так там рекомендуется 2 ГБ видеопамяти.
    Какой нафиг запас?! Это для многопоточных программ запас! А танки потребляют одно ядро, на i7 второго поколения нагружает лишь на 10 процентов и никаких фризов нет (т.е. ядро загружено меньше, чем на половину). И это древний i7.
    Речь идет о танках онлайн.
    В дарке, например, похожая ситуация, но только дарк нагружает переодически два ядра, а к видеокарте дарк вообще не требователен.
  • olodar wrote: Какой нафиг запас?! Это для многопоточных программ запас! А танки потребляют одно ядро, на i7 второго поколения нагружает лишь на 10 процентов и никаких фризов нет (т.е. ядро загружено меньше, чем на половину). И это древний i7.
    Речь идет о танках онлайн.
    Так это браузерные танки? Тогда очевидно, что загрузка зависит от использования процессора браузером, не?
    to infinity and beyond
  • .
    Новости c этих выходных:

    1) Полностью распакован официальный биос InsydeH20 этого ноутбука
    при помощи немного устаревших инструментов от Insyde Software Japan:
    https://github.com/s-sosnitskiy80/Insider_BIOS_Tools
    https://www.bios-mods.com/forum/Thread- ... st-Release

    Зачем это было нужно:

    раньше для встроенной видеокарты HD 8650G в A10-5750M у нас был только тот VGABIOS который мы извлекали через линуксовое ядро при помощи этого метода - https://www.coreboot.org/VGA_support#Re ... nux_kernel . Разумеется мы извлекали его уже после того как комп включился, а в процессе включения компа VGABIOS модифицируется: меняются значения встроенных переменных и т.д. - То есть этот наш VGABIOS изначально был не совсем чистый и когда мы грузимся с "нечистым" VGABIOS-ом с которым уже раз грузились и у которого уже по умолчанию изменены какие-то переменные - это чисто в теории может привести к дополнительным глюкам

    Теперь у меня есть "чистый" VGABIOS для встроенной видеокарты HD 8650G, а также два тоже чистых VGABIOS-а для двух встроенных дискретных видеокарт которые встречаются в разных версиях этого ноута Lenovo G505S (HD 8570M и R5 M230) - их вообще не получалось извлечь через линуксовое ядро, но благодаря этим инструментам от InsydeH20 удалось наконец-то добыть эти VGABIOS-ы

    Помимо этого ещё есть куча модулей которые могут быть чем-то интересны. Всё это я выложу куда-нибудь в скором времени

    2) Пересобран coreboot с многими полезными патчами, расширяющими его функционал, а также с тремя "чистыми" VGABIOS-ами

    Конфиги, патчи и описания что они делают и как их применять, а также билды - тоже выложу, как решим проблемы (про них ниже)

    *) Мини-проблема: при попытке загрузки дополнения "FILO" (это такой мини-бутлоадер альтернативный GRUB-у) оно виснет на выполнении одной ассемблерной вставки. Пока что виню компилятор - полгода назад был gcc-5.2.0 и нормально запускалось, а сейчас gcc-6.3.0 и зависон при запуске (при этом исходники FILO почти не менялись с того времени). Скорее всего новый GCC криво компилит эту ассемблерную вставку. Пока что мои билды будут без FILO, может быть я тут один им пытался пользоваться, но все равно жаль когда на одно интересное дополнение меньше

    3) Тщательно протестированы все видеокарты на билдах коребута с тремя "чистыми" VGABIOS-ами

    *) ПРОБЛЕМА - не работает подсветка экрана ноутбука! Изображение есть, а подсветка не работает и не включается. На кнопку F9 которая раньше включала/выключала подсветку - тоже теперь не реагирует! Возможно "нечистый" VGABIOS всё же в каком-то плане выгодно отличается по отношению к "чистому" VGABIOS-у... Собираюсь посравнивать их в HEX-редакторе и дизассемблировать при помощи какого-нибудь AtomDis, чтобы может быть получить что-то среднее между "чистым" и "нечистым" - чтоб и подсветка экрана работала и остальные переменные в норме были

    *) Зато хорошо идёт изображение на VGA порт! Раньше у меня на внешний монитор меню SeaBIOS не показывалось, на нём появлялось изображение только когда операционка начинала грузиться, а теперь всё нормально. Пока что неясно чем вызвано это улучшение - то ли тем что VGABIOS от встроенной видеокарты "чистый" теперь, то ли тем что добавил два новых VGABIOS-а

    *) Пробовал запускать внешнюю дискретную видеокарту HD 6670 (которая от стационарного компа), подключал через райзер в порт ноута MiniPCI-e, разумеется запитанную от ATX блока питания - у которого закорочены два контакта через перемычку, чтоб питание шло

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

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

    Кстати, ради интереса проверял с порта самой внешней видеокарты - с неё тоже изображение не идёт

    Если у меня запустился бы линуксовый рабочий стол я бы попробовал запустить какую-нибудь линуксовую игрушку с параметром DRI_PRIME=1 и если FPS заметно подрос значит дискретная видеокарта работает хорошо

    Может быть нужно будет как-то добыть VGABIOS этой внешней дискретной видеокарты и тоже встроить его в коребут в дополнение к тем трём, вдруг это что-то изменит

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

    Вывод: эта связка с внешней дискретной видеокартой через райзер какая то нестандартная и где-то она работает а где-то нет, всё зависит от железа софта и кучи мелких неочевидных вещей. В любом случае не жалею что приобрёл райзер даже если вдруг его не удастся запустить с коребутным ноутом - где то да и сгодится в хозяйстве, в крайнем случае этот переходник очень востребован и перепродать по себестоимости будет легко если понадобится
    Last edited by floppy121 on Thu May 23, 2019 10:11 am, edited 2 times in total.
  • olodar
    А, так это игра на flash? И оно ещё и может нормально работать? :lol:
    Тогда 60 FPS это вообще мощно.
  • punk_joker wrote:
    olodar wrote: Какой нафиг запас?! Это для многопоточных программ запас! А танки потребляют одно ядро, на i7 второго поколения нагружает лишь на 10 процентов и никаких фризов нет (т.е. ядро загружено меньше, чем на половину). И это древний i7.
    Речь идет о танках онлайн.
    Так это браузерные танки? Тогда очевидно, что загрузка зависит от использования процессора браузером, не?
    Нет, флеш плеер работает независимо от браузера.
    Pathoswithin wrote:olodar
    А, так это игра на flash? И оно ещё и может нормально работать? :lol:
    Тогда 60 FPS это вообще мощно.
    Ха. Сам рукожопый гугл громче всех кукарекал о том, чтоб закопать флеш, но при этом выпилили из хрома NPAPI флеш, написали свой PPAPI говнофлеш, который лагает и дает в два раза меньше производительности в играх - браво!
    floppy221, так ты пробовал вообще не включать биосы для встроенных видеокарт и попробовать запустить систему как стационарник? Кстати, раз биос распотрошили, то можно как-то сделать в корбуте поддержку turbocore'a?
  • Есть замечательная утилита AtomDis - https://cgit.freedesktop.org/~mhopf/AtomDis/
    С её помощью можно дизассемблировать AMD-шные видеобиосы - "ATOMBIOS"

    Внизу прилагаю дизассемблеры ATOMBIOS-а встроенной видеокарты (образы выложу попозже).
    Сравнивал три видеобиоса:
    1) Чистый VBIOS - извлекли из образа оф. биоса
    2) Грязный VBIOS - оф. биос загрузился и потом извлекли
    3) Очень грязный VBIOS - оф.биос загрузился, извлекли VBIOS и запихнули в коребут, ещё раз загрузились и опять извлекли

    Разница между грязным и очень грязным - небольшая, 3 байта всего. Начиная со строки 4804:

    data_table 0000ac5e #0b (VRAM_UsageByFirmware): <---olodar'у будет интересно
    , он хотел чтобы встроенная видеокарта меньше оперативки кушала, где-то в ATOMBIOS это меняется


    Size 000c
    Format Rev. 01
    Param Rev. 00
    Content Rev. 05
    дальше отличие.
    Грязный:
    00000000: e0ff 0b00 2000 2000
    ...
    0004: ULONG ulStartAddrUsedByFirmware = 0x000bffe0 (786400)
    Очень грязный:
    00000000: e0ff 0700 2000 2000
    ...
    0004: ULONG ulStartAddrUsedByFirmware = 0x0007ffe0 (524256)

    ===

    Различий между "чистым" и "грязным" намного больше! Особенно интересны различия в этих таблицах и полях: LVDS_Info, sLCDTiming, ucLVDS_Misc, ucLCDPanel_SpecialHandlingCap, PowerPlayInfo, usSpreadSpectrumPercentage

    Наверное при включении компа официальный BIOS редактирует VBIOS, внося туда нужные параметры для нормальной работы экрана, который - заметим - подключен через LVDS порт! Может поэтому подсветка и не работает, что для её работы нужны дополнительные телодвижения
    Attachments
    dirty_very_F.txt (315.26 KiB)
    Очень грязный VBIOS (оф.биос загрузился, извлекли VBIOS и запихнули в коребут, ещё раз загрузились и опять извлекли), дизассм AtomDis
    Downloaded 181 times
    dirty_F.txt (315.25 KiB)
    Грязный VBIOS (оф. биос загрузился и потом извлекли), дизассм AtomDis
    Downloaded 186 times
    clean_F.txt (315.51 KiB)
    Чистый VBIOS (извлекли из образа оф. биоса), дизассм AtomDis
    Downloaded 178 times
    Last edited by floppy121 on Tue Jun 27, 2017 5:29 pm, edited 2 times in total.
  • Who is online

    Users browsing this forum: No registered users and 6 guests