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

Using Kolibri in embedded systems
  • Касательно виртуализации - а в чем заключается её неполноценность? Вроде виртуалки запускал, все работало.
    Также там сказано про спящий режим:
    "Caveats: Sleep mode does not work under Qubes. Good to disable both XHCI options in Coreboot menu or the left side ports won't work at all. Disabled they sort of function as USB 2.0 (or 1.1?) ports, but you may have to use irqpoll (on sys-usb kernel options if using Qubes)."
    Что это за Qubes, не могу никак понять? И как заставить работать уже спящий режим полноценно?
    Колхозить аппартную регулировку, конечно, очень нежелательно, я просто не представляю, как это сделать нормально. Не будет же торчать рядом переменный резистор большой какой-нибудь. Есть вариант - сделать на ардуинке: датчик приклеить на трубку, и записать инструкции в прошивку контроллера, а он будет, в зависимости от температуры, регулировать напругу, подаваемой на вентилятор.
    И как быть с регулировкой яркости? Я давно не сижу на корбуте, поэтому: как быть, если, во-первых не работают кнопки для регулировки яркости, во-вторых, в винде регулировка яркости работает через заднее место: на одном драйвере работает, на другом не работает, на стоке все работает.
  • olodar wrote:Также там сказано про спящий режим:
    "Caveats: Sleep mode does not work under Qubes. Good to disable both XHCI options in Coreboot menu or the left side ports won't work at all. Disabled they sort of function as USB 2.0 (or 1.1?) ports, but you may have to use irqpoll (on sys-usb kernel options if using Qubes)."
    Что это за Qubes, не могу никак понять? И как заставить работать уже спящий режим полноценно?
    Qubes - это операционная система с линуксовым ядром (дистрибутив Linux) сфокусированная на безопасности: для каждой задачи можно легко создавать отдельную виртуалку изолированную от других. Например: щёлкаешь на значок браузера - запускается временная изолированная виртуалка с браузером, причём даже если браузер насквозь дырявый в плане безопасности - благодаря изолированности виртуалки не смогут похитить данные которые находятся в твоих основных виртуалках. закрыл браузер - и временная виртуалка схлопнулась со всем её содержимым. При этом разумеется есть механизмы передачи информации между виртуалками, но они тоже продуманы в плане безопасности, пусть и менее удобно копировать между ними файлы

    Насчёт спящего режима: в коребуте его вроде как починили, поэтому то что "спящий режим не работает нормально в Qubes" - это или устаревшая инфа, или проблема в самой Qubes, или ещё вариант что Qubes не на 100% совместима с коребутом из-за чего спящий режим прекрасно работает в других ОС и только в Qubes проблемы. я давно не запускал Qubes поэтому не знаю какой вариант правильный
    olodar wrote:Касательно виртуализации - а в чем заключается её неполноценность? Вроде виртуалки запускал, все работало
    Виртуалки, которые ты запускаешь - это "паравиртуализация" (Paravirtualized VM), "более программная" где даже эмулируется виртуальное железо. PVM хорошо работает почти везде

    HVM - аппаратная виртуализация - даёт виртуалкам более прямой доступ к железу, при этом используется IOMMU и прочие фичи для сохранения безопасности, и благодаря использованию аппаратных фич вроде AMD-V производительность HVM получается выше чем у PVM. Но работоспособность HVM зависит от железа, и наличия AMD-V / IOMMU + желательно SLAT (у нас это всё есть!). Любая версия Qubes использует HVM, а Qubes 4 - на полную катушку

    Выяснилось, что если не установить микрокод - то HVM в Qubes 4 будет зависать. При этом PVM разумеется работает хорошо, т.к. заметно меньше зависит от железа. А если установить микрокод - и то и другое будет работать хорошо
    olodar wrote:Колхозить аппартную регулировку, конечно, очень нежелательно, я просто не представляю, как это сделать нормально. Не будет же торчать рядом переменный резистор большой какой-нибудь. Есть вариант - сделать на ардуинке: датчик приклеить на трубку, и записать инструкции в прошивку контроллера, а он будет, в зависимости от температуры, регулировать напругу, подаваемой на вентилятор.
    думаю проще купить что-то наподобии этого - https://www.aliexpress.com/item/Unique- ... 04678.html кстати, у нашего вентилятора 4 провода: два провода напряжение, один провод управление скоростью вращения (есть не во всех ноутбучных вентиляторах но у нашего есть), и ещё один провод через который внутренний контроллер вентилятора сообщает материнке с какой скоростью он вращается - этот провод лучше не отсоединять, а то вдруг "официальный биос" который ты сейчас используешь - откажется включать комп, типа "вентилятор сломался, надо заменить"
    olodar wrote:И как быть с регулировкой яркости? Я давно не сижу на корбуте, поэтому: как быть, если, во-первых не работают кнопки для регулировки яркости, во-вторых, в винде регулировка яркости работает через заднее место: на одном драйвере работает, на другом не работает, на стоке все работает.
    на предыдущих страницах была мысль допилить коребут в плане его взаимодействия с мультиконтроллером, чтобы эта фича заработала, и даже вычислили места в исходниках где примерно нужно ковыряться. но тут так много параллельных дел что до регулировки яркости пока не дошли руки
  • Еще куча чего нужно доработать, а прогресс практически стоит на месте. Таким темпом стабильный биос появится лет через 10-15, когда ноут уже во всем устареет)
    Еще бы неплохо было бы сделать возможность регулировать вольтаж процессора, чтобы даунвольтнуть его, понизив нагрев таким образом, что также продлит его "срок жизни".
    А есть какие-нибудь другие биос-проекты, заточенные под большой функционал и безгеморный процесс портирования? Для других ноутов каким-то образом умудряются делать "разлоченные" биосы, где довольно богатый функционал, можно даже разгонять проц/раму и менять вольтаж, но не у нашего. Ну есть корбут, а что толку, если даже базовые функции не работают в нем? Я уже молчу про расширенный функционал какой-то. А чтобы пилить его, нужно как минимум иметь большой опыт в системном программировании.
  • Кстати, очень много в инете на русском и английском языке, в темах на форумах о нашем ноуте вижу пропагандисткие посты, призывающие собрать и поставить корбут, содержания типа "хорошая новость - g505s поддерживается проектом coreboot, чтобы поставить, нужно купить прошивальщик и прошить его" -- это не ты случайно их пишешь?))
  • olodar wrote:Еще куча чего нужно доработать, а прогресс практически стоит на месте. Таким темпом стабильный биос появится лет через 10-15, когда ноут уже во всем устареет) Ну есть корбут, а что толку, если даже базовые функции не работают в нем? Я уже молчу про расширенный функционал какой-то. А чтобы пилить его, нужно как минимум иметь большой опыт в системном программировании
    Многим и сегодняшнего хватает для полноценной работы: даже когда спящий режим не работал на нём уже куча народа сидела. Тем более что вроде как если установлен официальный биос то Qubes с его HVM на этом ноуте не работает, да и KolibriOS с мемтестом и тетрисом в оф.биос нельзя запихнуть, + параноики вроде меня опасаются что в закрытом оф.биосе сидят бэкдоры
    olodar wrote:А есть какие-нибудь другие биос-проекты, заточенные под большой функционал и безгеморный процесс портирования?
    Других опенсорсных биосов кроме коре/либребута - к сожалению нету
    olodar wrote: Для других ноутов каким-то образом умудряются делать "разлоченные" биосы, где довольно богатый функционал
    "разлоченные" биосы делают так: подгружают файл биоса в сервисную утилиту вроде Insyde H20EZE и просто разблокируют нужные менюшки через удобный графический интерфейс - но не для всех биосов есть такие утилиты и они не всегда работают, например для нашего почему-то даёт ошибку при попытке входа в редактор доступных менюшек ; если утилиты нету или не получается, приходится жонглировать UEFI-ными модулями и сидеть в HexEditor-е - всё это грустно долго и уныло, для нашего ноута например ни у кого так и не получилось для оф.биоса ни менюшки скрытые разблокировать ни даже WiFi whitelist удалить - смотрел на https://www.bios-mods.com (это основной сайт где сидят люди редактирующие оф.биосы)
    olodar wrote:Еще бы неплохо было бы сделать возможность регулировать вольтаж процессора, чтобы даунвольтнуть его, понизив нагрев таким образом, что также продлит его "срок жизни"
    olodar wrote:можно даже разгонять проц/раму и менять вольтаж, но не у нашего.
    Разгонять проц и менять вольтаж можно через утилиты. На линуксе - при помощи turionpowercontrol понижали вольтаж для A8-4500M - https://superuser.com/questions/1097390 ... ning-linux - и изменяли его частоты через выставление P-State - https://gist.github.com/SuicSoft/ea59b5 ... 6c4dae331d. Для A10-5750M всё это тоже должно работать т.к. они из одного семейства. Ещё есть amdctl тоже для этих целей - https://github.com/kevinlekiller/amdctl Страницами ранее мы вроде как пытались уже использовать эти утилиты для того чтобы перевести A10-5750M в P-State 0 (pb0) соответствующий Turbocore, правда я не помню чем всё закончилось

    А вот оперативку вроде как только из биоса можно оверклочить!
    В исходниках коребута нашёл следующие интересные файлы (может есть ещё) :

    Code: Select all

     coreboot/src/mainboard/lenovo/g505s/buildOpts.c
     coreboot/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c
     coreboot/src/vendorcode/amd/agesa/f15tn/Proc/Mem/NB/TN/mndcttn.c
     coreboot/src/vendorcode/amd/agesa/f15tn/Proc/Mem/Feat/DMI/mfDMI.c
     coreboot/src/vendorcode/amd/agesa/f15tn/Proc/Mem/NB/mndct.c
     coreboot/src/vendorcode/amd/agesa/f15tn/AGESA.h
     coreboot/src/northbridge/amd/amdmct/mct_ddr3/mctrci.c
    Открой их и сделай поиск по 1866, увидишь интересные строки вроде

    Code: Select all

    #define DDR1600_FREQUENCY   800    ///< DDR 1600
    #define DDR1866_FREQUENCY 933 ///< DDR 1866
    Думаю, если в одном или нескольких из этих файлов скопировать значения оперативки 1866MHz к оперативке 1600MHz
    то она тоже попытается запуститься на 1866MHz :P только неизвестно сработает ли и какие будут тайминги в случае успеха
  • olodar wrote:Кстати, очень много в инете на русском и английском языке, в темах на форумах о нашем ноуте вижу пропагандисткие посты, призывающие собрать и поставить корбут, содержания типа "хорошая новость - g505s поддерживается проектом coreboot, чтобы поставить, нужно купить прошивальщик и прошить его" -- это не ты случайно их пишешь?))
    отчасти я наспамил :lol: (на русскоязычных наверное почти всё моё), отчасти друзья постарались кто тоже на g505s+coreboot сидит. Разумеется мы заинтересованы в том чтобы люди присоединялись к нам: есть шанс что часть присоединившихся не просто соберут коребут под свой g505s, а и внесут какой-нибудь вклад в общее дело и нам всем станет немного легче - ведь помимо coreboot мы участвует и во многих других опенсорсных проектах
  • Хотелось бы редактировать вольтаж на уровне биоса. А если будет какая-нибудь макось, где этих утилит нет, или фиг пойми как под андроидом эту прогу запустить.
    А насчет частоты оперативки - у меня одна планка на 1333 мГц, другая 1600, по дефолту ведь стоит 1600? А насколько я помню, то они так же, как и на стоке, работали на 1333 мГц.
    Кстати, читал, что можно использовать видеопамять и пометить ее как mtd ус-во, а на нем уже создать своп, например.
    Нужен модуль slram, но, например, в убунте его нет. Как быть с этим, не подскажешь? А то 2 гига видеопамяти во внешней видюхе простаивают...
    Я тоже делаю вклад, можно сказать. Нашел, как наладить работу AHCI и довольно тщательно тестирую функции. Кто же еще заметит, что на разных биосах по-разному крутится вентилятор?
  • Попробовал вобщем Turion Power Control.
    Отключил буст, какое-то время процессор работает как надо -- на частоте 2.5 гГц, 1В напруга.
    Через некоторое время частота закрепляется на 900 мГц, и все начинает лагать. Я об этом говорил ранее, что частота может переодически дропаться до 800 (900) мГц.
    Как такое вообще физически возможно, если у процессора минимальный множитель 14?
    С перегревом никаких проблем нет, питалово проца тоже не перегревается, но частота дропается. Виноват в этом, в первую очередь, амудэ, со своими недопроцессорами.
    Ну вот есть у этого проца AVX, AES, AMD-V и другие инструкции, и что толку-то, если производительность процессора находится на уровне пентиума 4 на 478 сокете, только с новыми инструкциями и быстрой DDR3 памятью?
    Да еще и не может нормально работать на своей базовой частоте.
    Лучше бы купил i5 или даже i3 без видеокарты, гораздо лучше бы было. Один фиг на этом процессоре ни во что нормально не поиграешь, дискретную видеокарту использовать практически невозможно, да еще и встройка не особо и мощная, которой даже проц нормально не даст работать.
    А как понизить через вольтаж через TPC я так и не понял...
    Вот вообще не понимаю, как комплитить программы из исходников.
    Не могу никак собрать TPC:
    выполняю make и вываливается эта фигня:
    Spoiler:su@kek:~/temp/tpc$ make
    mkdir -p obj/x86_64
    svn: E155007: '/home/su/temp/tpc' is not a working copy
    g++ -O2 -MMD -MF obj/x86_64/.TurionPowerControl.d -MT obj/x86_64/TurionPowerControl.o -c -o obj/x86_64/TurionPowerControl.o TurionPowerControl.cpp
    g++ -O2 -MMD -MF obj/x86_64/.config.d -MT obj/x86_64/config.o -c -o obj/x86_64/config.o config.cpp
    config.cpp: In member function ‘int CfgManager::consumePStateSection()’:
    config.cpp:49:8: warning: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
    fgets (line,256,cfgFile);
    ~~~~~~^~~~~~~~~~~~~~~~~~
    config.cpp:87:10: warning: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
    fgets (line,256,cfgFile);
    ~~~~~~^~~~~~~~~~~~~~~~~~
    config.cpp:89:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &vid);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
    config.cpp:91:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%f", &fid);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
    config.cpp:93:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%f", &did);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
    config.cpp:99:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &frequency);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    config.cpp:101:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%f", &voltage);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
    config.cpp:103:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%f", &nbvoltage);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    config.cpp:105:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &nbvid);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
    config.cpp: In member function ‘int CfgManager::consumeGeneralSection()’:
    config.cpp:181:10: warning: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
    fgets (line,256,cfgFile);
    ~~~~~~^~~~~~~~~~~~~~~~~~
    config.cpp:190:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%u", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp:193:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp:197:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp:200:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp:203:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp:206:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp:213:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp:216:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile,"%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
    config.cpp:220:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile,"%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
    config.cpp:224:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile,"%f", &ftemp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp: In member function ‘int CfgManager::consumeScalerSection()’:
    config.cpp:258:10: warning: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
    fgets (line,256,cfgFile);
    ~~~~~~^~~~~~~~~~~~~~~~~~
    config.cpp:267:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp:270:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%s", strTemp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
    config.cpp:278:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp:282:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile, "%d", &temp);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
    config.cpp: In member function ‘int CfgManager::parseCfgFile()’:
    config.cpp:318:10: warning: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
    fgets (line,256,cfgFile);
    ~~~~~~^~~~~~~~~~~~~~~~~~
    config.cpp:327:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    fscanf (cfgFile,"%s",line);
    ~~~~~~~^~~~~~~~~~~~~~~~~~~
    config.cpp:341:10: warning: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
    fgets (line,256,cfgFile);
    ~~~~~~^~~~~~~~~~~~~~~~~~
    g++ -O2 -MMD -MF obj/x86_64/.cpuPrimitives.d -MT obj/x86_64/cpuPrimitives.o -c -o obj/x86_64/cpuPrimitives.o cpuPrimitives.cpp
    g++ -O2 -MMD -MF obj/x86_64/.Griffin.d -MT obj/x86_64/Griffin.o -c -o obj/x86_64/Griffin.o Griffin.cpp
    g++ -O2 -MMD -MF obj/x86_64/.K10Processor.d -MT obj/x86_64/K10Processor.o -c -o obj/x86_64/K10Processor.o K10Processor.cpp
    K10Processor.cpp: In member function ‘int K10Processor::getDramFrequency(uint32_t)’:
    K10Processor.cpp:3125:9: warning: switch condition has boolean value [-Wswitch-bool]
    switch (getDDR3Mode(device)) {
    ^
    g++ -O2 -MMD -MF obj/x86_64/.Brazos.d -MT obj/x86_64/Brazos.o -c -o obj/x86_64/Brazos.o Brazos.cpp
    g++ -O2 -MMD -MF obj/x86_64/.Llano.d -MT obj/x86_64/Llano.o -c -o obj/x86_64/Llano.o Llano.cpp
    g++ -O2 -MMD -MF obj/x86_64/.Interlagos.d -MT obj/x86_64/Interlagos.o -c -o obj/x86_64/Interlagos.o Interlagos.cpp
    g++ -O2 -MMD -MF obj/x86_64/.MSRObject.d -MT obj/x86_64/MSRObject.o -c -o obj/x86_64/MSRObject.o MSRObject.cpp
    g++ -O2 -MMD -MF obj/x86_64/.MSVC_Round.d -MT obj/x86_64/MSVC_Round.o -c -o obj/x86_64/MSVC_Round.o MSVC_Round.cpp
    In file included from MSVC_Round.cpp:1:0:
    MSVC_Round.h:5:17: error: ‘int round(float)’ conflicts with a previous declaration
    int round (float);
    ^
    In file included from /usr/include/c++/7/math.h:36:0,
    from MSVC_Round.h:3,
    from MSVC_Round.cpp:1:
    /usr/include/c++/7/cmath:1771:3: note: previous declaration ‘constexpr float std::round(float)’
    round(float __x)
    ^~~~~
    Makefile:62: recipe for target 'obj/x86_64/MSVC_Round.o' failed
    make: *** [obj/x86_64/MSVC_Round.o] Error 1
    и капец, и что с этим делать? вот всегда, когда что-то пытаюсь скомпилить - никогда не получается. В документации вообще ни слова не сказано про какие-либо зависимости
    погуглил - советуют старый комплилятор. скомпилил на уб 14.04 - скомпилился!
    А почему так получается, что новый комплиятор не может пережевать старые исходники? Это же полное уничтожение совместимости со старыми исходниками
    Кстати, странно, почему-то винда определяет потоки за ядра и определяет процессор как с 4 ядрами.
    Attachments
    Capture.PNG
    Capture.PNG (126.7 KiB)
    Viewed 11538 times
  • olodar wrote:Попробовал вобщем Turion Power Control...
    я Turion Power Control не тестировал и не знаю насколько хорошо он работает
    olodar wrote:Ну вот есть у этого проца AVX, AES, AMD-V и другие инструкции, и что толку-то, если производительность процессора находится на уровне пентиума 4 на 478 сокете, только с новыми инструкциями и быстрой DDR3 памятью?
    A10-5750M - 3343 очков (https://www.cpubenchmark.net/cpu.php?cp ... PU&id=1920), а типичный пенёк 4 на 478 сокете - 354 очка (https://www.cpubenchmark.net/cpu.php?cp ... Hz&id=1074). в 9-10 раз разница
    olodar wrote:Да еще и не может нормально работать на своей базовой частоте
    эти проблемы наблюдаются в-основном на винде, или на линуксе в аналогичном размере?
    olodar wrote:Лучше бы купил i5 или даже i3 без видеокарты, гораздо лучше бы было. Один фиг на этом процессоре ни во что нормально не поиграешь, дискретную видеокарту использовать практически невозможно, да еще и встройка не особо и мощная, которой даже проц нормально не даст работать
    на те деньги который стоит этот ноут, даже с i3 скорее всего взять невозможно, только pentium или даже celeron
    olodar wrote:А почему так получается, что новый комплиятор не может пережевать старые исходники? Это же полное уничтожение совместимости со старыми исходниками
    да, бывает такая фигня, https://en.wikipedia.org/wiki/Software_rot . Возможно, то, на что старый компилятор выдавал warning, в новом переквалифицировали как ошибку
    olodar wrote:Кстати, странно, почему-то винда определяет потоки за ядра и определяет процессор как с 4 ядрами.
    а в этом процессоре и есть 4 физических ядра = 4 потока. гипертридинга, "делающего из 2 ядер 4 потока", тут нету
  • flopppy221 wrote:A10-5750M - 3343 очков (https://www.cpubenchmark.net/cpu.php?cp ... PU&id=1920), а типичный пенёк 4 на 478 сокете - 354 очка (https://www.cpubenchmark.net/cpu.php?cp ... Hz&id=1074). в 9-10 раз разница
    Дело в том, что в подобной синтетике основную роль на количество очков влияет пропускная способность памяти, чем производительность процессора. Более правильно, на мой взгляд, сделать тестирование в конкретных задачах, как это делает, например, Geekbench, и сравнить уже их. Также довольно большое количество очков дают инструкции AES, которых у пня тоже нет и которые не играют никакой роли в играх.
    Так, наш A10 набирает, например, в JPEG 1887 баллов, древний пенёк - 1510, при том, что у пенька используется еще более древняя память DDR (1). Или, например, SQlite 1679 у А10 против 930 у пня. Да, мы не учитываем то, что у пня одно ядро, а у нашего - два, потому как в первую очередь важна производительность на одно ядро, а потом уже количество ядер.
    floppy221 wrote:эти проблемы наблюдаются в-основном на винде, или на линуксе в аналогичном размере?
    Только на винде, и эти проблемы возникают из-за кривой работы TurboCore. На линуксе же турбокор не работает вообще, и там всегда проц работает максимум на 2,5 гГц, но зато не перегревается и не троттлится.
    floppy221 wrote:на те деньги который стоит этот ноут, даже с i3 скорее всего взять невозможно, только pentium или даже celeron
    Я брал этот ноут по цене в 21к. Помню точно, что рядом стоял какой-то ноут с процессором i5 4200U за 23к но уже без видеокарты, то есть, только встройка от интела. Но тогда еще объективно не мог оценить производительность компьютеров (процессоров, видеокарт) и повёлся на рекламу о "4" лжеядрах и аж двух видеокартах (притом, что вторая вообще никак не трудится, а встройке нормально не дает работать слабый процессор). Подумал, что: пффф, 2 ядра какие-то да еще и без видеокарты, лучше уж этот возьму. И этот i5 помимо того, рвёт этого амудэ просто в клочья, превосходя по производительности в два раза почти во всех задачах, так он еще и в два раза холоднее!
    floppy221 wrote:а в этом процессоре и есть 4 физических ядра = 4 потока. гипертридинга, "делающего из 2 ядер 4 потока", тут нету
    Как раз таки 2 ядра и есть. В этом процессоре не 2 ядра, а два модуля по два ядра, которые используют общий кэш второго уровня и FPU.
    Это означает, что фактически работать могут из "4" ядер только два, и оно так и есть. Не веришь - проверь сам: сделай тест в один поток, а затем тест в многопотоке (на 4 ядра) и сравни результаты - в многопотоке результат получается на уровне чуточку больше двух ядер, но даже до уровня трех ядер ему далеко. А должно быть, чтобы производительность при нагрузке на 4 ядра равнялась производительности одного потока * количество ядер. У интеловских, настоящих ядер, так оно и есть, начиная от 775-ом сокета, заканчивая современными процами.
    Я уже не говорю о том, что амд, поменяв лишь техпроцесс, меняет и сокет и выдает это за новые процессоры. Сначала был тринити, потом ричланд (который у нас) потом кабини (ну кабини не особо в счет, т.к. это SoC процессоры), потом кавери, карризо, и последний бульдозер-подобный процессор - бризтол ридж. Лишь недавно выпустили рейвон ридж на архитектуре Zen, который уже имеет полноценные ядра, в отличие от всяких бульдозеров и экскаваторов. И с каждым "новым" поколением постоянно новый сокет и новая платформа в целом, причем разницы особой между ними и нет. То есть, с A10-4600 ты не сможешь обновиться до A10-5750M, а с него на Kaveri. Смена процессора в данном случае необходима из-за низкой производительности, а в случае с i5 он еще довольно долго "протянет" без нужды смены на новый.
    А вот то, что интел меняет часто платформы -- а что, это как раз хорошо, ведь благодаря этому мы получаем довольно небольшую разницу в поколениях, при том, что можно за копейки найти мощные процессоры более старших поколений, кототорые будут незначительно уступать современным процессорам. Или, например, собрать суперкомпьютер на 2-х процессорах зеон с 16 ядрами и 32 потоками=32 ядра и 64 потока вкупе с 256 гб ОЗУ :D
  • Кстати, насчёт виртуализации: как я понял из того, что ты там написал, нужно сделать следующее:
    1) dd skip=5284 iflag=skip_bytes if=/lib/firmware/amd-ucode/microcode_amd_fam15h.bin of=amd.bin
    2) mv amd.bin coreboot/3rdparty/blobs/cpu/amd/family_15h/microcode_amd_fam15h.bin
    И потом просто пересобрать. Так ведь?
  • olodar wrote:Так, наш A10 набирает, например, в JPEG 1887 баллов, древний пенёк - 1510, при том, что у пенька используется еще более древняя память DDR (1). Или, например, SQlite 1679 у А10 против 930 у пня
    Geekbench вроде бы ловили на завышении результатов для макбуков и интела, правда не знаю исправились ли они с тех пор... Но к сожалению сайт openbenchmarking (на котором приведены более объективные с моей точки зрения бенчмарки, и по конкретным задачам в том числе) недостаточно удобен чтобы я сейчас смог привести какие-то ссылки с возможно более лучшим положением дел - сейчас в отъезде и нормальный инет бывает лишь небольшими эпизодами, за которые мало что успеваю...

    Зато в процессоре A10-5750M нет аппаратных бэкдоров Intel ME/AMD PSP, которые давно появились в интеловских процессорах и относительно недавно в AMD-шных. А эти аппаратные бэкдоры умеют много чего, помимо шпионажа и возможно похищения Top Secret инфы - управлять электропитанием: "функция антивор", для удалённого стирания данных "похищенного" компьютера и полной блокировки процессора. И если на другом конце земного шара нажмут кнопку, все новые Intel и AMD могут превратиться в тыкву в отдельно взятой стране. А твой A10-5750M продолжит работать как ни в чём ни бывало :wink:
    olodar wrote:Только на винде, и эти проблемы возникают из-за кривой работы TurboCore. На линуксе же турбокор не работает вообще, и там всегда проц работает максимум на 2,5 гГц, но зато не перегревается и не троттлится
    Как вариант: можно сидеть под линуксом, а винду использовать в виртуалке или или даже запускать приложения в Wine. Даже для самой обычной виртуализации я мерял производительность несколько лет назад: разница между "хостом" и "виртуалкой" была 1-2%, основной урон был по графике (минус 35% вроде бы, но с тех пор наверняка улучшилось), а основным неудобством - необходимость апгрейда оперативной памяти
    olodar wrote:Кстати, насчёт виртуализации: как я понял из того, что ты там написал, нужно сделать следующее:
    1) dd skip=5284 iflag=skip_bytes if=/lib/firmware/amd-ucode/microcode_amd_fam15h.bin of=amd.bin
    2) mv amd.bin coreboot/3rdparty/blobs/cpu/amd/family_15h/microcode_amd_fam15h.bin
    И потом просто пересобрать. Так ведь?
    В инструкции по той ссылке - http://dangerousprototypes.com/docs/Len ... nstruction - ещё нужно поменять значения в src/vendorcode/amd/agesa/f15tn/Proc/CPU/Family/0x15/TN/F15TnEquivalenceTable.c . Инструкцию писал не я и пока не успел её улучшить. К тому же, AMD совсем недавно два раза обновила микрокод для нашего процессора (молодцы, заботятся о "старичках"), 10 и 3 дня назад - https://git.kernel.org/pub/scm/linux/ke ... a498e91609 - и будет ли эта инструкция работать для самого последнего микрокода, в особенности "skip=5284" (вдруг там нужен другой отступ в байтах), или необходимы какие-то коррективы, для меня неясно пока я сам не попробовал - тогда и улучшу ту инструкцию. В-общем, если тебе не нужна та самая крутая виртуализация прямо сейчас, и достаточно обычного VirtualBox или VMWare - пожалуйста подожди со следующей пересборкой coreboot пока мы не проясним эти моменты
  • floppy121 wrote:Geekbench вроде бы ловили на завышении результатов для макбуков и интела, правда не знаю исправились ли они с тех пор... Но к сожалению сайт openbenchmarking (на котором приведены более объективные с моей точки зрения бенчмарки, и по конкретным задачам в том числе) недостаточно удобен чтобы я сейчас смог привести какие-то ссылки с возможно более лучшим положением дел - сейчас в отъезде и нормальный инет бывает лишь небольшими эпизодами, за которые мало что успеваю...
    Как-нибудь сделаю сравнительное тестирование процессоров opensource тестами, где никакие накрутки невозможны. Скажу спойлер: Intel Celeron N3150 с тепловыделением 6 ватт оказался быстрее в многопотоке, чем амудэ.
    floppy221 wrote:Как вариант: можно сидеть под линуксом, а винду использовать в виртуалке или или даже запускать приложения в Wine. Даже для самой обычной виртуализации я мерял производительность несколько лет назад: разница между "хостом" и "виртуалкой" была 1-2%, основной урон был по графике (минус 35% вроде бы, но с тех пор наверняка улучшилось), а основным неудобством - необходимость апгрейда оперативной памяти
    В вайне вообще ничего нормально не работает. Либо не работает, либо работает криво (по идее, одно и то же). В вайне работает нормально лишь какой-то простой софт, по типу winbox. А вот пробовал ставить танки под вайн - фиг, аппаратное ускорение не работает, т.е. графику обрабатывает и без того деревянный процессор.
  • olodar wrote:Как-нибудь сделаю сравнительное тестирование процессоров opensource тестами, где никакие накрутки невозможны. Скажу спойлер: Intel Celeron N3150 с тепловыделением 6 ватт оказался быстрее в многопотоке, чем амудэ
    Это странно слышать, потому что на https://www.cpubenchmark.net/cpu.php?cp ... Hz&id=2546 у Celeron N3150 для многопотока (4 потока) оказалось 1657 очков, в то время как у A10-5750M на том же сайте - https://www.cpubenchmark.net/cpu.php?cp ... PU&id=1920 - 3343 очков для многопотока (тоже 4 потока), в два раза больше. Хотя если честно, мерять синтетическими тестами не очень правильно, нужно смотреть по реальным приложениям - например насколько быстро работают виртуалки
    floppy221 wrote:В вайне вообще ничего нормально не работает. Либо не работает, либо работает криво (по идее, одно и то же). В вайне работает нормально лишь какой-то простой софт, по типу winbox. А вот пробовал ставить танки под вайн - фиг, аппаратное ускорение не работает, т.е. графику обрабатывает и без того деревянный процессор
    Качество работы вайн сильно зависит от приложения, у них есть база данных - https://appdb.winehq.org/ - где можно посмотреть насколько хорошо работает интересующая программа или игра. https://appdb.winehq.org/objectManager. ... nding=true Всего в базе сейчас 14512 записей, из которых 4655 "платиновый" (т.е. работают как на винде) а 3964 "золотой" (незначительные проблемы) . Конечно это всё для тех кто не хочет возиться с виртуалками, вайн пока ещё далёк от идеала... World of Tanks - https://appdb.winehq.org/objectManager. ... &iId=36493 - рейтинг недавно стал золотой, но если "Without workaround": You'll get glitches visually and long wait times, on some computers maps don't even load. а "With workaround:" The game in full screen will not open up if you deselect the game (full screen mode) but this can be avoided using windowed border less.
    То есть, чтобы танки не тормозили, нужно сделать это:
    To avoid several glitches, you need to (instructions in extra section):
    * Use a Staging version of wine higher than version 3.5. (You need staging for the in game browser)
    * Use DXVK.

    Details:
    * DXVK is still very early in development and may not be completely stable.
    * I used wine-staging 64 bit.
    * I have not had to touch the wine cfg, the DXVK script sorts that out for you.
    Информация взята из спойлера "Test Results" на странице приложения
  • Who is online

    Users browsing this forum: Ahrefs [Bot], Semrush [Bot] and 5 guests