Page 11 of 24

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

Posted: Fri Jun 23, 2017 8:48 am
by olodar
Pathoswithin wrote:Всё не так просто. Современное "ядро" содержит несколько конвейеров и может выполнять несколько операций параллельно, если это возможно. А если нет, то лишние конвейеры простаивают так же как и лишние ядра. Идея Hyper-threading в том, чтобы гнать сразу два потока на одном ядре, и если код сильно последовательный, то теоретически это таки может дать двухкратный рост производительности. В Bulldozer всё наоборот: 2 облегчённых ядра могут совместно работать над одним потоком. В обоих случаях производительность сильно зависит от конкретного кода, и ещё раз повторю, что мерять её синтетическими попугаями бессмысленно. Для однопоточной программы это будет 2 ядра, для многопоточной - 4.

Микроглюки в играх говорят о нехватке видеопамяти (подкачка из оперативы) или оперативы (подкачка с диска). Резкие скачки производительности указывают на слабую видеокарту. Слабый процессор выдаёт низкое, но очень стабильное количество кадров.
Хм, сейчас проверил - танки потребляют около 480 мб (что минималки, что ультра), а видеопамяти - 512 мб. Судя по всему - да, так и получается. А подкачки нет, т.к. рамы 16 гб. Да, очень мало оперативки, но для танков этого более чем достаточно. Как-нибудь попробую еще затестить танки с процем атлон II x4 630, который чуть чуть быстрее, чем А10, но у него еще в два раза больше ядер (но это нам ни к чему) и с видеокартой AMD RX 470 4GB. SR уже тестил - два ядра под завязку и 15-20 фпс в независимости от настроек графики и разрешения.
Кстати, а как в корбуте увеличить объем видеопамяти? (вся видеопамять берется из рамы)

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

Posted: Fri Jun 23, 2017 10:06 am
by punk_joker
olodar wrote: Хм, сейчас проверил - танки потребляют около 480 мб (что минималки, что ультра), а видеопамяти - 512 мб.
Первое это что? ОЗУ?
olodar wrote:Судя по всему - да, так и получается. А подкачки нет, т.к. рамы 16 гб.
И это мало ОЗУ? Сейчас вроде больше особо и не надо (если конечно кучи виртуалок не держать). Да и вообще эти танки странная вещь, а может и не они а АМД. Работало себе спокойно на RX480 на максимуме качества, и тут бац, где-то что-то поменялось, и все три кулера СО видеокарты начали работать на все 100%. Правда давно уже не запускал, может что и исправилось.

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

Posted: Fri Jun 23, 2017 1:43 pm
by olodar
punk_joker wrote:
olodar wrote: Хм, сейчас проверил - танки потребляют около 480 мб (что минималки, что ультра), а видеопамяти - 512 мб.
Первое это что? ОЗУ?
Видео ОЗУ (столько выделил coreboot).
punk_joker wrote: и тут бац, где-то что-то поменялось
Что где поменялось? Ты о чем?

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

Posted: Fri Jun 23, 2017 2:36 pm
by punk_joker
olodar wrote: Что где поменялось? Ты о чем?
Это так, отход от темы. Я имел ввиду, что играл себе спокойно в танки, видеокарта вела себя умеренно. А потом, после обновления игры. или возможно я драйвера при этом еще обновил, при тех же настройках, кулеры на видеокарте стали крутиться если не по максимуму, то близко к нему. Но это просто вспомнилось, когда прочитал про танки и RX470, и не имеет никакого отношения к теме разговора

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

Posted: Fri Jun 23, 2017 3:02 pm
by olodar
нашел в 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
Тоже что-то похожее

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

Posted: Fri Jun 23, 2017 8:29 pm
by Pathoswithin
punk_joker
Включи вертикальную синхронизацию в настройках игры или драйвера.

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

Posted: Sun Jun 25, 2017 9:05 am
by olodar
Вобщем, погонял танки. Твоя теория не канает, игра действительно потребляет около 480 мегабайт видео ОЗУ (минимальные настройки графики), 60 FPS, постоянно загружен процессор на 25% (1 ядро из 4), и часто происходят микрофризы, "подергивания" в игре. Так что, процессор не особо нужен играм, но минимум он должен потянуть. Это как палка, на которой груз. Если чуть чуть нехватит ей прочности, то она сломается, а вот добавить прочности немного и будет держать.

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

Posted: Sun Jun 25, 2017 1:20 pm
by Pathoswithin
Какая теория? Почему не канает?
60 FPS при загрузке на 25% это десятикратный запас. "Маловато будет! Маловато!"
О каких танках идёт речь? World of Tanks? Так там рекомендуется 2 ГБ видеопамяти.

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

Posted: Mon Jun 26, 2017 1:22 pm
by floppy121
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 МБ если есть ощущение что этого не хватает

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

Posted: Mon Jun 26, 2017 5:46 pm
by olodar
Pathoswithin wrote:Какая теория? Почему не канает?
60 FPS при загрузке на 25% это десятикратный запас. "Маловато будет! Маловато!"
О каких танках идёт речь? World of Tanks? Так там рекомендуется 2 ГБ видеопамяти.
Какой нафиг запас?! Это для многопоточных программ запас! А танки потребляют одно ядро, на i7 второго поколения нагружает лишь на 10 процентов и никаких фризов нет (т.е. ядро загружено меньше, чем на половину). И это древний i7.
Речь идет о танках онлайн.
В дарке, например, похожая ситуация, но только дарк нагружает переодически два ядра, а к видеокарте дарк вообще не требователен.

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

Posted: Mon Jun 26, 2017 5:55 pm
by punk_joker
olodar wrote: Какой нафиг запас?! Это для многопоточных программ запас! А танки потребляют одно ядро, на i7 второго поколения нагружает лишь на 10 процентов и никаких фризов нет (т.е. ядро загружено меньше, чем на половину). И это древний i7.
Речь идет о танках онлайн.
Так это браузерные танки? Тогда очевидно, что загрузка зависит от использования процессора браузером, не?

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

Posted: Mon Jun 26, 2017 6:13 pm
by floppy121
.
Новости 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 этой внешней дискретной видеокарты и тоже встроить его в коребут в дополнение к тем трём, вдруг это что-то изменит

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

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

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

Posted: Mon Jun 26, 2017 8:16 pm
by Pathoswithin
olodar
А, так это игра на flash? И оно ещё и может нормально работать? :lol:
Тогда 60 FPS это вообще мощно.

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

Posted: Tue Jun 27, 2017 5:14 pm
by olodar
punk_joker wrote:
olodar wrote: Какой нафиг запас?! Это для многопоточных программ запас! А танки потребляют одно ядро, на i7 второго поколения нагружает лишь на 10 процентов и никаких фризов нет (т.е. ядро загружено меньше, чем на половину). И это древний i7.
Речь идет о танках онлайн.
Так это браузерные танки? Тогда очевидно, что загрузка зависит от использования процессора браузером, не?
Нет, флеш плеер работает независимо от браузера.
Pathoswithin wrote:olodar
А, так это игра на flash? И оно ещё и может нормально работать? :lol:
Тогда 60 FPS это вообще мощно.
Ха. Сам рукожопый гугл громче всех кукарекал о том, чтоб закопать флеш, но при этом выпилили из хрома NPAPI флеш, написали свой PPAPI говнофлеш, который лагает и дает в два раза меньше производительности в играх - браво!
floppy221, так ты пробовал вообще не включать биосы для встроенных видеокарт и попробовать запустить систему как стационарник? Кстати, раз биос распотрошили, то можно как-то сделать в корбуте поддержку turbocore'a?

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

Posted: Tue Jun 27, 2017 5:19 pm
by floppy121
Есть замечательная утилита 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 порт! Может поэтому подсветка и не работает, что для её работы нужны дополнительные телодвижения