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

Rozpoznawanie stanu baterii


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

#1 Astarael

Astarael
  • R.E.D.
  • 1672 postów

Napisano 25 luty 2012 - 20:26

Jak niektórzy pewnie zauważyli, w Mac OS X 10.7.x Apple dokonało pewnych wewnętrznych zmian, przez które sprawdzony kext AppleACPIBatteryManager przestał działać. Problem można było obejść, przywracając kexty ze Snow Leoparda, jednak nie wszystkich takie połowiczne rozwiązanie zadowala, zwłaszcza że rollback trzeba wykonywać po każdej aktualizacji systemu.

Problem tkwi w DSDT, dokładniej w sekcji urządzenia EC. Lion pobiera informacje o statusie baterii w porcjach ośmiobitowych, zaś w większości laptopów dane te są przechowywane w polach szesnastobitowych. Efekt? Przekreślona ikona baterii lub jej zupełny brak - nieważne, czy używamy AppleACPIBattery czy VoodooBattery. Na szczęście ktoś mądry stworzył kext kombatybilny z Lionem. Na nieszczęście trzeba modyfikować DSDT, żeby kext ten zadziałał, dokładniej trzeba podzielić większe pola na fragmenty po 8 bitów każdy, żeby nasze DSDT nie kłóciło się z nową filozofią Liona. Modyfikacja, choć czasochłonna, jest naprawdę prosta.

Na początku w DefinitionBlock (zaraz po pierwszej klamrze otwierającej) dodajemy metody, które wykorzystamy później:
	//Metody na użytek rozpoznawania statusu bateryjki
Method (B1B2, 2, NotSerialized)
{
Or (ShiftLeft(Arg1,0x08), Arg0, Local0)
Return (Local0)
} //pola 16-bitowe

Method (B1B4, 4, NotSerialized)
{
Or (ShiftLeft(Arg1,0x08), Arg0, Local0)
Or (ShiftLeft(Arg2,0x10), Local0, Local0)
Or (ShiftLeft(Arg3,0x18), Local0, Local0)
Return (Local0)
} //pola 32-bitowe

Method (L1L4, 4, NotSerialized)//32*4=128
{
Or (ShiftLeft(Arg1,0x20), Arg0, Local0)
Or (ShiftLeft(Arg2,0x40), Local0, Local0)
Or (ShiftLeft(Arg3,0x60), Local0, Local0)
Return (Local0)
}//pola 128-bitowe
Następnie oszukujemy w DSDT sekcję urządzenia EC (Device (EC) - może się ona nazywać różnie, np. EC0, H_EC itp. Zwykle znajduje się wewnątrz sekcji LPC. Następnie przewijamy w dół aż natrafimy na coś, co wygląda m/w tak:
                    OperationRegion (ECR, EmbeddedControl, 0x00, 0xFF) 
Field (ECR, ByteAcc, Lock, Preserve)
{
Offset (0x18),
SPTR, 8,
SSTS, 8,
SADR, 8,
...
Przy czym nazwy pól ani nazwa sekcji wcale nie muszą się pokrywać z powyższym przykładem!
Teraz należy każde pole 16-bitowe zmienić na dwa pola 8-bitowe, każde 32-bitowe na cztery 8-bitowe, a 128-bitowe na 16(!) 8-bitowych. Poniżej przykłady dokonywanych zmian.

Pole 16-bitowe
	SBTI,   16,
zastępujemy
	BTI0,    8,
BTI1, 8,

Pole 32-bitowe
	B1AF,   32,
zastępujemy
	BAF0,	8,
BAF1, 8,
BAF2, 8,
BAF3, 8,

Pole 128-bitowe
	SBMN,    128,
	BMN0,   8, 
BMN1, 8,
BMN2, 8,
BMN3, 8,
BMN4, 8,
BMN5, 8,
BMN6, 8,
BMN7, 8,
BMN8, 8,
BMN9, 8,
BMNA, 8,
BMNB, 8,
BMNC, 8,
BMND, 8,
BMNE, 8,
BMNF, 8,

Nazewnictwo
Ponieważ specyfikacja ACPI nie pozwala na nazwy pól dłuższe niż cztery znaki, rozbijając dane pole, np. ABCD musimy zrobić miejsce dla indeksu i skasować którąś literę. W przykładzie dla 16 i 128 bitów zdecydowałem się na usunięcie pierwszej, co dla pola ABCD dałoby nam BCD + indeks. Indeks to po prostu cyfra rozróżniająca poszczególne fragmenty danego pola. Dla 16 bitów mamy BCD0 oraz BCD1 (komputery liczą od zera).

Dla pola 128-bitowego braknie nam "normalnych" cyfr do indeksowania, więc musimy wykorzystać również litery (lub jak kto woli – cyfry szesnastkowe). Gdybyśmy pole ABCD rozbili na 16 składowych, moglibyśmy nadać im następujące nazwy:
BCD0, BCD1, BCD2, BCD3, BCD3, BCD4, BCD5, BCD6, BCD7, BCD8, BCD9, BCDA, BCDB, BCDC, BCDD, BCDE, BCDF

Wyżej przytoczony przykład dla pola 32-bitowego jest nieco inny, ponieważ drugi znak w jego nazwie, to cyfra. Gdybyśmy po prostu usunęli pierwszy znak, zostałaby ona umieszczona na pierwszym miejscu, a taka nazwa pola mogłaby się nie spodobać kompilatorowi, dlatego też w tym przykładzie usunąłem właśnie ową cyfrę. Dla hipotetycznego pola 32-bitowego o nazwie A1BC podział mógłby wyglądać tak:
ABC0, ABC1, ABC2, ABC3
Co począć w sytuacji, gdy gdzieś dalej w kodzie pojawi się pole o niemalże identycznej nazwie, różniącej się tylko cyfrą, np. A2BC? Można po prostu "liczyć dalej", a więc przyjąć następujący podział:
ABC4, ABC5, ABC6, ABC7
Oczywiście można stosować właściwie dowolne nazewnictwo, jednakże pola muszą być rozróżnialne, to znaczy nazwy nie mogą się powtarzać - sugeruję każdorazowe sprawdzanie przed dokonaniem podziału - warto jest jednak przyjąć pewien w miarę konsekwentny schemat nadawania nazw, który ułatwi niepogubienie się ;)


Teraz trochę trudniejsza część: trzeba zmienić wszystkie odwołania do pól, bo inaczej nie dość, że bateria nie zadziała, to jeszcze DSDT się nie skompiluje :D Do tego posłużą nam dodane wcześniej metody.

Odwołania do pól 16-bitowych, np:
Store (SBTI, Local0)
zastępujemy
Store (B1B2(BTI0, BTI1), Local0)

Odwołania do pól 32-bitowych, np:
Store (B1AF, Local0)
zastępujemy
Store (B1B4(BAF0, BAF1, BAF2, BAF3), Local0)

Odwołania do pól 128-bitowych, np:
Store (SBMN, Local0)
zastępujemy
Store (L1L4 (B1B4 (BMN0, BMN1, BMN2, BMN3),
B1B4 (BMN4, BMN5, BMN6, BMN7),
B1B4 (BMN8, BMN9, BMNA, BMNB),
B1B4 (BMNC, BMND, BMNE, BMNF)), Local0)

Na koniec kompilujemy DSDT i umieszczamy je w stosownym miejscu (zwykle /Extra/) oraz instalujemy kext z załącznika pochodzący z forum pcbeta (najwygodniej za pomocą programu KextWizard). Jeszcze raz przypominam, że stary AppleACPIBatteryManager nie będzie działać, powyższa modyfikacja przeznaczona jest wyłącznie dla nowej wersji!

Korzystałem z tego tematu:
http://www.insanelymac.com/forum/index.php?showtopic=272459&st=0
Podziękowania:
oswaldini – za podlinkowanie w/w tematu na naszym forum, dokładniej tutaj
man_of_the_oak – za znalezienie AppleACPIBatteryManager, na którym nie występują opóźnienia po odłączeniu zasilacza
MietasSR - za przetestowanie DSDT zmodyfikowanego wg w/w metody na Mountain Lionie z pozytywnym skutkiem :D

Załączone pliki


Snow Leopard 10.6.8 Retail on Lenovo ThinkPad R61i 8932-FDG - This one is resting in peace now.
Lenovo ThinkPad Edge E420s 4401-6YG | Core i5-2430M | HM65 | Intel HD 3000 | Conexant CX20590 | Realtek RTL8111/8168B | Intel Centrino 1000
MacBook Pro 13" Mid 2012 Intel Core i5 | HD 4000 | Wszystko działa OTB!
Dołączona grafika Piszę poprawnie po polsku!

#2 MKjanek32

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

Napisano 25 luty 2012 - 22:48

Należy w ten sposób zamienić wszystkie sekcje z rejestrami, czy tylko jakąś konkretną? Na przykład ja mam coś takiego (zaraz za Device (EC)):
                    OperationRegion (ECOR, EmbeddedControl, 0x00, 0x0100) 
Field (ECOR, ByteAcc, NoLock, Preserve)
{
HDBM, 1,
, 1,
, 1,
...
Offset (0xB0),
HDEN, 32,
HDEP, 32,
HDEM, 8,
HDES, 8,
...
Offset (0xED),
, 4,
HDDD, 1
}

Kilkadziesiąt linijek dalej mam np. takie sekcje:
                    Method (_Q25, 0, NotSerialized) 
{
If (And (^BAT1.B1ST, ^BAT1.XB1S))
{
CLPM ()
Notify (BAT1, 0x80)
}
}

Field (ECOR, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
SBRC, 16,
...
SBBS, 16
}

Field (ECOR, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
, 15,
SBCM, 1,
SBMD, 16,
SBCC, 16
}

Field (ECOR, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
SBDC, 16,
...
SBSN, 16
}

Field (ECOR, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
SBCH, 32
}

Field (ECOR, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
SBMN, 128
}

Field (ECOR, ByteAcc, NoLock, Preserve)
{
Offset (0xA0),
SBDN, 128
}

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


#3 michciu94

michciu94
  • Members
  • 75 postów

Napisano 25 luty 2012 - 23:47

Masakra, przecież to bite 2-3 godziny roboty non stop, ale łatwe do zrobienia - ciekawe czy działa :D

#4 MietasSR

MietasSR
  • Members
  • 1245 postów

Napisano 26 luty 2012 - 00:27

Potwierdzam - działa na 10.8 DP1 :) Co prawda łatka robiona przez @Astarael, za co mu jestem bardzo wdzięczny.

Asus P8Z77-V LX | Celeron G550 2.6GHz | 4GB DDR3 | 320GB HDD | GeForce G210 1GB | SB Live! 5.1 | OS X Yosemite DP1/Win8.1 Eval

FlagaPL.gifPiszę poprawnie po polsku!


#5 karolp1993

karolp1993
  • Members
  • 56 postów

Napisano 27 luty 2012 - 16:00

A co jeśli ktoś nie ma tej sekcji? U siebie nie mogę jej znaleść..
EDIT:
Zainstalowałem tego kexta:
http://www.osx86.net/view/1384-voodoobattery_lion.html
I działa ok ;)

 10.7.3 / Toshiba L650 / i5-480M / 2x2GB 1066MHz / HD Mobility 5650 / HDD Seagate 500GB / TP-LINK TD-W8960N  tutaj
FlagaPL.gif Piszę poprawnie po polsku! 


#6 oswaldini

oswaldini
  • Moderators
  • 10749 postów
  • LocationBrzeszcze / Kraków

Napisano 27 luty 2012 - 16:49

Zrobiłeś rollback kexta z 10.6.7 aby zadziałała bateria. Modyfikacja DSDT eliminuje konieczność rollbacka.

MacBook Pro 2012 MD103 15" | i7-3615QM | 8 GB RAM | HD4000 + GT650M | Samsung 830 256 GB
Hack Gigabyte H81N | i5-4460 | 8 GB RAM | HD4600 | 2x mSATA SSD 32GB RAID0 (64GB) + SSHD 500 GB | Raijintek Metis | SFX-L 500W | WiFi

HomeSerwer: HP G7 N54L | 2.2GHz (800-2200Mhz) | 4GB RAM | 2x WD RED 2TB | Synology DSM 6.0.2 @ Jun's bootloader | Time Machine + PLEX + CouchPotato + SickRage + masa innych

iPhone 7 32GB Black
FlagaPL.gif Piszę poprawnie po polsku! | CloverEFI | Nie pomagam na PRIV


#7 Astarael

Astarael
  • R.E.D.
  • 1672 postów

Napisano 27 luty 2012 - 17:31

Masakra, przecież to bite 2-3 godziny roboty non stop, ale łatwe do zrobienia - ciekawe czy działa :D

Trochę przejaskrawiasz, ale istotnie - sporo roboty. Tyle dobrego, że nie do wszystkich pól są odwołania ;)

Należy w ten sposób zamienić wszystkie sekcje z rejestrami, czy tylko jakąś konkretną? Na przykład ja mam coś takiego (zaraz za Device (EC)):

Zmieniasz wszystkie sekcje z rejestrami wewnątrz EC. Jak testowałem moda u siebie, niechcący jedną pominąłem. Zgadnij, co się stało... Śliczne kp!
Snow Leopard 10.6.8 Retail on Lenovo ThinkPad R61i 8932-FDG - This one is resting in peace now.
Lenovo ThinkPad Edge E420s 4401-6YG | Core i5-2430M | HM65 | Intel HD 3000 | Conexant CX20590 | Realtek RTL8111/8168B | Intel Centrino 1000
MacBook Pro 13" Mid 2012 Intel Core i5 | HD 4000 | Wszystko działa OTB!
Dołączona grafika Piszę poprawnie po polsku!

#8 karolp1993

karolp1993
  • Members
  • 56 postów

Napisano 27 luty 2012 - 17:54

To ponawiam pytanie. Co jeśli ktoś nie ma "Device (EC)" ? Nie mogę znaleść tego u siebie, tak samo jak DTGP, ale to inny temat..

 10.7.3 / Toshiba L650 / i5-480M / 2x2GB 1066MHz / HD Mobility 5650 / HDD Seagate 500GB / TP-LINK TD-W8960N  tutaj
FlagaPL.gif Piszę poprawnie po polsku! 


#9 oswaldini

oswaldini
  • Moderators
  • 10749 postów
  • LocationBrzeszcze / Kraków

Napisano 27 luty 2012 - 18:28

Co jeśli ktoś nie ma "Device (EC)"

To występuje pod inną nazwą. Patrz tutek.

Nie mogę znaleść tego u siebie, tak samo jak DTGP

Życzę powodzenia w szukaniu... Tego standardowo nie ma, tą sekcję się dodaje samemu ! Patrz tutki o DSDT, podstawowe modyfikacje.

MacBook Pro 2012 MD103 15" | i7-3615QM | 8 GB RAM | HD4000 + GT650M | Samsung 830 256 GB
Hack Gigabyte H81N | i5-4460 | 8 GB RAM | HD4600 | 2x mSATA SSD 32GB RAID0 (64GB) + SSHD 500 GB | Raijintek Metis | SFX-L 500W | WiFi

HomeSerwer: HP G7 N54L | 2.2GHz (800-2200Mhz) | 4GB RAM | 2x WD RED 2TB | Synology DSM 6.0.2 @ Jun's bootloader | Time Machine + PLEX + CouchPotato + SickRage + masa innych

iPhone 7 32GB Black
FlagaPL.gif Piszę poprawnie po polsku! | CloverEFI | Nie pomagam na PRIV


#10 sinoseven

sinoseven
  • Members
  • 121 postów

Napisano 18 marzec 2012 - 16:34

Postanowiłem się za to zabrać aby już nie robić rollbacka szczególnie, że DP2 z kextem z 10.6.7 jakoś długo się uruchamia a z oryginalnym o wiele lepiej. Mam małe pytanie odnośnie tej modyfikacji :


...
SPTR, 8,
SSTS, 8,
SADR, 8,
SCMD, 8,
SBFR, 256,
SCNT, 8,
...

Jak zmodyfikować SBFR ? Jak widać ma wartość 256, mam z tego zrobić 32 sekcje po 8 ? Czy może modyfikacja ogranicza się tylko do 16,32,64 i 128 ?
 SamHaMac
Samsung r580 | Core i3 330M | NVIDIA GeForce 310M - 512 | Intel Ibex Peak-M HM55 |

#11 oswaldini

oswaldini
  • Moderators
  • 10749 postów
  • LocationBrzeszcze / Kraków

Napisano 18 marzec 2012 - 17:30

Tak jak w instrukcji w pierwszym poście. Rany julek ludzie czytać.

dokładniej trzeba podzielić większe pola na fragmenty po 8 bitów każdy

256/8 = 32 - czyli z jednej sekcji 256 bitów musisz zrobić 32 sekcje po 8 bitów.

MacBook Pro 2012 MD103 15" | i7-3615QM | 8 GB RAM | HD4000 + GT650M | Samsung 830 256 GB
Hack Gigabyte H81N | i5-4460 | 8 GB RAM | HD4600 | 2x mSATA SSD 32GB RAID0 (64GB) + SSHD 500 GB | Raijintek Metis | SFX-L 500W | WiFi

HomeSerwer: HP G7 N54L | 2.2GHz (800-2200Mhz) | 4GB RAM | 2x WD RED 2TB | Synology DSM 6.0.2 @ Jun's bootloader | Time Machine + PLEX + CouchPotato + SickRage + masa innych

iPhone 7 32GB Black
FlagaPL.gif Piszę poprawnie po polsku! | CloverEFI | Nie pomagam na PRIV


#12 sinoseven

sinoseven
  • Members
  • 121 postów

Napisano 18 marzec 2012 - 19:08

Rany julek ludzie czytać.


Ehh.. Rany julek :) czytam i to dokładnie. W sekcji którą dodaje się zaraz po DefinitionBlock nie ma kodu dla wartości 256bit. Dlatego zadałem pytanie o konieczność dzielenia tej wartości na 8 tym samym proponując rozwiązanie które Ty potwierdziłeś więc : 1. Czytam. 2. Pytam aby się upewnić.

Poległem na 2 liniach - nie mam pojęcia jak je zmodyfikować :

If (LNotEqual (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC))

Nie ma już B1DF bo jak wiadomo wartość została rozbita na BDF0 i BDF1

Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC)

Ta sama sytuacja...
 SamHaMac
Samsung r580 | Core i3 330M | NVIDIA GeForce 310M - 512 | Intel Ibex Peak-M HM55 |

#13 Astarael

Astarael
  • R.E.D.
  • 1672 postów

Napisano 18 marzec 2012 - 19:35

W sekcji którą dodaje się zaraz po DefinitionBlock nie ma kodu dla wartości 256bit.

To dlatego, że na 99% do pola 256-bitowego, nawet jeśli takowe wystąpi w DSDT, nie ma nigdzie odwołań. Sprawdź, czy ta nazwa jest gdzieś używana, ale obstawiam, że nie jest.

Poległem na 2 liniach - nie mam pojęcia jak je zmodyfikować :

Nie wiem, w czym masz problem... zastąp odwołanie do pola wywołaniem odpowiedniej metody i po krzyku.
Snow Leopard 10.6.8 Retail on Lenovo ThinkPad R61i 8932-FDG - This one is resting in peace now.
Lenovo ThinkPad Edge E420s 4401-6YG | Core i5-2430M | HM65 | Intel HD 3000 | Conexant CX20590 | Realtek RTL8111/8168B | Intel Centrino 1000
MacBook Pro 13" Mid 2012 Intel Core i5 | HD 4000 | Wszystko działa OTB!
Dołączona grafika Piszę poprawnie po polsku!

#14 sinoseven

sinoseven
  • Members
  • 121 postów

Napisano 18 marzec 2012 - 19:46

1. Nie rozbijałem tej wartości 256bitowej - zostawiłem jak była. (brak odwołań)
2.
If (LNotEqual (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC))
=
If (LNotEqual (B1B2 (\_SB.PCI0.LPCB.H_EC.BDF0, \_SB.PCI0.LPCB.H_EC.BDF1), \_SB.BFCC))
3.
Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC)
=
Store (B1B2 (\_SB.PCI0.LPCB.H_EC.BDF0, \_SB.PCI0.LPCB.H_EC.BDF1), \_SB.BFCC)
4. Bateria działa jak marzenie :) Lion oraz M. Lion DP2 - Dzięki za pomoc i poradnik !!

[ Komentarz dodany przez: 314TeR: 2012-03-19, 10:52 ]
Tak będzie czytelniej, a przy okazji będzie dobry przykład jak modyfikować kod.
 SamHaMac
Samsung r580 | Core i3 330M | NVIDIA GeForce 310M - 512 | Intel Ibex Peak-M HM55 |

#15 Ravven

Ravven
  • Members
  • 140 postów
  • LocationWarszawa

Napisano 16 lipiec 2012 - 20:06

Ja także pisze w związku z wartościami 256. Mam takie dwie w moim urządzeniu EC0 i obie mają późniejsze odwołania w DSDT.

Jak w takim razie dodać je poprawnie?

Mac OS X Yosemite 10.10.5 - ASUS X73SV-TY424V || i7-2670QM | HM65 | 2x4GB 1333MHz | Intel HD Graphics 3000 + GeForce GT 540M (Optimus) | ALC269 | AR8151 | AR9002WB-1NG (AR5B195 combo / AR9285 + AR3011) |
Mac OS X SL 10.6.8 - COMPAL FL90 || c2d-T71000 | ICH8M | 2x2GB 600MHz | GeForce 8600M GT | ALC268 | BCM5787 | BCM94311MCG |  \\ R.I.P. \\


#16 Astarael

Astarael
  • R.E.D.
  • 1672 postów

Napisano 17 lipiec 2012 - 05:41

Spróbuj dodaj jeszcze jedną metodę, np:
    Method (D1D2, 2, NotSerialized)//128*2=256
{
Or (ShiftLeft(Arg1,0x80), Arg0, Local0)
Return (Local0)
}//pola 128-bitowe
Jako argumenty musisz podać wynik L1L4, więc całe wywołanie będzie dość długie. Niemniej spróbować musisz, bo ja nie posiadam dostępu do OS X i sam tego sprawdzić nie mogę ;)
Snow Leopard 10.6.8 Retail on Lenovo ThinkPad R61i 8932-FDG - This one is resting in peace now.
Lenovo ThinkPad Edge E420s 4401-6YG | Core i5-2430M | HM65 | Intel HD 3000 | Conexant CX20590 | Realtek RTL8111/8168B | Intel Centrino 1000
MacBook Pro 13" Mid 2012 Intel Core i5 | HD 4000 | Wszystko działa OTB!
Dołączona grafika Piszę poprawnie po polsku!

#17 314TeR

314TeR

    Administrator

  • Administrators
  • 17010 postów
  • LocationWarszawa

Napisano 17 lipiec 2012 - 14:15

Ja także pisze w związku z wartościami 256. Mam takie dwie w moim urządzeniu EC0 i obie mają późniejsze odwołania w DSDT.

Jakie i dokąd te odwołania... być może nie mają znaczenia i je zwyczajnie zostaw nietknięte.

ASUS MAXIMUS VII IMPACT | Core i7-4790K | 16GB DDR3 2400 CL10 | GTX 980 Ti | FiiO E10 | OS X Retail via UniBootX Clover

ASUS Z87M-PLUS | Core i5-4590T | 8GB DDR3L 1333 | HD4600 | OS X Retail via UniBootX Cloverbyłe haMac'i: ASUS P5W DH DeluxeASUS P7P55 WS Supercomputer | ASUS P8Z68 Deluxe/GEN3 | ASUS P8Z77-V PRO THUNDERBOLTJak uruchomić na wypasie ALC 882/888/889/1200 | STOP Gigafail | P5W DH Deluxe - perfekcyjny hackintosh | Piszę poprawnie po polsku!

Co daje kalibracja monitora - zobacz jak można poprawić jakość obrazu.

 

Najszybszy hackintosh na świecie za procesorem 12C identyfikujący się jako Mac Pro (Late 2013) wg rankingu Geekbench: 37000 pkt

 

Pomogliśmy Tobie - pomóż nam - przekaż darowiznę na utrzymanie forum.

 


#18 barat

barat
  • Members
  • 214 postów

Napisano 20 październik 2012 - 18:01

A co zrobić w takim wypadku:
Offset (0x93), 
TAH0, 16,
TAH1, 16,
TSTP, 8,

MSI Z77A-G45 | i5 3570k@4.5GHz | 4x4GB Crucial Sport 1600MHz CL9 |Gigabyte GTX660 2GB | 256GB Crucial MX100 | 128SSD Crucial M4 na W8.1 | FiiO E10K | AirPort BCM94321MC w adapterze => HP LP2475w


#19 Astarael

Astarael
  • R.E.D.
  • 1672 postów

Napisano 20 październik 2012 - 18:40

Nazwy nie mają większego znaczenia, ważne, żeby miały cztery znaki i się nie pokrywały wewnątrz bloku. Równie dobrze mozesz podzielić TAH0 na ALA0 + MA00, a TAH1 na KOTY + DWA0
Snow Leopard 10.6.8 Retail on Lenovo ThinkPad R61i 8932-FDG - This one is resting in peace now.
Lenovo ThinkPad Edge E420s 4401-6YG | Core i5-2430M | HM65 | Intel HD 3000 | Conexant CX20590 | Realtek RTL8111/8168B | Intel Centrino 1000
MacBook Pro 13" Mid 2012 Intel Core i5 | HD 4000 | Wszystko działa OTB!
Dołączona grafika Piszę poprawnie po polsku!

#20 barat

barat
  • Members
  • 214 postów

Napisano 20 październik 2012 - 18:43

No to wszystko jasne :) Sobie wymyślę jakiś pattern i wyedytuję co trzeba :)

EDIT
Pierwszy KP za mną - na bank coś poknociłem. Niby plik się skompilował (kompilowałem przez Chameleon Wizzard) ale może coś zapomniałem :)
Sprawdziłem sobie, że XX** , XY** i XZ** nie są nigdzie w pliku używane, więc teraz polecę sobie XXA0,XXA1, XXB0, XXB1 itp :) W swoim DSDT mam tylko 16bit

 OperationRegion (ECOR, EmbeddedControl, Zero, 0xFF) 
Field (ECOR, ByteAcc, Lock, Preserve)
{
Offset (0x04),
CMD1, 8,
CDT1, 8,
CDT2, 8,
CDT3, 8,
Offset (0x80),
EPWS, 8,
EB0S, 8,
EB1S, 8,
EB0R, 8,
EB1R, 8,
EPWF, 8,
Offset (0x87),
EB0T, 8,
EB1T, 8,
Offset (0x8A),
HKEN, 1,
Offset (0x93),
TAH0, 16,
TAH1, 16,
TSTP, 8,
Offset (0x9C),
CDT4, 8,
CDT5, 8,
Offset (0xA0),
ECPU, 8,
ECRT, 8,
EPSV, 8,
EACT, 8,
TH1R, 8,
TH1L, 8,
TH0R, 8,
TH0L, 8,
Offset (0xB0),
B0PN, 16,
B0VL, 16,
B0RC, 16,
B0FC, 16,
B0MD, 16,
B0ST, 16,
B0CC, 16,
B0TM, 16,
B0C1, 16,
B0C2, 16,
B0C3, 16,
B0C4, 16,
Offset (0xD0),
B1PN, 16,
B1VL, 16,
B1RC, 16,
B1FC, 16,
B1MD, 16,
B1ST, 16,
B1CC, 16,
B1TM, 16,
B1C1, 16,
B1C2, 16,
B1C3, 16,
B1C4, 16,
Offset (0xF0),
B0DC, 16,
B0DV, 16,
B0SN, 16,
Offset (0xF8),
B1DC, 16,
B1DV, 16,
B1SN, 16
}
Mam rozumieć, że tylko te mam pozamieniać na 2 pary 8 bitowe a potem w każdym miejscu, gdzie te zmienne występują muszę je zastąpić funkcją?

EDIT2
Mam problem ... wcześniej jest napisane, że muszę wszystkie wartości w sekcji EC "zdegradować" do 8 bitowych.
Zatem zaraz pod sekcją przytoczoną poniżej mam to:


Name (SMBF, Zero)
OperationRegion (SMBX, EmbeddedControl, 0x18, 0x28)
Field (SMBX, ByteAcc, NoLock, Preserve)
{
PRTC, 8,
SSTS, 5,
, 1,
ALFG, 1,
CDFG, 1,
ADDR, 8,
CMDB, 8,
BDAT, 256,
BCNT, 8,
, 1,
ALAD, 7,
ALD0, 8,
ALD1, 8
}
Jest tu wartość 256bit ... niby jak nie ma odwołań w pliku to nie muszę nic zmieniać, ale ... u mnie ta zmienna występuje


Method (ASBR, 2, NotSerialized)
{
If (LLess (Arg1, 0x30))
{
Return (0x02)
}

OperationRegion (\F112, SystemMemory, Arg0, Arg1)
Field (F112, DWordAcc, NoLock, Preserve)
{
Offset (0x08),
BATN, 8,
BATA, 8,
REGS, 8,
BDAT, 16,
BLEN, 8,


If (LEqual (BATA, Zero))
{
Store (^^PCI0.SBRG.EC0.SMBR (^^PCI0.SBRG.EC0.RDWD, ^^PCI0.SBRG.EC0.BADR, REGS), Local0)
Store (DerefOf (Index (Local0, 0x02)), BDAT)


If (LEqual (BATA, One))
{
Store (^^PCI0.SBRG.EC0.SMBW (^^PCI0.SBRG.EC0.WRWD, ^^PCI0.SBRG.EC0.BADR, REGS, 0x02, BDAT), Local0)


Field (F113, DWordAcc, NoLock, Preserve)
{
Offset (0x08),
BATN, 8,
BATA, 8,
REGS, 8,
BDAT, 8
}


If (LEqual (BATA, Zero))
{
Store (^^PCI0.SBRG.EC0.RBEP (REGS), Local2)
And (Local2, 0xFF, Local3)
Store (Local3, BDAT)


If (LEqual (BATA, One))
{
Store (^^PCI0.SBRG.EC0.WBEP (REGS, BDAT), Local2)


Store (Zero, BDAT)

 Store (BDAT, Index (Local0, 0x02))

I klika innych ... skołowany jestem ... :/




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

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