PolishApple Opublikowano 30 Października 2015 Zgłoś Udostępnij Opublikowano 30 Października 2015 Odpalanie HD4400/HD4600 Mobile 1. FakeID #HD4600 Mobile: FakeID - stosujemy poprawkę do Clover'a lub do DSDT/SSDTClover: <key>Devices</key> <dict> <key>FakeID</key> <dict> <key>IntelGFX</key> <string>0x04128086</string> DSDT/SSDT - gotowa poprawka do użycia z maciasl.app: into method label _DSM parent_adr 0x00020000 remove_entry; into device name_adr 0x00020000 insert begin Method (_DSM, 4, NotSerialized)\n {\n If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n Return (Package()\n {\n "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 },\n "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a },\n "hda-gfx", Buffer() { "onboard-1" },\n "model", Buffer() { "Intel HD 4600" },\n })\n }\n end; #HD4400 Mobile: FakeID - stosujemy poprawkę do Clover'a lub do DSDT/SSDTClover: <key>Devices</key> <dict> <key>FakeID</key> <dict> <key>IntelGFX</key> <string>0x04128086</string> DSDT/SSDT - gotowa poprawka do użycia z maciasl.app: into method label _DSM parent_adr 0x00020000 remove_entry; into device name_adr 0x00020000 insert begin Method (_DSM, 4, NotSerialized)\n {\n If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n Return (Package()\n {\n "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 },\n "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a },\n "hda-gfx", Buffer() { "onboard-1" },\n "model", Buffer() { "Intel HD 4400" },\n })\n }\n end; Fix dla problemów z wyświetlaniem menu bar'a :> - problem nie występuje zawsze!!! Dodajemy go do config.plist, sekcja KextToPatch <dict> <key>Name</key> <string>AppleIntelFramebufferAzul</string> <key>Comment</key> <string>0x0a260006 9MB cursor bytes patch</string> <key>Find</key> <string>0600260a01030303000000020000300100006000</string> <key>Replace</key> <string>0600260a01030303000000020000300100009000</string> </dict> #Inny sposób :> Jeśli straszne jest nam dodawanie poprawek FakeID do Clover'a lub DSDT/SSDT możemy użyć kexta który doda FakeID za nas:> https://bitbucket.org/RehabMan/os-x-fake-pci-id/downloads Po rozpakowaniu paczki wchodzimy w ~/Release i kopiujemy: - FakePCIID_HD4600_HD4400.kext - FakePCIID.kext do S/L/E lub folderu kexts Clover'a (przypomnienie dla osób używających folderu OEM by kexty wrzucić tam, a nie do głównego folderu) 2. Injekcja - do Clover'a <key>Graphics</key> <dict> <key>Inject</key> <dict> <key>Intel</key> <true/> </dict> <key>ig-platform-id</key> <string>0x0a260006</string> Zmiana nazwy w DSDT oraz SSDT Aby uzyskać pełny PM, a tym samym wydłużyć czas pracy na baterii (AGPM) należy przemianować istniejące wpisy na IGPU. #Zależnie od obecnego nazewnictwa należy wybrać odpowiednią poprawkę: GFX0 - https://github.com/RehabMan/Laptop-DSDT-Patch/blob/master/graphics/graphics_Rename-PCI0_GFX0.txt VID - https://github.com/RehabMan/Laptop-DSDT-Patch/blob/master/graphics/graphics_Rename-PCI0_VID.txt Patch stosujemy w DSDT oraz SSDTxx!!! Kontrola jasności - gotowy patch do użycia z maciasl.app Dodajemy go do DSDT/SSDT (należy ustalić gdzie znajduje się sekcja naszej grafiki) + Intelbacklight.kext https://github.com/RehabMan/OS-X-Intel-Backlight #Maintained by: RehabMan for: Laptop Patches #graphics_PNLF_haswell.txt # Note: This patch should be applied to the DSDT or SSDT that defines # your integrated graphics device (always at _ADR 0x00020000) # # This patch works for both Haswell and Broadwell graphics # into_all device label PNLF remove_entry; into_all device name_adr 0x00020000 code_regex (OperationRegion\s\(RMPC,\sPCI_Config[^\}]*\}) remove_matched; into device name_adr 0x00020000 insert begin OperationRegion (RMPC, PCI_Config, 0x10, 4)\n Field (RMPC, AnyAcc, NoLock, Preserve)\n {\n BAR1,32,\n }\n Device (PNLF)\n {\n // normal PNLF declares (note some of this probably not necessary)\n Name (_ADR, Zero)\n Name (_HID, EisaId ("APP0002"))\n Name (_CID, "backlight")\n Name (_UID, 15)\n Name (_STA, 0x0B)\n //define hardware register access for brightness\n // lower nibble of BAR1 is status bits and not part of the address\n OperationRegion (BRIT, SystemMemory, And(^BAR1, Not(0xF)), 0xe1184)\n Field (BRIT, AnyAcc, Lock, Preserve)\n {\n Offset(0x48250),\n LEV2, 32,\n LEVL, 32,\n Offset(0x70040),\n P0BL, 32,\n Offset(0xc8250),\n LEVW, 32,\n LEVX, 32,\n Offset(0xe1180),\n PCHL, 32,\n }\n // LMAX: use 0xad9/0x56c/0x5db to force OS X value\n // or use any arbitrary value\n // or use 0 to capture BIOS setting\n Name (LMAX, 0xad9)\n // KMAX: defines the unscaled range in the _BCL table below\n Name (KMAX, 0xad9)\n // _INI deals with differences between native setting and desired\n Method (_INI, 0, NotSerialized)\n {\n // This 0xC value comes from looking what OS X initializes this\n // register to after display sleep (using ACPIDebug/ACPIPoller)\n Store(0xC0000000, LEVW)\n // determine LMAX to use\n If (LNot(LMAX)) { Store(ShiftRight(LEVX,16), LMAX) }\n If (LNot(LMAX)) { Store(KMAX, LMAX) }\n If (LNotEqual(LMAX, KMAX))\n {\n // Scale all the values in _BCL to the PWM max in use\n Store(0, Local0)\n While (LLess(Local0, SizeOf(_BCL)))\n {\n Store(DerefOf(Index(_BCL,Local0)), Local1)\n Divide(Multiply(Local1,LMAX), KMAX,, Local1)\n Store(Local1, Index(_BCL,Local0))\n Increment(Local0)\n }\n // Also scale XRGL and XRGH values\n Divide(Multiply(XRGL,LMAX), KMAX,, XRGL)\n Divide(Multiply(XRGH,LMAX), KMAX,, XRGH)\n }\n // adjust values to desired LMAX\n Store(ShiftRight(LEVX,16), Local1)\n If (LNotEqual(Local1, LMAX))\n {\n Store(And(LEVX,0xFFFF), Local0)\n If (LOr(LNot(Local0),LNot(Local1))) { Store(LMAX, Local0) Store(LMAX, Local1) }\n Divide(Multiply(Local0,LMAX), Local1,, Local0)\n //REVIEW: wait for vblank before setting new PWM config\n //Store(P0BL, Local7)\n //While (LEqual (P0BL, Local7)) {}\n Store(Or(Local0,ShiftLeft(LMAX,16)), LEVX)\n }\n }\n // _BCM/_BQC: set/get for brightness level\n Method (_BCM, 1, NotSerialized)\n {\n // store new backlight level\n Store(Match(_BCL, MGE, Arg0, MTR, 0, 2), Local0)\n If (LEqual(Local0, Ones)) { Subtract(SizeOf(_BCL), 1, Local0) }\n Store(Or(DerefOf(Index(_BCL,Local0)),ShiftLeft(LMAX,16)), LEVX)\n }\n Method (_BQC, 0, NotSerialized)\n {\n Store(Match(_BCL, MGE, And(LEVX, 0xFFFF), MTR, 0, 2), Local0)\n If (LEqual(Local0, Ones)) { Subtract(SizeOf(_BCL), 1, Local0) }\n Return(DerefOf(Index(_BCL, Local0)))\n }\n Method (_DOS, 1, NotSerialized)\n {\n // Note: Some systems have this defined in DSDT, so uncomment\n // the next line if that is the case.\n //External(^^_DOS, MethodObj)\n ^^_DOS(Arg0)\n }\n // extended _BCM/_BQC for setting "in between" levels\n Method (XBCM, 1, NotSerialized)\n {\n // store new backlight level\n If (LGreater(Arg0, XRGH)) { Store(XRGH, Arg0) }\n If (LAnd(Arg0, LLess(Arg0, XRGL))) { Store(XRGL, Arg0) }\n Store(Or(Arg0,ShiftLeft(LMAX,16)), LEVX)\n }\n Method (XBQC, 0, NotSerialized)\n {\n Store(And(LEVX,0xFFFF), Local0)\n If (LGreater(Local0, XRGH)) { Store(XRGH, Local0) }\n If (LAnd(Local0, LLess(Local0, XRGL))) { Store(XRGL, Local0) }\n Return(Local0)\n }\n // Set XOPT bit 0 to disable smooth transitions\n // Set XOPT bit 1 to wait for native BacklightHandler\n // Set XOPT bit 2 to force use of native BacklightHandler\n Name (XOPT, 0x02)\n // XRGL/XRGH: defines the valid range\n Name (XRGL, 25)\n Name (XRGH, 2777)\n // _BCL: returns list of valid brightness levels\n // first two entries describe ac/battery power levels\n Name (_BCL, Package()\n {\n 2777,\n 748,\n 0,\n 35, 39, 44, 50,\n 58, 67, 77, 88,\n 101, 115, 130, 147,\n 165, 184, 204, 226,\n 249, 273, 299, 326,\n 354, 383, 414, 446,\n 479, 514, 549, 587,\n 625, 665, 706, 748,\n 791, 836, 882, 930,\n 978, 1028, 1079, 1132,\n 1186, 1241, 1297, 1355,\n 1414, 1474, 1535, 1598,\n 1662, 1728, 1794, 1862,\n 1931, 2002, 2074, 2147,\n 2221, 2296, 2373, 2452,\n 2531, 2612, 2694, 2777,\n })\n }\n end; Rozwiązywanie problemów: Dodajemy do Clover'a w sekcji KextToPatch #Zniekształcony obraz podczas przejścia z boot do pulpitu <dict> <key>Comment</key> <string>Boot graphics glitch, 10.10.x/10.11.x (credit lisai9093, cecekpawon)</string> <key>Find</key> <data>AQAAdRc=</data> <key>Name</key> <string>IOGraphicsFamily</string> <key>Replace</key> <data>AQAA6xc=</data> </dict> Poradnik oparty o: -https://github.com/RehabMan/OS-X-Clover-Laptop-Config -http://www.tonymacx86.com/yosemite-laptop-support/145427-fix-intel-hd4200-hd4400-hd4600-mobile-yosemite.html nowy_, MKjanek32 i wujek_bogdan 3 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PolishApple Opublikowano 30 Października 2015 Autor Zgłoś Udostępnij Opublikowano 30 Października 2015 Rezerwacja Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MKjanek32 Opublikowano 30 Października 2015 Zgłoś Udostępnij Opublikowano 30 Października 2015 Dzięki, przykleiłem. Mam od razu pytanie: Aby uzyskać pełny PM, a tym samym wydłużyć czas pracy na baterii (AGPM) należy przemianować istniejące wpisy na IGPU. Jakieś źródło/obserwacja? To dotyczy tylko HD 4400/HD 4600, czy starszych też? U mnie (HD 3000) karta jest w DSDT jako VID i mam wrażenie, że AGPM jest. I teraz nie wiem, czy powinienem zmieniać nazwę... Aha, i ten patch na regulację podświetlenia to jakiś specjalny dla Haswell/Broadwell, nie wymagający dodatkowo kexta? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.