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

Asus K50IN-SX152 - Opis instalacji Mac OS X 10.6.8


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

#1 man_of_the_oak

man_of_the_oak
  • R.E.D.
  • 785 postów
  • LocationKraków

Napisano 21 sierpień 2011 - 20:06

Dołączona grafika


Pragnę zaznaczyć, iż nie oferuję pomocy w przypadku dystrybucji, które uważam za kompletną stratę czasu


Tym razem zdecydowałem się przygotować tutorial dotyczący mojego pierwszego Hackintosha - laptopa Asus K50IN-SX152. W momencie, kiedy rozpoczynałem mą bitwę z tą konfiguracją, moja wiedza była praktycznie zerowa, w związku z tym - nie zauważałem wielu nieprawidłowości obecnych w zagranicznych poradnikach, z których korzystałem. Po dwóch latach, gdy sprzęt należy już do mojej siostry, zdecydowałem się spróbować ponownie, tym razem dopracowując wszystko samodzielnie, od podstaw. Liczę, iż informacje zawarte w tym tekście oszczędzą Wam wiele czasu, który ja musiałem poświęcić na rozpracowanie paru aspektów instalacji Mac OS X na tym sprzęcie. Pragnę zaznaczyć, iż wskazówki zawarte w poradniku mogą znaleźć zastosowanie w przypadku innych laptopów o podobnych podzespołach (chociażby notebooku Asus K70IO).

Na początek specyfikacja:

1. Model laptopa: Asus K50IN-SX152
2. Procesor: Intel® Core™2 Duo CPU T6600 (SSE 2, SSE 3)
3. Mostek południowy: MCP79
4. Karta graficzna: NVIDIA GeForce G102M
5. Kodek dźwięku: ALC662
6. Karta sieciowa LAN: RTL8111/8168B
7. Karta sieciowa WLAN: Atheros AR9285
8. Dysk twardy oraz napęd optyczny podłączone poprzez interfejs SATA
9. Klawiatura oraz touchpad na PS/2
10. Kamera internetowa: Chicony CNF7129
11. Czytnik kart pamięci: Alcor AU6433

Pora na podsumowanie efektów...

:arrow: Funkcjonuje:
- SpeedStep (P-States oraz C-States)
- Karta graficzna (QE/CI)
- Karta muzyczna (mikrofon wewnętrzny, mikrofon zewnętrzny jako wejście liniowe, głośniki, wyjście słuchawkowe)
- Karta sieciowa LAN
- Karta sieciowa WLAN
- Touchpad (obsługa tap-to-click, przewijanie dwoma palcami w pionie itd. - jeśli decydujesz się na dual boot z Windows, przy użyciu Chameleona - unikaj ponownego uruchamiania z poziomu systemu Microsoftu, jeśli planujesz następnie pracować na Mac OS X - touchpad nie funkcjonuje wtedy poprawnie, jest to znany problem, a jedynym rozwiązaniem, o którym wiem jest użycie chociażby Acronis OS Selector)
- Rozpoznawanie statusu baterii
- Shutdown/Restart
- Sleep
- Kamera internetowa
- Czytnik kart pamięci (rozpoznawany jako wbudowany czytnik Apple)

:arrow: Nie funkcjonuje bez wątpienia:
- Restart po wybudzeniu komputera
- Hibernacja (system jest poprawnie przywrócony do stanu sprzed hibernacji, lecz z niewiadomych przyczyn na wstępie atakuje nas nieprzerwany dźwięk ostrzeżenia)

:arrow: 1. Instalacja

Przed rozpoczęciem kroków opisanych w poradniku warto przeprowadzić aktualizację biosu. Na ten moment najnowsza wersja to: 223.

Proponuję również pobrać załączone do postu archiwum, zawiera ono niezbędne pliki. Zapiszmy je chociażby na pendrive, aby mieć do nich łatwy dostęp.

Pozwolę sobie nie opisywać samego procesu instalacji, proponuję posłużyć się istniejącym poradnikiem witucha0, musicie jednak pamiętać, aby korzystając z XBootera zawsze dopisywać flagę GraphicsEnabler=No, a wszelkie czynności post-konfiguracyjne wykonywać na wersji 10.6 lub 10.6.3 – na 10.6.7 nie byłem w stanie uruchomić systemu z płyty bootującej (informacje jak obchodzić się z flagami odnajdziecie w następnym kroku):

http://hamac.pl/topi... ... vt2646.htm

Gdy Mac OS X zostanie zainstalowany (wersja 10.6 lub 10.6.3) i po raz pierwszy uruchomiony, możemy przejść do post-konfiguracji.

:arrow: 2. Post-konfiguracja

Na początek proponuję zaopatrzyć się w Combo Update 10.6.8 oraz zainstalować je (nie uruchamiając ponownie komputera!). Możemy teraz wgrać bootloader, który umożliwi nam bezproblemowe uruchomienie systemu bez konieczności korzystania z Boot CD, znajdziemy go w paczcie dołączonej do poradnika. Zwie się Chameleon-2.0-RC5-r828.pkg. Jeśli instalator nie uruchomi się poprawnie za pierwszym razem – próbujemy do skutku.

Instalujemy go na partycji z systemem (nie wylogowujemy się!). Kolejnym krokiem jest utworzenie folderu Extra wraz z KextStore. Uruchamiamy terminal (Programy->Narzędzia->Terminal), a następnie po kolei wpisujemy komendy, zatwierdzając każdą "Enterem":

sudo -s (podajemy hasło administratora, nie martwmy się, iż go nie widać - jest to normalne) 
mkdir /Extra
mkdir /Extra/KextStore

Skoro już utworzyliśmy potrzebne foldery, warto je zapełnić zawartością, czyż nie? ;-)

Przechodzimy więc do partycji z systemem, po czym otwieramy utworzony przed chwilą folder Extra. Umieszczamy w nim smbios.plist oraz com.apple.boot.plist. Zawierają one następujące informacje:

smbios.plist:

 



SMbiosversion
MBP51.88Z.007E.B05.0905051508
SMboardproduct
Mac-F42D86C8
SMfamily
MacBook Pro
SMmanufacter
Apple Inc.
SMproductname
MacBookPro5,1
SMcputype
769
SMexternalclock
200
SMmaximalclock
2200
SMmemspeed
800
SMmemtype
19
SMserial
W884094J1GA
SMsystemversion
1.0



com.apple.boot.plist:

 



Kernel
mach_kernel
Kernel Flags
npci=0x2000
GraphicsEnabler
Yes
GraphicsMode
1366x768x32@60
Legacy Logo
Yes
DSDT
/Extra/DSDT.aml
SMBIOS
/Extra/smbios.plist
SystemType
2
Theme
LoginToLion
Boot Banner
No



Kolejnym krokiem jest instalacja Kext Wizard (znajduje się w paczce z niezbędnymi do post-konfiguracji plikami). Przy użyciu owego programu (stosowny opis odnajdziesz w poradniku instalacji, który podałem powyżej) instalujemy w Extra następujące kexty (również znajdują się w archiwum dołączonym do postu):

AppleACPIBatteryManager, AppleACPIPS2Nub, ApplePS2Controller, EvOreboot, FakeSMC, NullCPUPowerManagement

Ten zestaw pozwoli na pierwsze zbootowanie systemu bez użycia płyty. Uruchamiamy ponownie komputer dzięki opcji w menu systemu (na tym etapie trzeba jeszcze popchnąć tę czynność manualnie - przytrzymując przycisk power, po chwili, gdy na ekranie wyświetli się MACH reboot), tym razem już bez obecności XBootera w napędzie. Proponuję, na wszelki wypadek, dodać flagi -v -f przed wybraniem partycji z systemem po restarcie. Wystarczy po prostu wpisać je na wyświetlającym się przy uruchamianiu komputera ekranie Chameleona i wcisnąć "Enter".

Gdy system włączy się bez problemów (a tak stać się powinno) przechodzimy do kolejnego kroku.

:arrow: 3. Przygotowanie DSDT do modyfikacji

Instrukcję jak wydobyć DSDT z naszego komputera odnajdziesz tutaj:

http://hamac.pl/topi... ... vt1651.htm

Osobiście polecam metodę z Live CD Ubuntu w wersji 9.04. Jako, iż ostatnio ze strony ubuntu.pl zniknął odnośnik do tego obrazu ISO, podaję go tutaj:

http://old-releases.ubuntu.com/releases/9.04/

Zatem, zakładając, iż wyciągnęliśmy już swoje DSDT (plik znajduje się w ACPI-Tables.zip, rozpoznasz go po początku nazwy ;-)), pozwolę sobie poprowadzić Cię za rączkę poprzez cały proces poprawiania owego.

Na początek zaopatrzmy się w najnowszą wersję TextWrangler oraz iASLMe.

http://www.barebones.com/products/textwrangler/

http://www.insanelymac.com/forum/index.php?showtopic=189272

Aktualnego iASLMe szukamy na ostatnich stronach tematu (załączniki w pierwszym poście nie są aktualizowane). Ja korzystam w tym momencie z iASLMe_UB_23_06_2011.

Oba programy instalujemy, a następnie na ikonę iASLMe przeciągamy nasze DSDT. Czynimy to, aby jego zawartość stała się "czytelna" dla zwykłego edytora tekstu. Otrzymany plik, z rozszerzeniem .dsl, otwieramy przy użyciu TextWrangler.

Kod stanie się bardziej przejrzysty, jeśli z menu wybierzemy "Edit->Text options..." i ustawimy jak na zamieszczonym poniżej screenshocie:

Dołączona grafika


Aby, przed przystąpieniem do poważniejszych modyfikacji, sprawdzić poprawność naszego DSDT, przeciągamy otrzymany plik .dsl na iASLMe. Jeśli kompilacja przebiegnie bezbłędnie (czyt. uzyskamy na koniec "Compilation complete. 0 Errors, 0 Warnings, 0 Remarks...") - możemy przejść do następnego punktu. W przeciwnym razie warto "uciszyć" kompilator. Nie jestem w stanie przewidzieć jak dokładnie będzie wyglądać Twoje DSDT, podam więc rozwiązania, które zastosowałem w moim przypadku.

Czyste DSDT, po dekompilacji i ponownemu skompilowaniu prezentowało się w następujący sposób:

Compilation complete. 2 Errors, 42 Warnings, 1 Remarks...

Nie jest to nic strasznego, tak naprawdę ostrzeżeniami nie musimy się przejmować, lecz ma natura pedanta nie pozwala mi na pozostawienie DSDT w takim stanie. Proponuję skopiować cały log kompilacji, aby mieć wygodny wgląd do informacji dot. błędów i ostrzeżeń. Taki oto log wklejamy chociażby do otwartego już TextWranglera i poszukujemy wyrażenia "error". W mym przypadku pierwszy błąd wyglądał tak:

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl   5071:                     Return (Zero) 
Error 4080 - Invalid object type for reserved name ^ (found ZERO, requires Buffer)

5071 to linijka, której dotyczy, zatem, korzystając z opcji "Search->Go to line", właśnie tam przechodzimy.


Method (_CRS, 0, NotSerialized)
{
If (OSFL ())
{
Return (Zero)
}
Else
{
Return (LCRO (^^PCI0.IMAP.PR0E))
}
}

Kompilator skarży się na niepoprawny rodzaj obiektu: znajduje się tam ZERO, wymagany zaś jest Buffer. Skoro tego oczekuje... czemu nie spełnić jego pragnienia? ;-)

Zmieniamy zatem Zero na Buffer (Zero) {}.

Tak oto wyglądać będzie ten fragment po wprowadzeniu zmian:


Method (_CRS, 0, NotSerialized)
{
If (OSFL ())
{
Return (Buffer (Zero) {})
}
Else
{
Return (LCRO (^^PCI0.IMAP.PR0E))
}
}

Gotowe! Jeden błąd za nami, pora zatem skompilować DSDT, przeciągając plik .dsl na ikonę iASLMe, a następnie skopiować log i ponownie poszukać wyrażenia "error", w mym przypadku drugi, ostatni błąd wyglądał tak:

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl   6265:             Name (_HID, "pnp0c14") 
Error 4124 - Non-hex letters must be upper case ^ (pnp0c14)

Znowu odnajdujemy linijkę, do której się odnosi:


Name (_HID, "pnp0c14")

Tym razem sprawa jest jeszcze prostsza - fragment "pnp0c14" musi składać się tylko z wielkich liter. Pozostaje zatem zmienić go na "PNP0C14". Finalnie będzie to wyglądać tak:


Name (_HID, "PNP0C14")

Gotowe! Nasze DSDT jest wolne od błędów. Jeśli nie masz ochoty poświęcać swego cennego czasu na pozbycie się również ostrzeżeń itp. - możesz przejść do kolejnego punktu. W przeciwnym razie zapraszam do dalszej lektury...

Do pełnego szczęścia pozostało nam usunięcie 42 warnings oraz 1 remark. Zerknijmy najpierw o jakie ostrzeżenia chodzi:

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl   2980:                     Method (ADVD, 0, NotSerialized) 
Warning 1088 - Not all control paths return a value ^ (ADVD)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5709: If (LOr (MP0P (Local6), MP1P (Local6)))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5709: If (LOr (MP0P (Local6), MP1P (Local6)))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5711: Multiply (MCRS (Local6), 0x08000000, BF0F)
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5713: If (MPCR (Local6))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5715: If (MP0P (Local6))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5717: If (MP1P (Local6))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5728: If (MP0P (Local6))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5730: Store (MP0N (Local6), Local5)
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5734: If (MP1P (Local6))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5736: Store (MP1N (Local6), Local5)
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5740: If (LGreater (BNKN, MCDB (Local5)))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5742: Store (MCDB (Local5), BNKN)
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5745: If (LLess (BNKX, MCDB (Local5)))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5747: Store (MCDB (Local5), BNKX)
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5750: If (LGreater (COLN, MCDC (Local5)))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5752: Store (MCDC (Local5), COLN)
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5755: If (LLess (COLX, MCDC (Local5)))
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5757: Store (MCDC (Local5), COLX)
Warning 1093 - Called method may not always return a value ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5798: Method (MP0P, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (MP0P)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5826: Method (MP1P, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (MP1P)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5854: Method (MPCR, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (MPCR)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5882: Method (MP0N, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (MP0N)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5910: Method (MP1N, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (MP1N)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5938: Method (MCRB, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (MCRB)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5966: Method (MCRS, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (MCRS)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 5994: Method (MCDB, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (MCDB)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 6017: Method (MCDC, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (MCDC)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 6295: Method (WMNV, 3, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (WMNV)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 7136: Acquire (MUTE, 0x03E8)
Warning 1105 - Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 7150: Acquire (MUTE, 0x03E8)
Warning 1105 - Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 7165: Acquire (MUTE, 0x03E8)
Warning 1105 - Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 7180: Acquire (MUTE, 0x0FFF)
Warning 1105 - Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 7194: Acquire (MUTE, 0x03E8)
Warning 1105 - Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 7209: Acquire (MUTE, 0x03E8)
Warning 1105 - Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 7224: Acquire (MUTE, 0x03E8)
Warning 1105 - Result is not used, possible operator timeout will be missed ^

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 8970: Return (One)
Warning 1128 - Reserved method should not return a value ^ (_Q0E)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 9001: Return (One)
Warning 1128 - Reserved method should not return a value ^ (_Q0F)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 10256: Method (GMLE, 1, Serialized)
Warning 1088 - Not all control paths return a value ^ (GMLE)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 10269: Method (SMLE, 1, Serialized)
Warning 1088 - Not all control paths return a value ^ (SMLE)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 10289: Method (WLLC, 1, NotSerialized)
Warning 1088 - Not all control paths return a value ^ (WLLC)

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 10946: Return (\_SB.PCI0.IXVE.IGPU.ADVD ())
Warning 1093 - Called method may not always return a value ^


Najpierw musimy zająć się wszystkimi ostrzeżeniami z serii Not all control paths return a value. Sposób rozwiązania tego problemu przedstawię na przykładzie:


Method (MP0P, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Return (P0P0)
}

If (LEqual (Arg0, One))
{
Return (P0P1)
}

If (LEqual (Arg0, 0x02))
{
Return (P0P2)
}

If (LEqual (Arg0, 0x03))
{
Return (P0P3)
}

If (LEqual (Arg0, 0x04))
{
Return (P0P4)
}
}

Ogólna zasada jest taka - na końcu fragmentu, do którego odnosi się warning, dodajemy "Return (Zero)". Tak oto wyglądać będzie fragment z poprawką:


Method (MP0P, 1, NotSerialized)
{
If (LEqual (Arg0, Zero))
{
Return (P0P0)
}

If (LEqual (Arg0, One))
{
Return (P0P1)
}

If (LEqual (Arg0, 0x02))
{
Return (P0P2)
}

If (LEqual (Arg0, 0x03))
{
Return (P0P3)
}

If (LEqual (Arg0, 0x04))
{
Return (P0P4)
}
Return (Zero)
}

Gdy już rozprawimy się ze wszystkimi ostrzeżeniami tego typu, przechodzimy do "Reserved method should not return a value". I tym razem posłużę się przykładem:

/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl   8970:             Return (One) 
Warning 1128 - Reserved method should not return a value ^ (_Q0E)


Return (One)

Jedno z ostrzeżeń odnosi się właśnie do powyższego fragmentu. Jeśli znamy angielski, łatwo zauważymy czego oczekuje kompilator: dana metoda ma nic nie zwracać. Logicznym rozwiązaniem będzie zatem po prostu pozbycie się "Return (One)". W analogiczny sposób zajmujemy się resztą :-)

Aby finalnie zakończyć sprawę z warnings, musimy odnieść się do ostrzeżeń typu:


Acquire (MUTE, 0x03E8)
Warning 1105 - Result is not used, possible operator timeout will be missed ^

Rozwiązanie jest bardzo proste, zmieniamy Acquire (MUTE, 0x03E8), których dotyczą na Acquire (MUTE, 0xFFFF).

Na koniec można wyeliminować remark.


/Users/man_of_the_oak/Desktop/Asus K50IN/Brudactwo/DSDT_K50IN_K50IN000.dsl 159: Name (_T_0, Zero)
Remark 5111 - Use of compiler reserved name ^ (_T_0)

Odnajdujemy wszelkie wyrażenia (w całym DSDT) "_T_0" i zmieniamy je na "T_0".
Gratuluję, w tym momencie Twoje DSDT powinno zwrócić przy kompilacji następującą informację:

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks

:arrow: 4. Modyfikacja DSDT

Metoda DTGP

Przed:

(...) 
DefinitionBlock ("DSDT.aml", "DSDT", 1, "K50IN", "K50IN000", 0x00000000)
{
Scope (_PR)
{
Processor (P001, 0x01, 0x00004010, 0x06) {}
Alias (P001, CPU0)
}

Scope (_PR)
{
Processor (P002, 0x02, 0x00004010, 0x06) {}
Alias (P002, CPU1)
}

Scope (_PR)
{
Processor (P003, 0x03, 0x00004010, 0x06) {}
Alias (P003, CPU2)
}
(...)

Po:

(...) 
DefinitionBlock ("DSDT.aml", "DSDT", 1, "K50IN", "K50IN000", 0x00000000)
{
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}

If (LEqual (Arg2, One))
{
Return (One)
}
}
}

Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
Scope (_PR)
{
Processor (P001, 0x01, 0x00004010, 0x06) {}
Alias (P001, CPU0)
}

Scope (_PR)
{
Processor (P002, 0x02, 0x00004010, 0x06) {}
Alias (P002, CPU1)
}

Scope (_PR)
{
Processor (P003, 0x03, 0x00004010, 0x06) {}
Alias (P003, CPU2)
} (...)

Pozbycie się aliasów:

Przed:

(...) 
Scope (_PR)
{
Processor (P001, 0x01, 0x00004010, 0x06) {}
Alias (P001, CPU0)
}

Scope (_PR)
{
Processor (P002, 0x02, 0x00004010, 0x06) {}
Alias (P002, CPU1)
}

Scope (_PR)
{
Processor (P003, 0x03, 0x00004010, 0x06) {}
Alias (P003, CPU2)
}

Scope (_PR)
{
Processor (P004, 0x04, 0x00004010, 0x06) {}
Alias (P004, CPU3)
}
(...)

Po:

(...) 
Scope (_PR)
{
Processor (P001, 0x01, 0x00004010, 0x06) {}
Processor (P002, 0x02, 0x00004010, 0x06) {}
Processor (P003, 0x03, 0x00004010, 0x06) {}
Processor (P004, 0x04, 0x00004010, 0x06) {}
}(...)

Następnie musimy pamiętać, aby w całym DSDT zmienić CPU0 na P001, CPU1 na P002, CPU2 na P003 oraz CPU3 na P004!

Rozpoznawanie systemów operacyjnych

Przed:

(...) 
Method (OSYS, 0, NotSerialized)
{
Store (0x10, Local0)
If (CondRefOf (_OSI, Local1))
{
If (_OSI ("Windows 2000"))
{
Store (0x12, Local0)
}

If (_OSI ("Windows 2001"))
{
Store (0x13, Local0)
}

If (_OSI ("Windows 2001 SP1"))
{
Store (0x13, Local0)
}

If (_OSI ("Windows 2001 SP2"))
{
Store (0x13, Local0)
}

If (_OSI ("Windows 2001.1"))
{
Store (0x14, Local0)
}

If (_OSI ("Windows 2001.1 SP1"))
{
Store (0x14, Local0)
}

If (_OSI ("Windows 2006"))
{
Store (0x15, Local0)
}
}(...)

Po:

(...) 
Method (OSYS, 0, NotSerialized)
{
Store (0x10, Local0)
If (CondRefOf (_OSI, Local1))
{
If (_OSI ("Windows 2000"))
{
Store (0x12, Local0)
}

If (_OSI ("Windows 2001"))
{
Store (0x13, Local0)
}

If (_OSI ("Windows 2001 SP1"))
{
Store (0x13, Local0)
}

If (_OSI ("Windows 2001 SP2"))
{
Store (0x13, Local0)
}

If (_OSI ("Windows 2001.1"))
{
Store (0x14, Local0)
}

If (_OSI ("Windows 2001.1 SP1"))
{
Store (0x14, Local0)
}

If (_OSI ("Windows 2006"))
{
Store (0x15, Local0)
}

If (_OSI ("Darwin"))
{
Store (0x15, Local0)
}
}(...)

PIC

Przed:

(...) 
Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IRQNoFlags ()
{2}
})
}(...)

Po:

(...) 
Device (PIC)
{
Name (_HID, EisaId ("PNP0000"))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
}(...)

Uruchomienie SMBus

Przed:

(...) 
Device (SMB0)
{
Name (_ADR, 0x00030002)
OperationRegion (SMAD, PCI_Config, 0x20, 0x08)
Field (SMAD, DWordAcc, NoLock, Preserve)
{
SB1, 32,
SB2, 32
}

OperationRegion (SMCF, PCI_Config, 0x48, 0x10)
Field (SMCF, DWordAcc, NoLock, Preserve)
{
SMPM, 4,
SMT1, 28,
SMT2, 32
}(...)

Po:

(...) 
Device (SMB0)
{
Name (_ADR, 0x00030002)
Device (BUS0)
{
Name (_CID, "smbus")
Name (_ADR, Zero)
Device (DVL0)
{
Name (_ADR, 0x57)
Name (_CID, "diagsvault")
}
}

OperationRegion (SMAD, PCI_Config, 0x20, 0x08)
Field (SMAD, DWordAcc, NoLock, Preserve)
{
SB1, 32,
SB2, 32
}

OperationRegion (SMCF, PCI_Config, 0x48, 0x10)
Field (SMCF, DWordAcc, NoLock, Preserve)
{
SMPM, 4,
SMT1, 28,
SMT2, 32
}(...)

Sekcja audio

Przed:

(...) 
Device (HDAC)
{
Name (_ADR, 0x00080000)
Name (SCID, Zero)
Name (SACW, Zero)
Method (_PS0, 0, NotSerialized)
{
If (SCID)
{
Store (Zero, PMDS)
Store (Zero, PMEN)
Store (SCID, CDID)
Store (SACW, AOCW)
}
}

Method (_PS3, 0, NotSerialized)
{
Store (AOCW, SACW)
Store (CDID, SCID)
Store (One, PMST)
Store (0x03, PMDS)
Store (One, PMEN)
}(...)

Po:

(...) 
Device (HDEF)
{
Name (_ADR, 0x00080000)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"subsystem-id",
Buffer (0x04)
{
0xF3, 0x16, 0x00, 0x00
},

"subsystem-vendor-id",
Buffer (0x04)
{
0x43, 0x10, 0x00, 0x00
},

"layout-id",
Buffer (0x04)
{
0x0C, 0x00, 0x00, 0x00
},

"PinConfigurations",
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Name (SCID, Zero)
Name (SACW, Zero)
Method (_PS0, 0, NotSerialized)
{
If (SCID)
{
Store (Zero, PMDS)
Store (Zero, PMEN)
Store (SCID, CDID)
Store (SACW, AOCW)
}
}

Method (_PS3, 0, NotSerialized)
{
Store (AOCW, SACW)
Store (CDID, SCID)
Store (One, PMST)
Store (0x03, PMDS)
Store (One, PMEN)
}(...)

Kosmetyczny wpis dotyczący informacji o karcie graficznej (bez niego w System Profiler będzie widnieć "Unknown", problem rozwiązuje nowsza wersja Chameleona, lecz do tej pory jedyną, która wyświetlała informacje o obecnej pamięci RAM była ta dołączona do paczki, proponuję zatem wprowadzić jednak tę poprawkę do DSDT):

Przed:

(...) 
Name (DONE, Zero)
Name (DOSF, One)
Name (BRNC, Zero)
Method (_INI, 0, NotSerialized)
{
GETD ()
}

Method (_DOS, 1, NotSerialized)
{
And (Arg0, 0x03, DOSF)
Store (ShiftRight (Arg0, 0x02), BRNC)
And (BRNC, One, BRNC)
}(...)

Po:

(...) 
Name (DONE, Zero)
Name (DOSF, One)
Name (BRNC, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package ()
{
"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@0,device_type",
Buffer (0x08)
{
"display"
},

"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},

"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@1,device_type",
Buffer (0x08)
{
"display"
},

"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},

"device_type",
Buffer (0x0C)
{
"NVDA,Parent"
},

"model",
Buffer ()
{
"NVIDIA GeForce G102M"
},

"rom-revision",
Buffer ()
{
"62.79.78.00.06"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
Method (_INI, 0, NotSerialized)
{
GETD ()
}

Method (_DOS, 1, NotSerialized)
{
And (Arg0, 0x03, DOSF)
Store (ShiftRight (Arg0, 0x02), BRNC)
And (BRNC, One, BRNC)
}(...)

Time Machine fix

Przed:

(...) 
Device (P0P6)
{
Name (_ADR, 0x00150000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x11, 0x04))
}(...)

Po:

(...) 
Device (P0P6)
{
Name (_ADR, 0x00150000)
Device (LAN)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x04)
{
"built-in",
Buffer (One)
{
0x01
},
"name",
Buffer (0x24)
{
"Realtek RTL8111/8168B PCI-E Gigabit"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x11, 0x04))
}(...)

Rozpoznawanie systemów operacyjnych 2

Przed:

(...) 
Method (MSOS, 0, NotSerialized)
{
If (CondRefOf (_OSI, Local0))
{
If (_OSI ("Windows 2001"))
{
Store (OSXP, OSFG)
}

If (_OSI ("Windows 2001 SP1"))
{
Store (OSXP, OSFG)
}

If (_OSI ("Windows 2001 SP2"))
{
Store (OSXP, OSFG)
}

If (_OSI ("Windows 2006"))
{
Store (OSVT, OSFG)
}

If (_OSI ("Linux"))
{
Store (OSEG, OSFG)
}

If (_OSI ("Windows 2009"))
{
Store (OSW7, OSFG)
}

Return (OSFG)
}(...)

Po:

(...) 
Method (MSOS, 0, NotSerialized)
{
If (CondRefOf (_OSI, Local0))
{
If (_OSI ("Windows 2001"))
{
Store (OSXP, OSFG)
}

If (_OSI ("Windows 2001 SP1"))
{
Store (OSXP, OSFG)
}

If (_OSI ("Windows 2001 SP2"))
{
Store (OSXP, OSFG)
}

If (_OSI ("Windows 2006"))
{
Store (OSVT, OSFG)
}

If (_OSI ("Darwin"))
{
Store (OSVT, OSFG)
}

If (_OSI ("Linux"))
{
Store (OSEG, OSFG)
}

If (_OSI ("Windows 2009"))
{
Store (OSW7, OSFG)
}

Return (OSFG)
}(...)

Fix uaktywniający zasypianie po zamknięciu klapy:

Przed:

(...) 
Device (LID)
{
Name (_HID, EisaId ("PNP0C0D"))
Method (_LID, 0, NotSerialized)
{
Store (One, Local0)
^^PCI0.SBRG.EC0.DL9F ()
Store (^^PCI0.SBRG.EC0.RPIN (0x06), Local0)
^^PCI0.SBRG.EC0.DL9F ()
If (LEqual (Local0, Ones))
{
Store (One, Local0)
}

Return (Local0)
}
}(...)

Po:

(...) 
Device (LID)
{
Name (_HID, EisaId ("PNP0C0D"))
Name (LIDS, One)
Method (_LID, 0, NotSerialized)
{
Store (^^PCI0.SBRG.EC0.RPIN (0x06), LIDS)
XOr (LIDS, One, Local0)
If (Local0)
{
Notify (SLPB, 0x80)
}

Return (LIDS)
}
}(...)

Uruchomienie wbudowanej karty sieciowej WLAN

Przed:

(...) 
Device (P0P7)
{
Name (_ADR, 0x00160000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x11, 0x04))
}

Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR07)
}

Return (PR07)
}
}(...)

Po:

(...) 
Device (P0P7)
{
Name (_ADR, 0x00160000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x11, 0x04))
}

Device (ARPT)
{
Name (_ADR, Zero)
Name (_PRW, Package (0x02)
{
0x0B,
0x05
})
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0C)
{
"AAPL,slot-name",
Buffer (0x08)
{
"AirPort"
},

"device-id",
Unicode ("*"),
"device_type",
Buffer (0x08)
{
"AirPort"
},

"model",
Buffer (0x34)
{
"Atheros 9285 8802.11 b/g/n Wireless Network Adapter"
},

"subsystem-id",
Buffer (0x04)
{
0x89, 0x10, 0x00, 0x00
},

"subsystem-vendor-id",
Buffer (0x04)
{
0x3B, 0x1A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR07)
}

Return (PR07)
}
}(...)

W moim DSDT zastosowałem również następującą zmianę nazewnictwa, aby upodobnić je do tego z MacBooka Pro 5,1. Pragnę przypomnieć, iż nie działa to na zasadzie "zmień wszystko", np. APIC to nie to samo co PIC!:

PIC -> IPIC
DMAD -> DMAC
TMR -> TIMR
RTC0 -> RTC
COPR -> MATH
OMSC -> LDRC
SBRG -> LPCB
USB0 -> OHC1
USB2 -> EHC1
RHUB -> HUB1

ASUS Z97-Pro Gamer | Intel Core i7-4790K | 16 GB 2400 MHz CL10 RAM | ASUS GTX760-DC2T-2GD5-SSU | Samsung 850 PRO + Samsung HD103SJ | BCM94360CD | Aune T1 MK2 + Genalex Gold Lion E88CC | macOS Sierra 10.12.6

MacBook Pro 13,3" (Mid 2012) | Intel Core i7-3520M | 16 GB 1600 MHz CL11 RAM | Intel HD 4000 | Transcend 370S | macOS Sierra 10.12.6
Mac OS X Snow Leopard 10.6.8 Retail (64-bit) @ ASUS K50IN (SX152)
FlagaPL.gif Piszę poprawnie po polsku!


#2 man_of_the_oak

man_of_the_oak
  • R.E.D.
  • 785 postów
  • LocationKraków

Napisano 21 sierpień 2011 - 20:07

:arrow: 5. Post-konfiguracja part II

Skoro przygotowaliśmy już nasze własne DSDT, wykorzystajmy jego potencjał i pozbądźmy się wreszcie NullCPUPowerManagement z naszego Extra. Do głównego katalogu (obok smbios.plist itd.) wklejamy :!: skompilowane :!: DSDT, o rozszerzeniu .aml, a następnie wzbogacamy nasz zbiór kextów o LegacyHDA_ALC662-v.1, mego autorstwa oraz AnyCardReader :-)

Kolejnym krokiem jest podmiana 3 plików w S/L/E (jeden to kwestia kosmetyki - o ile do wersji 10.6.7 włącznie kontroler AHCI w System Profiler był poprawnie wyświetlany, o tyle po aktualizacji do 10.6.8 mym oczom ukazał się Unknown AHCI Standard Controller. Część dotycząca MCP79 w AppleAHCIPort nie została zmieniona, identyfikatory naszego sprzętu nadal tam są… nie byłem w stanie odnaleźć innej metody uruchomienia poprawnego rozpoznania kontrolera, zatem - skoro i tak system nie będzie już rozwijany - zdecydowałem się na rollback do AppleAHCIPort z Mac OS X w wersji 10.6.7):

AppleAHCIPort, AppleHDA, IOAudioFamily

Dlaczego podmieniamy AppleHDA? Otóż, po wybudzeniu ze snu - głośniki cichły… problem rozwiązuje spatchowane IOAudioFamily, które niestety nie było rozwijane od czasów Mac OS X 10.6.2 i nie funkcjonuje nie tylko z Mac OS X w wersji 10.6.8 (co wydaje się oczywiste ze względu na zmienioną strukturę AppleHDA), ale także i 10.6.7. Sam niestety nie posiadam kompetencji, aby spatchować wersję aktualną, zatem - przynajmniej do czasu, gdy ktoś się tego podejmie - jesteśmy skazani na rollback.

Teraz możemy wreszcie upiększyć nieco wygląd naszego ekranu bootowania. Wgrywamy folder Themes (obecny w paczce dołączonej do poradnika) do Extra, po czym zaznaczamy wszelkie opcje w zakładce "Konserwacja" w Kext Wizard, upewniamy się, iż dyskiem docelowym jest partycja z zainstalowanym Mac OS X, a następnie wybieramy "Wykonaj" i idziemy zrobić sobie kawy/herbaty, gdyż chwilkę to zajmie - czekamy cierpliwie!

Uruchamiamy ponownie system, na wszelki wypadek z flagą -v - już ostatni raz, obiecuję ;-)

:arrow: 6. Pozbycie się komunikatu "Your device or computer could not be verified. Contact support for assistance" przy próbie zalogowania do App Store

Problem stanowi automatyczne przyporządkowanie karty sieciowej WLAN pod en0, podczas gdy znajdować tam powinna się karta LAN. Aby ustawić poprawną kolejność musimy usunąć plik NetworkInterfaces.plist, który odnajdziemy w następującej lokalizacji:

/Library/Preferences/SystemConfiguration

Następnie restartujemy komputer, przechodzimy do preferencji sieci i usuwamy oba obecne tam interfejsy sieciowe, po czym dodajemy ponownie, w następującej kolejności:

- Ethernet
- AirPort

:arrow: 7. Rozwiązanie problemu z kamerą internetową

Jak pewnie zauważyliście - kamera internetowa działa OOTB, lecz obraz wyświetlany jest do góry nogami. Nie ma się czym przejmować, rozwiązanie tego problemu jest bardzo proste - wystarczy zaopatrzyć się w program iGlasses, a następnie po uruchomieniu chociażby PhotoBooth, za pomocą opcji "Rotate" ustawić obraz w odpowiedniej pozycji, po czym wybrać "Default", aby ustawienia były wczytywane automatycznie.

Program funkcjonuje z większością znanych mi aplikacji wykorzystujących kamerę internetową, pośród nich znajdują się chociażby: Skype, Messenger for Mac, PhotoBooth.

:arrow: 8. Przypisanie wybranych skrótów klawiaturowych

Niestety, w przypadku klawiatury zastosowanej w tym laptopie, nie możliwe jest korzystanie z klawiszy funkcyjnych przy użyciu obecnych w tym momencie kextów. Dzięki programowi ControllerMate możemy jednak stworzyć własne skróty do takich funkcji systemowych jak chociażby regulacja głośności. Pozwolę sobie zaprezentować ten proces właśnie na tym przykładzie.

Po pierwszym uruchomieniu aplikacji, naszym oczom ukazuje się następujący widok:



1.png


Zaznaczamy "Start Page", po czym w okienku "Palette", po prawej stronie, odnajdujemy "Apple Keyboard":
 

2.png


Klikamy na ikonę dwukrotnie, pojawia się taka oto lista:
 

3.png


Gdy naciśniemy jakikolwiek klawisz na klawiaturze, na powyższej liście zaczyna się świecić zielona "dioda" przy nim. W tym przykładzie przyporządkujemy skróty regulacji głośności w następującym schemacie:

F9 - wyciszenie
F10 - zmniejszenie poziomu głośności
F11 - zwiększenie poziomu głośności

Zanim jednak to zrobimy, musimy się upewnić, iż nie są one już używane przez system (np. F12 po dłuższym przytrzymaniu odpowiada za wysuwanie napędu, dlatego właśnie wybrałem inne klawisze). Przechodzimy zatem do "Preferencje systemowe->Klawiatura->Skróty klawiszowe" i odznaczamy skróty przyporządkowane do F9, F10 oraz F11:
 

4.png


Następnie wracamy do ControllerMate i przeciągamy z "Palette" każdy z przycisków do głównego okna.

Kolejnym krokiem jest wybranie "Window->Keystrokes Palette". Z wyświetlonej klawiatury przeciągamy do głównego okna ControllerMate symbolizujące pożądane przez nas funkcje ikony.
 

5.png


Pozostaje więc finalne przyporządkowanie. Czynimy to przeciągając ikonę OFF od przycisku do funkcji. Efekt widoczny jest na poniższym zrzucie:
 

6.png


Wybieramy "File->Save", a następnie wyłączamy program - skróty powinny już funkcjonować :-) (ControllerMate nie musi pracować w tle, posiada on małą aplikację, która odpowiada za działanie zapisanych ustawień)

:arrow: 9. Wyrażenie zadowolenia z powstania poradnika poprzez napisanie paru słów nt. efektów korzystania z owego
 

final.png

Klasycznie, będę wielce wdzięczny za wszelkie uwagi!

Niezbędne pliki:

https://mega.nz/#!3M01WZJR!sC2nGoh4vyCTlmQBiEv9sKsx6_9N6YDQzH0kvFqKiuY

ASUS Z97-Pro Gamer | Intel Core i7-4790K | 16 GB 2400 MHz CL10 RAM | ASUS GTX760-DC2T-2GD5-SSU | Samsung 850 PRO + Samsung HD103SJ | BCM94360CD | Aune T1 MK2 + Genalex Gold Lion E88CC | macOS Sierra 10.12.6

MacBook Pro 13,3" (Mid 2012) | Intel Core i7-3520M | 16 GB 1600 MHz CL11 RAM | Intel HD 4000 | Transcend 370S | macOS Sierra 10.12.6
Mac OS X Snow Leopard 10.6.8 Retail (64-bit) @ ASUS K50IN (SX152)
FlagaPL.gif Piszę poprawnie po polsku!


#3 rzooff

rzooff
  • R.E.D.
  • 5235 postów
  • LocationWarszawa

Napisano 22 sierpień 2011 - 14:47

Super poradnik!
Opis Controller Mate, w zasadzie mógłby stanowić osobny poradnik, bo może przydać się także posiadaczom wielu innych laptopów.

#4 man_of_the_oak

man_of_the_oak
  • R.E.D.
  • 785 postów
  • LocationKraków

Napisano 22 sierpień 2011 - 15:14

Bardzo dziękuję! :-)

W sumie, mogę w wolnej chwili nieco przysiąść i przygotować go w takiej formie, aby mógł stanowić oddzielny poradnik, masz rację~

ASUS Z97-Pro Gamer | Intel Core i7-4790K | 16 GB 2400 MHz CL10 RAM | ASUS GTX760-DC2T-2GD5-SSU | Samsung 850 PRO + Samsung HD103SJ | BCM94360CD | Aune T1 MK2 + Genalex Gold Lion E88CC | macOS Sierra 10.12.6

MacBook Pro 13,3" (Mid 2012) | Intel Core i7-3520M | 16 GB 1600 MHz CL11 RAM | Intel HD 4000 | Transcend 370S | macOS Sierra 10.12.6
Mac OS X Snow Leopard 10.6.8 Retail (64-bit) @ ASUS K50IN (SX152)
FlagaPL.gif Piszę poprawnie po polsku!


#5 Kondor_PL

Kondor_PL
  • Members
  • 36 postów

Napisano 27 grudzień 2011 - 22:34

Cześć!
Przede wszystkim wielkie dzięki za Twój ogromny wkład w dopracowanie instalacji SL na tym ASUSOWYM ustrojstwie.

Osobiście miałem już zainstalowanego SL wcześniej (inna metoda). Trochę rzeczy "kulało": Nie działał Atheros. Zastąpiłem więc kartą WiFi od Broadcom'a, która działa OTB. Problem był też z wybudzaniem audio po wcześniejszym uśpieniu lapka. Z tym ostatnim błędem sobie nie poradziłem.

Po opublikowaniu przez Ciebie tutoriala, postanowiłem przeinstalować SL wg zamieszczonej instrukcji. Wszystko przebiegło sprawnie. Niestety miałem jakieś problemy z podłączeniem zewnętrznego monitora przez złącze D-SUB VGA. Nie było mi to potrzebne, więc nic z tym nie zrobiłem.
Instalowałem kolejno: Instalacyjne DVD 10.6.3 (Boot z karty SD, a instalka na USB) >>> MacOSXUpdCombo10.6.7.dmg >>> Update 10.6.8
W takiej konfiguracji lapek śmigał bez większych problemów prawie 4 miesiące.
Przy próbie bezpośredniego Updatu z 10.6.3 do 10.6.8 za pomocą MacOSXUpdCombo10.6.8.dmg dochodziło niestety do dziwnych zachowań komputera podczas updatu - łącznie z zawieszeniem.

Ostatnio postanowiłem ponownie przeinstalować SL, ponieważ system był już bardzo zaśmiecony różnego rodzaju softem.

Oczywiście zastosowałem Twoją metodę. Zauważyłem jednak pewną dość istotną różnicę. Na stronie Apple jest nowa wersja (1.1) updatu 10.6.8 (zarówno Combo - 1GB, jak i MacOSXUpd10.6.8.dmg - 400MB)

Zmiana polega na tym, że po updacie do 10.6.8, prawidłowo rozpoznawana jest karta graficzna. Ma to miejsce zarówno po updatowaniu ze starej 10.6.7 za pomocą MacOSXUpd10.6.8.dmg (w ver. 1.1), jak i bezpośrednio 10.6.3 za pomocą MacOSXUpdCombo10.6.8.dmg (w ver. 1.1) (tym razem nie było problemów, aby instalować tą drogą).

Tak wygląda w Profilu systemu:

Dołączona grafika Dołączona grafika
(w razie niewyraźnego obrazu po kliknięciu na miniaturce, kliknąć jeszcze raz na wyświetlanej grafice -
- może być skalowany, jeśli ekran ma niższą rozdzielczość niż wielkość wyświetlanego obrazka)


Dzięki temu, nie zachodzi już potrzeba dokonywania "kosmetycznych" zmian w pliku DSDT! =D>

Co ciekawe - w tym przypadku nie występują problemy po podłączeniu zewnętrznego monitora. Monitor jest poprawnie interpretowany, a jego obsługa przebiega sprawnie i bezbłędnie. Możliwe, że poprzednio występujące problemy były spowodowane tzw. czynnikiem ludzkim (oczywiście z mojej strony).

Lapka sprawdzałem pod TV LCD Samsung L40C650 - wejście PC w postaci D-SUB VGA 15-pin.

Tak wygląda ekran po podłączeniu drugiego monitora:

Dołączona grafika

__________________
Edit:

Niestety w moim przypadku występuje inny problem.
Co jakiś czas pojawiają się błędy dotyczące inicjowania USB podczas uruchamiania systemu...



@314TeR - na razie testuję drugi dzień. Wygląda na to, że diagnoza była trafna i wszystko będzie Ok. Dziękuję za pomoc!


P.S. Przydałaby się możliwość zastosowania w postach tagów, które pozwoliłyby na ukrycie treści długich logów. Coś na podobieństwo list, które po kliknięciu pokazywałyby niewidoczną normalnie zawartość.
Snow Leopard 10.6.8 Retail 64 bit Notebook ASUS X5DIN SX183V (K50IN) |Core 2 Duo T6600 2.2 GHz|Chipset Nvidia MCP79|GF G102M 512MB|
|ALC662|2x2GB RAM 800 MHz|RTL8186/8111|WiFi Atheros 9285/zmiana na Broadcom BCM4321AG 802.11a/b/g/draft-n|Chicony 1,3 Mpx|HDD 500 GB|4x USB 2.0

#6 314TeR

314TeR

    Administrator

  • Administrators
  • 17015 postów
  • LocationWarszawa

Napisano 28 grudzień 2011 - 00:56

Na problemy z USB, spróbuj flagę "USB Legacy Off" z Chameleon'a - najszybciej włączysz ją w Chameleon Wizardem.

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.

 


#7 man_of_the_oak

man_of_the_oak
  • R.E.D.
  • 785 postów
  • LocationKraków

Napisano 09 wrzesień 2017 - 14:15

Na prośbę kilku osób - zaktualizowałem odnośnik do plików koniecznych do wykonania poszczególnych kroków poradnika. 


ASUS Z97-Pro Gamer | Intel Core i7-4790K | 16 GB 2400 MHz CL10 RAM | ASUS GTX760-DC2T-2GD5-SSU | Samsung 850 PRO + Samsung HD103SJ | BCM94360CD | Aune T1 MK2 + Genalex Gold Lion E88CC | macOS Sierra 10.12.6

MacBook Pro 13,3" (Mid 2012) | Intel Core i7-3520M | 16 GB 1600 MHz CL11 RAM | Intel HD 4000 | Transcend 370S | macOS Sierra 10.12.6
Mac OS X Snow Leopard 10.6.8 Retail (64-bit) @ ASUS K50IN (SX152)
FlagaPL.gif Piszę poprawnie po polsku!





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

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