Taisomas PowerMonkey

Jump to navigation Jump to search

Dėmesio: Jūs nesate prisijungęs. Jūsų IP adresas bus viešai matomas, jei atliksite kokius nors keitimus. Jeigu prisijungsite arba sukursite paskyrą, jūsų keitimai bus priskirti jūsų naudotojo vardui; drauge įgysite naujų galimybių.

Keitimas gali būti atšauktas. Prašome patikrinti palyginimą, esantį žemiau, kad patvirtintumėte, kad jūs tai ir norite padaryti, ir tada išsaugokite pakeitimus, esančius žemiau, kad užbaigtumėte keitimo atšaukimą.

Dabartinė versija Jūsų tekstas
31 eilutė: 31 eilutė:
  
 
== Reikalavimai ==
 
== Reikalavimai ==
 
* Windows 10/11
 
* Įdiegta Linux distribucija su Grub2 boot loaderiu (išjungtas arba įjungtas secureboot, nėra svarbu), asmeniškai naudota Fedora 41
 
* Visual Studio 2022 su Visual C++ paketu
 
  
 
== Kompiliavimas ==
 
== Kompiliavimas ==
 
* Užkrovę Windows 10/11 parsisiunčiame ir įdiegiame Visual Studio 2022 su Visual C++ paketu.
 
* Parsisiunčiame https://github.com/awyl/Build-PowerMonkey į '''C:\Build-PowerMonkey'''
 
* Pakeičiame '''build.bat''' scriptą į esantį apačioje
 
* Paleižiame '''X64 Native Tools Command Prompt for VS 2022'''
 
* Nunaviguojame į '''C:\Build-PowerMonkey''' ''"cd C:\Build-PowerMonkey"''
 
* Paleidžiame: '''setup.bat'''
 
* Paredaguojame: '''CONFIGURATION.c''', suvedame visus reikalingus undervolt parametrus (apačioje pateiktas pavyzdys)
 
* Paleidžiame: '''build.bat'''
 
* Užmontuojame efi skirsnį per [[cmd]] ('''admin teisėmis''') ''"mountvol X: /s"'', turėtų atsirasti naujas '''X:''' diskas, kurį pasieksite tiktai per ta patį admin teisėmis paleistą cmd
 
* Sukuriame naują direktoriją ''"mkdir x:\EFI\PowerMonkey"''
 
* Nukopijuojame sukompiluotą efi failą ''"copy /y C:\Build-PowerMonkey\EFI\Boot\PowerMonkey.efi x:\EFI\PowerMonkey"''
 
 
=== build.bat ===
 
 
<syntaxhighlight lang="batch">
 
@echo off
 
 
set PYTHON_HOME=%cd%\python
 
set PYTHONPATH=%cd%\python
 
set PYTHON_COMMAND=%cd%\python\python.exe
 
set NASM_PREFIX=%cd%\nasm\
 
set PATH=%cd%\edk2\BaseTools\bin\win32;%PATH%
 
 
copy /y CONFIGURATION.c edk2\MdeModulePkg\Application\PowerMonkeyApp
 
cd edk2
 
call edksetup.bat
 
call build -m MdeModulePkg/Application/PowerMonkeyApp/PowerMonkey.inf
 
copy /y Build\MdeModule\RELEASE_VS2019\X64\PowerMonkey.efi ..\EFI\Boot
 
 
cd ..
 
</syntaxhighlight>
 
 
=== CONFIGURATION.c ===
 
 
'''Dėmesio!''' Pavyzdys skirtas tik Core i7-8750H procesoriui.
 
 
<syntaxhighlight lang="c">
 
#include "Platform.h"
 
#include "CONFIGURATION.h"    // <- enable tracing if PowerMonkey hangs!
 
UINT8 gPostProgrammingOcLock = 1;
 
UINT8 gEmergencyExit = 1;
 
UINT8 gEnableSaferAsm = 1;
 
UINT8 gDisableFirwmareWDT = 0;
 
UINT64 gSelfTestMaxRuns = 0; /// DO NOT ENABLE YET (WIP)
 
UINT8 gPrintPackageConfig = 1;
 
UINT8 gPrintVFPoints_PostProgram = 1;
 
VOID ApplyComputerOwnersPolicy(IN PLATFORM* sys)
 
{
 
  for (UINTN pidx = 0; pidx < sys->PkgCnt; pidx++) {   
 
    PACKAGE* pk = sys->packages + pidx;
 
    pk->Program_VF_Overrides[IACORE] =    1;    // Enable programming of VF
 
    pk->Program_VF_Overrides[ECORE] = 0;        // Enable programming of VF
 
    pk->Program_VF_Overrides[RING] =  1;        // Enable programming of VF
 
    pk->Program_VF_Overrides[UNCORE] =    0;    // Enable programming of VF
 
    pk->Program_VF_Overrides[GTSLICE] =  0;    // Enable programming of VF
 
    pk->Program_VF_Overrides[GTUNSLICE] = 0;    // Enable programming of VF
 
 
    pk->planes[IACORE].VoltMode =
 
      pk->planes[RING].VoltMode = V_IPOLATIVE;      // V_IPOLATIVE = Interpolate
 
                                                    // V_OVERRIDE =  Override
 
    pk->planes[IACORE].TargetVolts =
 
      pk->planes[RING].TargetVolts = 0;            // in mV (absolute)
 
 
    pk->planes[IACORE].OffsetVolts = -150;          // in mV
 
    pk->planes[RING].OffsetVolts = -130;            // in mV
 
                                                    // (negative = undervolt)
 
 
    pk->planes[ECORE].VoltMode = V_IPOLATIVE;  // V_IPOLATIVE = Interpolate
 
                                                // V_OVERRIDE =  Override
 
 
    pk->planes[ECORE].TargetVolts = 0;          // in mV (absolute)
 
    pk->planes[ECORE].OffsetVolts = 0;          // in mV (negative = undervolt)
 
 
    pk->planes[UNCORE].VoltMode = V_IPOLATIVE;  // V_IPOLATIVE = Interpolate
 
                                                // V_OVERRIDE =  Override
 
 
    pk->planes[UNCORE].TargetVolts = 0;        // in mV (absolute)
 
    pk->planes[UNCORE].OffsetVolts = 0;        // in mV (negative = undervolt)
 
 
    pk->Program_VF_Points[IACORE] =                // 0 - Do not program
 
      pk->Program_VF_Points[RING] = 0;              // 1 - Program
 
                                                    // 2 - Print current values                                                   
 
                                                    //    (2 does not program)
 
   
 
    // Hybrid Architectures (Alder Lake +): E-Cores
 
 
                                                    // 1 - Program
 
    pk->Program_VF_Points[ECORE] = 0;              // 0 - Do not program
 
                                                    // 2 - Print current values                                                   
 
                                                    //    (2 does not program)
 
  }
 
}
 
</syntaxhighlight>
 
 
Konfigūracijos undervolt:
 
* CPU Core: -150mV
 
* CPU Cache: -130mV
 
 
  
 
== Pasirašymas ==
 
== Pasirašymas ==
  
 
Jeigu savo kompiuteryje turite išjungę secure boot, šį etapą galite praleisti.
 
Jeigu savo kompiuteryje turite išjungę secure boot, šį etapą galite praleisti.
Šis etapas reikalauja įdiegtos Linux distribucijos su [https://github.com/hakuna-m/wubiuefi/wiki/MOKManager Mok Manager] ir [https://github.com/rhboot/shim shim loader] kuris įdiegtas kartu su [[grub2]].
 
  
 
Sukuriame failą '''x509-configuration.ini''' į jį irašome:
 
Sukuriame failą '''x509-configuration.ini''' į jį irašome:

Primename, kad viskas, kas patenka į Žinynas, yra skelbiama pagal GNU Free Documentation License 1.2 (plačiau – Žinynas:Autorinės teisės). Jei nenorite, kad jūsų indėlis būtų be gailesčio kaitaliojamas ir platinamas, nerašykite čia.
Jūs taip pat pasižadate, kad tai jūsų pačių rašytas turinys arba kopijuotas iš viešų ar panašių nemokamų šaltinių. Nekopijuokite autorinėmis teisėmis apsaugotų darbų be leidimo!

Kad apsaugotume vikį nuo automatinio keitimų šlamšto, prašome išspręsti šį CAPTCHA:

Atšaukti Kaip redaguoti (atsidaro naujame lange)

Šablonas, naudojami puslapyje: