Skocz do zawartości

haMac.pl używa cookie. Przeczytaj Privacy Policy aby dowiedzieć się więcej. Aby usunąć tę wiadomość, proszę kliknąć w przycisk po prawej:    Akceptuję użycie cookie

Zdjęcie
- - - - -

Kwestia mobilnych Inteli - natywna regulacja jasności dla Sierra 10.12.4 i nowszych

intel podświetlenie jasność regulacja AppleBacklight laptopy

  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 MKjanek32

MKjanek32
  • Moderators
  • 1942 postów
  • LocationMysłakowice / Wrocław

Napisano 26 czerwiec 2017 - 13:36

Witam wszystkich po przerwie (trochę tego zeszło, prawie cały semestr...) - i od razu zamieszczam krótki poradnik.

Otóż jak może wiecie, w wersji macOS Sierra 10.12.4 przestały działać dwa często stosowane na laptopach ze zintegrowanymi układami graficznymi Intela sposoby "popychania" regulacji podświetlenia ekranu - pierwszy wykorzystujący ACPIBacklight.kext, a drugi IntelBacklight.kext. Za to działa oczywiście w pełni natywna metoda, bazująca na systemowym sterowniku AppleBacklight.kext - tyle, że do jego prawidłowej pracy potrzebna jest odpowiednie skonfigurowanie systemu. I tym właśnie zajmiemy się w tym poradniku.

:arrow: 1. Modyfikacja DSDT

Pierwszą potrzebną rzeczą jest specjalna wersja poprawki PNLF w DSDT. Z klasyczną wersją wprawdzie regulacja też działa, ale w pełnym dostępnym zakresie dopiero po wybudzeniu z uśpienia - wcześniej ekran jest lekko przyciemniony, mimo ustawienia jasności na maksimum.
Otwieramy więc w ulubionym edytorze nasze DSDT i zaczynamy od zmiany nazwy zintegrowanego układu graficznego (i wszystkich odwołań do niego) na IGPU. Sekcja integry znajduje się wewnątrz Device (PCI0) i posiada adres 0x00020000. W zależności od laptopa może się nazywać różnie, najczęściej Device (GFX0) albo Device (VID). Czasami (na przykład na moim ThinkPadzie) urządzenie VID może występować dwa razy: jedno dla zintegrowanej karty, drugie pod portem dla ewentualnej dedykowanej - nawet w modelu z samą zintegrowaną. Wtedy oczywiście wystarczy zmienić nazwę tylko tego pierwszego.

 

Następnie wewnątrz sekcji IGPU (na przykład przed zamykającym nawiasem klamrowym) dodajemy taki fragment kodu:

        OperationRegion (RMPC, PCI_Config, 0x10, 4)
        Field (RMPC, AnyAcc, NoLock, Preserve)
        {
          BAR1,32,
        }
               Device (PNLF)
        {
          // normal PNLF declares (note some of this probably not necessary)
          Name (_ADR, Zero)
          Name (_HID, EisaId ("APP0002"))
          Name (_CID, "backlight")
          Name (_UID, 10)
          Name (_STA, 0x0B)
          //define hardware register access for brightness
          // you can see BAR1 value in RW-Everything under Bus00,02 Intel VGA controler PCI
          // Note: Not sure which one is right here... for now, going with BAR1 masked
          //OperationRegion (BRIT, SystemMemory, Subtract(^BAR1, 4), 0xe1184)
          OperationRegion (BRIT, SystemMemory, And(^BAR1, Not(0xF)), 0xe1184)
          Field (BRIT, AnyAcc, Lock, Preserve)
          {
              Offset(0x48250),
              LEV2, 32,
              LEVL, 32,
              Offset(0x70040),
              P0BL, 32,
              Offset(0xc8250),
              LEVW, 32,
              LEVX, 32,
              Offset(0xe1180),
              PCHL, 32,
          }
          // _INI deals with differences between native setting and desired
          Method (_INI, 0, NotSerialized)
          {
              Store(ShiftRight(LEVX,16), Local1)
              if (LNotEqual(0x710, Local1))
              {
                  Divide(Multiply(LEVL, 0x710), Local1,, Local0)
                  //Store(P0BL, Local1)
                  //While(LEqual (P0BL, Local1)) {}
                  Store(Local0, LEVL)
                  Store(0x7100000, LEVX)
              }
          }
        }

:!: UWAGA: jeżeli wcześniej dopisywaliśmy inną wersję poprawki PNLF, klasyczną lub dla ACPIBacklight.kext - należy ją oczywiście najpierw usunąć

Kompilujemy i wrzucamy plik DSDT.aml do odpowiedniego katalogu Clovera.

 

:arrow: 2. Binpatch AppleBacklight.kext w Cloverze
W kolejnym kroku dodajemy do naszego config.plist w sekcji KernelAndKextPatches -> KextsToPatch następujący binpatch:

      <dict>
        <key>Comment</key>
        <string>change F%uT%04x to F%uTxxxx in AppleBacklightInjector.kext (credit RehabMan)</string>
        <key>Name</key>
        <string>com.apple.driver.AppleBacklight</string>
        <key>Find</key>
        <data>RiV1VCUwNHgA</data>
        <key>Replace</key>
        <data>RiV1VHh4eHgA</data>
      </dict>

:arrow: 3. AppleBacklightInjector.kext
Na koniec pobieramy z załącznika i instalujemy AppleBacklightInjector.kext w katalogu Clovera z kextami lub w /S/L/E. Jeżeli mamy któryś z poprzednich kextów (ACPIBacklight.kext lub IntelBacklight.kext) - musimy go oczywiście usunąć.

Restartujemy system - i regulacja podświetlenia powinna działać. Pomiędzy kolejnymi uruchomieniami systemu ustawienia podświetlenia są przechowywane NVRAM - więc jeżeli mają być pamiętane, odczyt i zapis do NVRAM musi działać u nas prawidłowo.

W razie wątpliwości czy problemów, pomocne może okazać się przejrzenie wątku z oryginalnym tutorialem RehabMana, na wszelki wypadek podaję link:
https://www.tonymacx...or-kext.218222/

Załączone pliki


Izerpad2: Lenovo ThinkPad T420 - macOS 10.12.5 | Intel Core i5-2520M 2,5 GHz | 4GB DDR3 | Intel HD 3000 | Intel QM67 | Conexant CX20672 | Broadcom BCM4322 | Intel 82579LM
Wcześniej: Lenovo ThinkPad T61 - Mac OS X 10.6.8 | Intel Core 2 Duo T7300 2 GHz | 2GB DDR2 | GMA X3100 | ICH8-M | SoundMAX AD1984 | Atheros AR5BXB6 | Intel 82566MM
FlagaPL.gif Piszę poprawnie po polsku! | Legacy kext dla kart Atheros | LegacyHDA AD1984 | Regulacja podświetlenia dla kart Intel


#2 razor1995

razor1995
  • Members
  • 39 postów

Napisano 27 czerwiec 2017 - 21:23

Wyciągnąłem sobie DSDT z dumpu Clovera, ale przy kompilacji sypie błędami (nie da rady zrobić screena :( ). Mógłby ktoś sprawdzić ten DSDT?

Patched:

 
Clean:

PC: Intel Core i5 2400S @2.5GHz + SilentiumPC SpartanPro | Gateway DT71 | nVidia GT640 2GB | 8 GB RAM Kingston| Patriot Blaze SSD 120 GB | Seagate ST2000DM001 HDD 2TB | MacOS Sierra 10.12.6
Laptop: Lenovo IdeaPad Y580 | Intel Core i7 3630QM @ 3.4 GHz| nVidia GeForce GTX660M | 16GB RAM Kingston | Kingston mSATA 128GB | HGST 7k-500 1TB | MacOS Sierra 10.12.6 i Windows 10 1703
Serwer:HP Thin T610 | AMD G-T56N @ 1.65GHz | Radeon HD 6320 | 6GB RAM Kingston | HGST 500GB + Seagate 2TB | Debian 9 Testing x64
Japko: Apple iPhone SE | Apple A9 @1.85 GHz | PowerVR GT7600 | 2GB RAM | 128GB PAMIĘCI | iOS 11.1

"Niestety, ludzie nie buntują się przeciwko Microsoftowi. Nie znają niczego lepszego." - Steve Jobs     






Również z jednym lub większą ilością słów kluczowych: intel, podświetlenie, jasność, regulacja, AppleBacklight, laptopy

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych