Skocz do zawartości

Jak to wszystko działa ?


Rekomendowane odpowiedzi

Zaczynać przygodę z Hacintoshami po kliku latach istnienia sceny to dosyć zabawne. Najpierw trafiłem na milion nieznanych mi zwrotów, a później na gotowca, który coś za mnie zrobił. Szybko jednak zostałem sprowadzony na ziemię, że metoda, której użyłem nie jest dobra. Dla jednych pewnie wystarczy uzyskanie odpowiedzi co ma zrobić, ale ja należę do osób, które muszą wiedzieć co w trawie piszczy.

 

Największy problem, albo raczej najbardziej czasochłonny, to zrozumienie używanych pojęć. Oczywiście są wszelkiego rodzaju słowniki, ale problem w tym, że nie są kompletne, po drugie nie zawierają okresu, w którym termin był używany. Chodzi mi o to, że w ciągu paru lat powstawało dużo narzędzi, aplikacji i metod, ale nie wszystkie funkcjonują obecnie, a na ich nazwy dalej funkcjonują i nie raz się na nie natkniemy...

 

Problem sprowadza się do tego, że nie można znaleźć wyczerpującej odpowiedzi na pytanie "jak to działa". Często znajdziemy odpowiedź co dana rzecz robi, ale pozbawioną kontekstu. Nie raz czytałem o chimerze, chameleonie, boot-132, pc_efi nie zdając sobie, że to wszystko w zasadzie to samo... Brakuje prostego schematu pokazującego działanie hacintosha, a poszczególne węzły powinny mieć opisy np. bootloader, a dalej taki węzeł powinien ukazywać jaki możemy obecnie wybrać, a dodatkowo skąd się to wzięło.

 

Przerobiłem już setki stron (jak nie tysiące) i jak dotąd zdobyłem bardzo ogólną wiedzę na temat EFI i procesu startowego Mac OS X. Zrozumiałem i potrafię wytłumaczyć na czym polega "oszukanie" systemu wykonane przez Davida Elliota, ale dalej nie znam wszystkich szczegółów. Większość nie będzie miała pojęcia o co w tym wszystkim chodzi, część odpowie że to udawanie EFI, a ja potrzebuję czegoś więcej. Na forum jest sporo osób, które tworzyły tą scenę i pamiętają jak to wszystko powstawało i to głównie do nich będą pytania. Ja sam w wielu przypadkach nie jestem w stanie wyjaśnić niektórych procesów, bo choćby nawet linki do niektórych forum są już niektywne. No to lecimy ;-)

 

EFI oprócz swojej pracy (nie będę się rozpisywał co robi) udostępnia interfejsy tzw. boot services i runtime services. Te pierwsze wygasają w momencie uruchomienia kernela. Wiemy, że przed uruchomieniem odbywa się przekazanie argumenów bootowania za pomocą ustalonej struktury. W strukturze tej znajduje się między innymi drzewo urządzeń. Główna sztuczka oszukania Mac OS X, polega na tym, że używamy dostępnego bootloadera, który po zmodyfikowaniu wrzuca w tą strukturę to, na co kernel oczekuje. Wygląda to pięknie, bo wiedząc, że boot serives już nie będą używane to teoretycznie mamy już spokój z EFI. Niestety wiem także, że wraz z update systemu wymagania co do argumentów się zmieniały (było np. ich mniej).

1) czy fake efi uzupełnia całą strukturę, czy tylko to co kernel potrzebuje ?

2) czy fake efi jest aktualizowany, czyli czy w związku z tym, że liczba potrzebnych argumentów się zmienia to czy też jest to uwzględniane ?

3) bardziej istotne co z runtime services ? start oszukaliśmy, ale system może się odwołać do interfejsu EFI co wtedy ?

4) czy może system nie wykorzystuje w ogóle runtime services i dlatego nie ma problemu ?

 

ACPI i SMBIOS to rozszerzenie starego BIOSu, a w Macach mamy EFI...

5) po co implementacja ACPI w EFI ? - czy EFI nie potrafi sterować urządzeniami ?

6) czy może jest to wymuszone przez jakieś standardy ?

7) czy też Apple nie korzysta w pełni z EFI - ogranicza się tylko do startu systemu ?

 

Czegoś mi brakuje w zrozumieniu tego Fake EFI, bo jak miałem teorię, że sztuczka ogranicza się tylko do startu to trafiłem na informacje, że w 10.4.3 był testowany Power Management Stepper przez EFI.

8) czy zostało to wprowadzone i faktycznie działa przez EFI ?

 

Dalej znalazłem, że 10.5.6 zaczął zaglądać do DSDT

9) w jaki sposób, w sensie czy bootloader, czy system ?

10) po co ?

 

Można odczytywać temperaturę, więc kolejny ślad, że jakoś sytem potrafi odczytać dane z urządzeń i wskazuje mi to ponownie na ACPI.

11) jak to jest możliwe - jak są przekazywane dane urządzeń ?

 

Kolejne pytania tyczą działania Chameleona - widać jak dużo zmian zostało wprowadzonych, a ja nie bardzo wiem jak on działa poza tym, że zawiera Fake EFI. Ogólnie proces startu OS X polega na uruchomieniu EFI -> uruchomieniu bootloadera (chameleon) -> uruchomieniu kernela -> uruchomienie kextów. Wiem także, że to bootloader ładuje Boot.plist i że potrafi do niej wrzucać stringi urządzeń

12) po co ?

Czytałem także, że chameleon nadpisuje DSDT.

13) w jaki sposób ?

Dalej ogólniej

13) po co w płycie startowej z chameleonem mamy kernel (mach_kernel) ?

 

 

Jak uzyskam odpowiedzi na te pytania to pewnie będę miał kolejne... Mam nadzieję, że komuś będzie się chciało odpisać, a jeśli już odpowiedzi były gdzieś udzielone to poproszę o linka. W zamian mogę się odwdzięczyć spisaniem tego w formie wprowadzenia do hackintoshy.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja zaczynałem od Leoparda, także nie znam odpowiedzi na wszystkie pytania. Ale postaram się odpowiedzieć na niektóre. Jeśli walnę babola, to śmiało mnie poprawiajcie.

 

1) czy fake efi uzupełnia całą strukturę, czy tylko to co kernel potrzebuje ?

To zależy od bootloadera. Rozwiązania takie jak XPC zawierają całe EFI, chameleon zawiera tylko to, czego potrzebuje kernel. Dlatego pierwsze wersje Liona (które chodziły na PC już po paru godzinach od udostępnienia) odpalano między innymi na XPC, chameleon sobie z nimi nie radził.

2) czy fake efi jest aktualizowany, czyli czy w związku z tym, że liczba potrzebnych argumentów się zmienia to czy też jest to uwzględniane ?

Chyba tak, nowe rewizje chameleona wychodzą nawet kilka razy dziennie.

3) bardziej istotne co z runtime services ? start oszukaliśmy, ale system może się odwołać do interfejsu EFI co wtedy ?
Tutaj nie mam pewności, ale Chameleon jest chyba w pamięci cały czas i na bieżąco się tym zajmuje.

 

5) po co implementacja ACPI w EFI ?
Tutaj nie wiem. Być może jest to spowodowane wymaganiami Windowsa przez BootCamp. Nie wiem, nie chcę strzelać.
8) czy zostało to wprowadzone i faktycznie działa przez EFI ?

Obecnie Power Management uruchamia się przez lekką modyfikację DSDT (czasem nawet nie jest to potrzebne) + odpowiednią identyfikację SMBios. Czasem jeszcze potrzebne są fixy chameleona do generacji stanów P i C. Wtedy PM działa jak na prawdziwym maku i zajmują się tym te same kexty.

Dalej znalazłem, że 10.5.6 zaczął zaglądać do DSDT

9) w jaki sposób, w sensie czy bootloader, czy system ?

W chameleonie jest tak, że bootloader "podstawia" tabele DSDT z pliku. Wówczas system "widzi" to co mu podamy, zamiast to co znajduje się faktycznie w sprzęcie.

 

Ma to wiele zastosowań, głównie takie, że nie trzeba grzebać w kextach. Wiele różnych modyfikacji można zastąpić jedną. Często modyfikacja DSDT umożliwia rzeczy, które były by niemożliwe do osiągnięcia przez modyfikacje kextów. Na przykład u mnie, w DSDT mam poprawki do dźwięku, grafiki, jasności ekranu, usypiania, power managemntu, resetu biosu i inne. Bez DSDT musiałbym modyfikować i dodawać znacznie więcej kextów. Dużą zaletą DSDT jest to, że jest uniwersalne, raz zrobione będzie działać na każdej wersji Mac OS X, ewentualnie będzie wymagało nowych, małych poprawek. DSDT z SL z powodzeniem można używać na Lionie.

 

11) jak to jest możliwe - jak są przekazywane dane urządzeń ?
To zależy od urządzenia. Jeśli chodzi o temperaturę, to najczęściej używa się pluginów do FakeSMC.

 

Wiem także, że to bootloader ładuje Boot.plist i że potrafi do niej wrzucać stringi urządzeń

12) po co ?

org.chameleon.Boot.plist (dawniej com.apple.Boot plist) to plik konfiguracyjny chameleona, można w nim włączyć różne fixy i dostosować ustawienia.

Jeśli chodzi o stringi, to kiedyś była jedyna metoda odpalania kart graficznych, która nie wymagała dodawania kextów. Obecnie mamy Graphics-Enablera, który radzi sobie z większością kart, które da się uruchomić w OS X oraz dopisywanie grafiki do DSDT, kexty jak ATY_Init, więc EFI-String traci mocno na popularności.

 

Czytałem także, że chameleon nadpisuje DSDT.

13) w jaki sposób ?

Sprawia, że system widzi wyłącznie DSDT z pliku, a nie faktyczne na urządzeniu. Zastępowana jest całość, dlatego różnice pomiędzy nimi, mogą powodować KP, lub nawet uszkodzenie sprzętu w skrajnych przypadkach.

 

13) po co w płycie startowej z chameleonem mamy kernel (mach_kernel) ?

Nie jest to obowiązkowe. Ale często bardzo przydatne. Chodzi o to, że na płytach ze Snow Leoparda mamy starą wersję systemu. 10.6.3 nie radzi sobie z takimi rzeczami jak procesory z serii i (Nehalem i Sandy Bridge). Wrzucenie mach_kernel z nowszej wersji systemu pozwala na uruchomienie instalacji na tym sprzęcie. Wrzucenie modyfikowanego kernela (jak legacy_kernel) umożliwia instalację OS X z Retaila na procesorach AMD, na których oryginalny kernel po prostu nie działa.

Odnośnik do komentarza
Udostępnij na innych stronach

Dalej znalazłem, że 10.5.6 zaczął zaglądać do DSDT

9) w jaki sposób, w sensie czy bootloader, czy system ?

 

W chameleonie jest tak, że bootloader "podstawia" tabele DSDT z pliku. Wówczas system "widzi" to co mu podamy, zamiast to co znajduje się faktycznie w sprzęcie.

 

Ma to wiele zastosowań, głównie takie, że nie trzeba grzebać w kextach. Wiele różnych modyfikacji można zastąpić jedną. Często modyfikacja DSDT umożliwia rzeczy, które były by niemożliwe do osiągnięcia przez modyfikacje kextów. Na przykład u mnie, w DSDT mam poprawki do dźwięku, grafiki, jasności ekranu, usypiania, power managemntu, resetu biosu i inne. Bez DSDT musiałbym modyfikować i dodawać znacznie więcej kextów. Dużą zaletą DSDT jest to, że jest uniwersalne, raz zrobione będzie działać na każdej wersji Mac OS X, ewentualnie będzie wymagało nowych, małych poprawek. DSDT z SL z powodzeniem można używać na Lionie.

Jest to także o tyle dobre, że po wprowadzeniu zmian do DSDT nie musimy kompilować na nowo całego BIOSu z przerobionymi tabelami i nie musimy wgrywać tego BIOSu do PC. Z przerobionymi tabelami w BIOSie mogłyby być np problemy w windowsie (m.in przy zmianie dev id chipsetu czy wifi)

 

11) jak to jest możliwe - jak są przekazywane dane urządzeń ?

To zależy od urządzenia. Jeśli chodzi o temperaturę, to najczęściej używa się pluginów do FakeSMC.

Pluginy do FakeSMC czytają dane z kontrolerów IO na płycie głównej (Winbond, ITE) lub w przypadku kiedy są nie obsługiwane czytają dane z ACPI o ile się nie mylę. Są też pluginy do geforceów i radeonów. Jak to działa - nie mam pojęcia, wiem że plugin odpowidzialny jest za "zczytanie" danych z kontrolera IO.

 

Wiem także, że to bootloader ładuje Boot.plist i że potrafi do niej wrzucać stringi urządzeń

12) po co ?

 

org.chameleon.Boot.plist (dawniej com.apple.Boot plist) to plik konfiguracyjny chameleona, można w nim włączyć różne fixy i dostosować ustawienia.

Jeśli chodzi o stringi, to kiedyś była jedyna metoda odpalania kart graficznych, która nie wymagała dodawania kextów. Obecnie mamy Graphics-Enablera, który radzi sobie z większością kart, które da się uruchomić w OS X oraz dopisywanie grafiki do DSDT, kexty jak ATY_Init, więc EFI-String traci mocno na popularności.

com.apple.Boot.plist to nie jest plik konfiguracyjny chameleona, no po części. Plik ten naturalnie występuje w systemie i za pomocą stringów się tam znajdujących "wydajesz" komputerowi polecenia co ma zrobić. Np kiedyś komputery Apple'a nie były uruchamiane w 64bitach a w 32 - był wpis właśnie w tym pliku. Chameleon także używa tego pliku - teraz został przemianowany na org.chameleon.Boot.plist - i w nim można dodawać stringi aby nie robić burdelu w pliku systemowym. Oczywiście jeżeli nie mamy tego pliku w /Extra bootloader czyta plik z katalogu systemowego. Chameleon obsługuje więcej stringów niż sam system - to oczywiste, np. GraphicsEnabler.

 

Co do EFI String - jest to już mało popularne bo jest kłopotliwe, czasochłonne itp. Jest to jednak niezastąpione przy dwóch grafikach w komputerze - zwłaszcza Nvidii i ATI. Przez EFI Stringa można też odpalić LAN.

Odnośnik do komentarza
Udostępnij na innych stronach

11) jak to jest możliwe - jak są przekazywane dane urządzeń ?

To zależy od urządzenia. Jeśli chodzi o temperaturę, to najczęściej używa się pluginów do FakeSMC.

Pluginy do FakeSMC czytają dane z kontrolerów IO na płycie głównej (Winbond, ITE) lub w przypadku kiedy są nie obsługiwane czytają dane z ACPI o ile się nie mylę. Są też pluginy do geforceów i radeonów. Jak to działa - nie mam pojęcia, wiem że plugin odpowidzialny jest za "zczytanie" danych z kontrolera IO.

To zależy od pluginu. IntelCPUMonitor odczytuje dane chyba bezpośrednio z procesora. Ja w laptopie nie mam dodatkowych kontrolerów IO (ani Winbonda, ani ITE). Część danych jeszcze można odczytać przez ACPI, ale nigdy nie chciało mi się w to bawić.

 

iStig, jeśli Ci się bardzo chce i znasz C++ to możesz sobie pobrać źródła pluginów do FakeSMC czy Chameleona i zobaczyć jak to tam działa. Większość rozwiązań OSx86 jest open source.

 

com.apple.Boot.plist to nie jest plik konfiguracyjny chameleona, no po części. Plik ten naturalnie występuje w systemie i za pomocą stringów się tam znajdujących "wydajesz" komputerowi polecenia co ma zrobić. Np kiedyś komputery Apple'a nie były uruchamiane w 64bitach a w 32 - był wpis właśnie w tym pliku. Chameleon także używa tego pliku - teraz został przemianowany na org.chameleon.Boot.plist - i w nim można dodawać stringi aby nie robić burdelu w pliku systemowym. Oczywiście jeżeli nie mamy tego pliku w /Extra bootloader czyta plik z katalogu systemowego. Chameleon obsługuje więcej stringów niż sam system - to oczywiste, np. GraphicsEnabler.

 

No trochę się rozpędziłem. Chameleon używa com.apple.boot.plist który oryginalnie był w systemie z możliwością dodania dodatkowych kluczy i wartości.

Odnośnik do komentarza
Udostępnij na innych stronach

iStig, jeśli Ci się bardzo chce i znasz C++ to możesz sobie pobrać źródła pluginów do FakeSMC czy Chameleona i zobaczyć jak to tam działa. Większość rozwiązań OSx86 jest open source.

 

tego chciałem uniknąć :-D wychowałem się na C++, ale przeglądanie tysięcy linii kodu nie należy do ulubionych moich czynności ;-). Wstępnie przejrzałem już bibliotekę fake efi. i poznałem parę odpowiedzi na temat udawania EFI. Tak jak wspomniałem jest tak, że boot services po starcie kernela nie są już dostępne. Tutaj Fake EFI uzupełnia to co kernel potrzebuje, aby się nie wysypać, natomiast runtime services są tylko wstępnie inicjowane - Elliot stwierdza, że niektóre kexty (prawdopodobnie AppleEFIRuntime) mogą się odwołać do nich, ale bez sprawdzania, tylko aby zobaczyć czy nie są puste (null). Rozwiązanie ewentualnych późniejszych problemów widzi przez odpowiednie kexty... Czyli nie mamy pełnej implementacji EFI.

 

 

com.apple.Boot.plist to nie jest plik konfiguracyjny chameleona, no po części. Plik ten naturalnie występuje w systemie i za pomocą stringów się tam znajdujących "wydajesz" komputerowi polecenia co ma zrobić. Np kiedyś komputery Apple'a nie były uruchamiane w 64bitach a w 32 - był wpis właśnie w tym pliku. Chameleon także używa tego pliku - teraz został przemianowany na org.chameleon.Boot.plist - i w nim można dodawać stringi aby nie robić burdelu w pliku systemowym. Oczywiście jeżeli nie mamy tego pliku w /Extra bootloader czyta plik z katalogu systemowego. Chameleon obsługuje więcej stringów niż sam system - to oczywiste, np. GraphicsEnabler.

 

tu chodziło mi bardziej o to jak działają ta stringi, co w sobie mają i jak taki bootloader to interpretuje - ok - poczytam sobie ;-)

Odnośnik do komentarza
Udostępnij na innych stronach

tu chodziło mi bardziej o to jak działają ta stringi, co w sobie mają i jak taki bootloader to interpretuje - ok - poczytam sobie ;-)

 

W dokumentacji chameleona jest plik boothelp.txt, większość parametrów jest w nim opisanych.

 

Edit: Według mnie wiedza jak dokładnie działa emulacja EFI nie jest wymagana by postawić porządnie hackintosha. Zagłębiają się w to głównie ludzie, którzy chcą rozwijać Chameleona.

Odnośnik do komentarza
Udostępnij na innych stronach

tu chodziło mi bardziej o to jak działają ta stringi, co w sobie mają i jak taki bootloader to interpretuje - ok - poczytam sobie

String robiony jest ze stosownej plisty z informacjami np o karcie graficznej. Taka przygotowana plista musi być potem skonwertowana do szesnastkowego systemu liczbowego. Taki string jest następnie"wstrzykiwany" przez chameleona.

 

Tutaj przykład tworzenia EFI Stringa do grafiki. Temat stary ale nadal aktualny

http://forum.netkas.org/index.php?topic=222.0

GraphicsEnabler robi to po prostu za nas. Posiada listę kart graficznych z DevID oraz domyślnymi framebufferami, a PCIRoot odczytywany jest z automatu przez chameleona.

Odnośnik do komentarza
Udostępnij na innych stronach

Edit: Według mnie wiedza jak dokładnie działa emulacja EFI nie jest wymagana by postawić porządnie hackintosha. Zagłębiają się w to głównie ludzie, którzy chcą rozwijać Chameleona.

 

ok nie muszę znać technicznego sposobu rozwiązania, ale potrzebuję znać schemat. Bez takiej wiedzy nie wiesz, które rozwiązanie jest dobre - na początku rozwiązania Tonyego wydają się dobre, ale jak wiesz jak to wszystko działa to zdajesz sobie sprawę, że można to zrobić lepiej oraz dlaczego.

Obecnie wszyscy robią dumpy tablic DSDT, bo to "bardzo pomaga", ale skąd się nagle to wzięło. Czy pojawiło się to przez to, że w pewnej wersji Mac OS X wymagał tego, czy raczej jest to rozwinięcie tematu symulacji EFI.

Odnośnik do komentarza
Udostępnij na innych stronach

Obecnie wszyscy robią dumpy tablic DSDT, bo to "bardzo pomaga", ale skąd się nagle to wzięło. Czy pojawiło się to przez to, że w pewnej wersji Mac OS X wymagał tego, czy raczej jest to rozwinięcie tematu symulacji EFI.

Wzięło się to z tego, że początki Hackintosów to byla tylko kwestia odpalenia systemu na PC bez bajerów. Kiedy stawianie Mac OS X na PC stało się "proste" wzięto się za kolejne rzeczy z listy, czyli Power Managament. Wiązało się to przeważnie z przerabianiem DSDT i w celu ułatwienia zrobiono metodę wczytywania DSDT z pliku aby nie kompilować biosu ze zmodyfikowanymi tabelami, a co za tym idzie wgrania go do PC. Jak już wcześniej pisałem modyfikacje DSDT przydają się w Mac OS X na PC, a w innych systemach mogłyby tylko zaszkodzić.

 

Do niedawna DSDT należało upodobnić do DSDT z komputerów Apple. Tablice DSDT w najnowszych Macach są niemal identyczne do tych z PC. Ponadto w 10.6.8 i 10.7.x hackintoshe (te nowe na CPU serii "i") odpalają już bez DSDT ! Jednak aby odpalić inne rzeczy typu dźwięk itp należy nanieśc kilka poprawek i DSDT stosuje się nadal.

 

Na chwilę obecną są tylko dwa sensowne rozwiązania - Chameleon, który niesamowicie szybko się rozwija i "obrasta" w nowe funkcje oraz XPC który oparty jest o EFI. XPC potrafi odpalić oryginalny obraz Liona do instalacji z obrazu dmg czego nie potrafi Chameleon (mam nadzieję, że już nie długo). Niestty ma on wg mnie inne bolączki w postaci dłuższego czasu konfigurowania opcji - odpalanie grafiki itp. Co kto lubi.

Odnośnik do komentarza
Udostępnij na innych stronach

dziękuję za wszystkie odpowiedzi. Uzupełniłem swoją wiedzę o EFI i ACPI i w końcu znam odpowiedzi na wcześniejsze pytania. Wcześniej nie bardzo rozumiałem jak się ma ACPI do EFI - postrzegałem to raczej jako rozszerzenie BIOSu, ale tylko dla BIOSu. Wydawało mi się, że skoro EFI ma dostęp do firmware urządzeń to sterowanie odbywa się bezpośrednio i tak w sumie jest, tylko to wszystko normalizuje nam właśnie ACPI. ACPI wyznacza standardy zarządzania urządzeniami, kontrolą energii i także EFI po prostu ma swój interfejs ACPI.

Skąd się wzięła "moda" na dumpy tablic ? Tak jak pisałem wcześniej - pierwszy bootloader "podał" to co było potrzebne, aby system wystartował i resztą problemów można się zajmować później, czyli także i teraz. Wszystkie nowe rozwiązania to naturalna ścieżka uzupełniania braków implementacji EFI, czyli uzupełnianie brakującej funkcjonalności w systemie. Co potrzebuje wiedzieć nowy hackintoshowiec ? powinien sobie właśnie zdawać sprawę, że nie mamy symulowanego całego EFI, ale pracę idą właśnie w tym kierunku. Przy nowych rozwiązaniach powinien zadać sobie pytanie, co one robią, czy są kolejnym uzupełnieniem brakujących funkcjonalności, czy też innym podejściem do już istniejących.

Dla osób, które chcą dokładnie wiedzieć jak to działa (podejście programistyczne) polecam książkę "Mac OS X Internals: A Systems Approach" napisanej przez Amita Singh. Początek rozdziału drugiego da nam ogólne spojrzenie, a rozdział czwarty bardzo szczegółowy proces bootowania. W google books znajdziecie podgląd tej książki, niestety bez najbardziej interesujących stron. Jest na to "sposób" - na drugiej stronie okładki znajdziecie kod do elektronicznej wersji na 45 dni ;-) Później, tak jak janek202 napisał: "Większość rozwiązań OSx86 jest open source.", pozostaje poczytanie dokumentacji

ów rozwiązań.

Odnośnik do komentarza
Udostępnij na innych stronach

iStig, fajnie, że drążysz temat ale nawet do rewelacyjnego postawienia hackintosha jest to niepotrzebne. Tak jak Janek zauważył - tylko jeśli chcesz rozbudować chameleona lub z czystej ciekawości.

 

Do idealnego postawienia hamaca wystarczy wiedza co to jest bootloader, jaki mamy wybór w bootloaderach, odpowiedni dobór kextów do komputera, jak przerobić DSDT. Aby zrobić coś więcej np instalator (jak dla mojej mobo MSI P55-GD65 link poniżej w stopce) potrzeba troszkę znać troszkę perla i package makera.

 

PS: odświeżona wersja mojego instalatora jest już prawie gotowa. Nowa wersja jest dla całej serii MSI pod LGA 1156 czyli P55/H55/H57.

Odnośnik do komentarza
Udostępnij na innych stronach

Generalnie kluczem całej zabawy jest tak zwany bootloader. Tak zwany, bo tak naprawdę bootloader, to tylko jedna z funkcji tego czym obecnie jest Chameleon, XPC czy inne rozwiązania tego typu.

W środku mamy:

1. Bootmanager -> wybór partycji startowej (także innych systemów) + opcje (-v, -x, -s...)

2. Emulacja / implementacja EFI

3. Możliwość injekcji modyfikowanych tablic ACPI z pliku (przede wszystkim DSDT)

4. Możliwość zdefiniowana dowolnej identywikacji modelu Mac'a (SMBIOS).

5. Możliwość załadowania dodatkowych / zmodyfikowanych kextów ze specjalnej nie-systemowej lokalizacji (Extra)

6. Możliwość załadowania modyfikowanego jądra systemu (kernel)

7. Wbudowane automatycznie działające "fix'y", uruchamiane przy pomocy wpisów w pliku konfiguracyjnym

8. Możliwość dodawania obsługi dodatkowych urządzeń (przede wszystkim kart graficznych) przez injekcję customowego EFI String'a.

 

Pewnie jeszcze o czymś zapomniałem. Ale to i tak jest więcej niż potrzebuje wiedzieć poczatkujacy hackintoshowiec ;)

 

To wszystko powoduje, że na w miarę sprzyjającym sprzęcie można zainstalować nie są potrzebne modyfikacje samego systemu. Więc można używać Mac OS X w pełnym wymiarze, z działającym Power Management'em, usypianiem, aktualizacjami przez Software Update... tak jak na oryginalnym maczku.

 

Oczywiście nic nie jest do końca idealne i zdarza się, że po jakiejś aktualizacji coś przestaje działać - najczściej dźwięk. Ale przy dobrze postawionych hack'u są to drobiazgi, a nie pad systemu.

Niemniej aby komfortowo tego używać dobrze mieć przynajmniej podstawową wiedzę o działaniu takiego systemu -gdzie jest bootloader, kexty, jak to instalować / deinstalować. Dla bardziej wytrwałych jeszcze dojdzie edycja DSDT - czyli uważne ctrl-C + ctrl-V, podstawy terminala i tyle. Nic trudnego ani skomplikowanego.

Wnikanie głębiej to temat dla hobbystów lub deweloperów.

Instalacje robione "automatami", typu Multibeast, a w najgorszym wypadku dystrybucje, mają zwykle krótki żywot. Każdy hackintosh to inna konfiguracja, inny bios i potrzebne jest indywidualne dobranie optymalnych rozwiązań.

 

Skąd się wzięła "moda" na dumpy tablic ? Tak jak pisałem wcześniej...

Nie bardzo rozumiem jaki masz cel? Pytasz czy chcesz nam coś opowiedzieć? ;)

Bo trochę prowadzisz całą dyskusję w niewiadomym celu. Od pytań zasadniczych dla początkujących po zupełnie abstrakcyjne tematy całej książki dot. bootowania. Może i warto z grubsza wiedzieć o łańcuszu boot1, boot1, by potem wiedzieć czym jest boot0hfs. Ale nie przesadzajmy...

W temacie OSx86 najlepsza nauka to ręczne postawienie OSX na kilku PC - tak by działało wszystko co się da. Wydaje mi się, że cała potrzebna do tego "teoria" (a nawet więcej) jest na naszym forum w pordanikach.

Natomiast rzeczywiście brakuje samego opisu "Jak to działa". Niemniej boję zapędzenie się w szczegółowe dokumentacje programistyczne, zamiast wyjaśnić, tylko niepotrzebnie taki tekst skomplikują.

 

ps. ACPI w EFI czy ACPI w BIOS to są takie same tablice.

Odnośnik do komentarza
Udostępnij na innych stronach

może i faktycznie się zapędziłem z niektórymi rzeczami, ale to przez to, że brakuje i to nie tylko na tym forum, stosownego wprowadzenia. Dla Was siedzących w tym temacie pewne rzeczy są oczywiste. Ja od około 10lat nie programuje, ani nie siedzę w tematach sprzętowych. Mam ogólne pojęcie ;-). Zaczynam czytać forum i dowiaduję się o EFI - moje pierwsze wyobrażenie o EFI to, że to jakiś program albo interfejs. Nie śledząc rynku nie przyszło mi do głowy, że to coś zastępuje całkiem BIOS. Cały czas traktowałem to jako coś po starcie BIOS...

 

Szumnie nazywana emulacja EFI okazuje się tylko częściowym rozwiązaniem. Pokaż mi gdzie jest napisane, że tak jest i dlatego w przypadku problemów masz różne "lekarstwa". Bardzo dużo elementów jest opisywanych, ale nigdzie nie ma podanej idei.

 

Dalej zobacz sobie tutoriale na forum. Obecnie mamy Liona, więc sięgam tam, wchodzę w poradniki instalacji i... nie ma nic... OK przerabiając instalację Tonyego (zaczynałem od 10.6.3, później update combo do 10.6.8m, a na końcu Lion z Mac Appstore) myślę sobie, że zacznę wg przepisów z tego forum. Wybieram więc poradniki z 10.6.x i widzę dwa z czego jeden mnie nie dotyczy bo jest bez użycia DVD. Wybieram więc poradnik spisany przez Ciebie i czytam, że "Opisana metoda polega na instalacji systemu Mac OS X 10.6 Snow Leopard z poziomu działającego systemu Mac OS X w starszej wersji. ". Nie mam starszej wersji, więc już nie mam dla siebie poradnika.... Przeglądam inne poradniki i sytuacja bardzo podobna - w opisie odwołują się do poprzednich metod. Oczywiście mamy info o aktualizacji, które totalnie nic nie mówią nowemu użytkownikowi.

 

Odwaliliście naprawdę kawał świetnej roboty, macie na pewno olbrzymią wiedzę, ale nie zrozum mnie źle - nowa osoba, która tu trafi nie ma pojęcia co zrobić. Czytałem poradniki, wstępniaki itd., ale wszystko to powodowało, że trzeba było szukać informacji co dana rzecz robi, albo lepiej co w ogóle oznacza...

 

Nie odbierajcie tego tekstu jako krytykę - to są moje odczucia z poszukiwania metody instalacji. Niesamowitym plusem tej społeczności jest to, że jest aktywna i pomaga w rozwiązaniu problemu. Wystarczy zrobić ogólny schemat działania, a ludzie będą sami wiedzieli czego szukać.

Odnośnik do komentarza
Udostępnij na innych stronach

Dalej zobacz sobie tutoriale na forum. Obecnie mamy Liona, więc sięgam tam, wchodzę w poradniki instalacji i... nie ma nic... OK przerabiając instalację Tonyego (zaczynałem od 10.6.3, później update combo do 10.6.8m, a na końcu Lion z Mac Appstore) myślę sobie, że zacznę wg przepisów z tego forum. Wybieram więc poradniki z 10.6.x i widzę dwa z czego jeden mnie nie dotyczy bo jest bez użycia DVD. Wybieram więc poradnik spisany przez Ciebie i czytam, że "Opisana metoda polega na instalacji systemu Mac OS X 10.6 Snow Leopard z poziomu działającego systemu Mac OS X w starszej wersji. ". Nie mam starszej wersji, więc już nie mam dla siebie poradnika.... Przeglądam inne poradniki i sytuacja bardzo podobna - w opisie odwołują się do poprzednich metod. Oczywiście mamy info o aktualizacji, które totalnie nic nie mówią nowemu użytkownikowi.

 

Nie będę się wtrącać w samą dyskusję, gdyż większość spraw została już wyjaśniona. Mam jednak parę słów do powiedzenia nt. powyższej uwagi.

Otóż posiadamy bardzo dopracowany tutorial, który nie dotyczy w żadnym wypadku poprzedniej wersji systemu, mowa o tworze witucha0:

 

http://hamac.pl/topics15/instalacja-mac ... vt2646.htm

 

Sądzę, iż trzeba go przypiąć poza głównym działem o Snow Leopard, dopiero teraz zauważyłem, iż tak nie jest o.O

 

Poza tym w przypadku niektórych konfiguracji mamy gotowe narzędzia, chociażby wiele razy poruszany temat UniBootX itp.

Ja osobiście, wczoraj opublikowałem opis instalacji na pewnym laptopie Asusa - przez jego szczegółowość musiałem rozdzielić go na dwa posty ;-)

 

Jeśli zaś chodzi o niezbyt rozbudowany dział dot. najnowszego systemu Apple - sądzę, że ma to związek z tym, iż wielu użytkowników forum nie jest przekonana do Mac OS X Lion, któremu - moim skromnym zdaniem - daleko do mienia dopracowanego produktu. Pomińmy już fakt, że jest on na tyle świeży, iż nieco czasu minie, aż zbudowane zostanie tak pokaźnych rozmiarów zaplecze jakie istnieje w przypadku Snow Leoparda~

 

Nie sądzę, aby można Twoje słowa odebrać jako niepotrzebną krytykę, mimo wszystko wiemy, iż potrzebne są zmiany - kwestia tego, aby je wprowadzić w życie, co stopniowo jest czynione~

Odnośnik do komentarza
Udostępnij na innych stronach

Nie ma nic przeciw krytyce. Tylko na razie chyba przejrzałeś forum na bardzo szybko ;) i w efekcie opierasz tą krytykę na argumentach z którymi zgodzić się nie mogę.

 

dowiaduję się o EFI - moje pierwsze wyobrażenie o EFI to, że to jakiś program albo interfejs.

Jaki jest sens opisywania czegoś co jest n-razy (i to po polsku) opisane w sieci?

Zaraz się okaże, że trzeba jeszcze opisać czym jest procesor, pamięć RAM itd ;)

http://lmgtfy.com/?q=co+to+jest+EFI

i w wikipedii:

http://pl.wikipedia.org/wiki/Extensible_Firmware_Interface

Tyle co trzeba mamy na forum w słowniczku:

http://hamac.pl/topics8/slowniczek-term ... -vt526.htm

EFI
  • 1. Następca BIOS'u stosowany w MacOS. W przypadku PC jego funkcjonalność zapwnia specjalny bootloader.
    2. Partycja EFI, gdzie opcjonalnie może znajdować się bootloader i także folder Extra

 

Szumnie nazywana emulacja EFI okazuje się tylko częściowym rozwiązaniem (...) w przypadku problemów masz różne "lekarstwa"

Dlaczego? Co nie działa? Jakie lekarstwa?

Warto mieć świadomość, że ta technologia - emulacji EFI - została światu dostarczona osobiście przez firmę... Apple. Było to rozwiązanie potrzebne, by developerzy mogli pracować na rozwojem i testowaniem Mac OS X na platformę Intel, zanim firma zaczęła produkować oparte o nią komputery. Więc nie jest to jakiś niepewny, kombinowany wynalazek domorosłych hackerów ;)

Druga sprawa, to jeśli nie odpowiada Ci ze względów ideowych emulacja, to masz XPC.

 

Wybieram więc poradniki z 10.6.x i widzę dwa z czego jeden mnie nie dotyczy bo jest bez użycia DVD. Wybieram więc poradnik spisany przez Ciebie i czytam, że "Opisana metoda polega na instalacji systemu Mac OS X 10.6 Snow Leopard z poziomu działającego systemu Mac OS X w starszej wersji. ". Nie mam starszej wersji, więc już nie mam dla siebie poradnika....

Tu masz częściowo rację - tzn. poradnik, którego szukasz był przyklejony po prostu w dziale 10.6, a nie w poradnikach. Już nie pamiętam dlaczego i już to zmieniłem.

W każdym razie taki poradnik jak najbardziej istnieje:

http://hamac.pl/topics33/instalacja-mac ... vt2646.htm

 

w opisie odwołują się do poprzednich metod.

Bo po co po raz n-ty opisywać co kliknąć w Disk Utility itd...

 

Obecnie mamy Liona

Kto ma ten ma ;)

Ja używam komputera do pracy i potrzebuję pewnego systemu, a nie wersji beta ;) Dlatego też np. ja poradnika nie napiszę jeszcze przez jakiś czas. Ale to nie znaczy, że na forum nic nie ma:

http://hamac.pl/topics35/poradnik-instr ... vt5362.htm

http://hamac.pl/topics35/instalacja-lio ... vt5373.htm

http://hamac.pl/topics35/stawiamy-liona ... vt4026.htm

 

przerabiając instalację Tonyego

Tylko, cała idea Tony'ego polega na nie tłumaczeniu kompletnie niczego. Więc to chyba nie jest najlepszy przykład...

 

brakuje (...) stosownego wprowadzenia.

Tak jak pisałem, faktem jest, że nie mamy na forum wytłumaczego "Jak to działa".

Przyczyna jest prosta - to nie jest niezbędne do zainstalowania OSX na PC i w efekcie nie było "ciśnienia". Ale na pewno taki temat, jak to się mówi, wypadałoby mieć.

Trzeba o tym pomyśleć.

Odnośnik do komentarza
Udostępnij na innych stronach

No i jest jeszcze jeden fakt. Znaczna większość poradników jest pisana przez moderatorów. Kilka osób nie jest w stanie opisać i przetestować wszystkiego.
A już tym bardziej nie jest w stanie kupić każdej nowej płyty głównej, procesora, karty graficznej itp... To jest główna przyczyna, dlaczego temat SandyBridge (poza zdaje się jednym rozbudowanym wątkiem, niebędącym jednak poradnikiem) u nas leży i kwiczy.
Odnośnik do komentarza
Udostępnij na innych stronach

Nie ma nic przeciw krytyce. Tylko na razie chyba przejrzałeś forum na bardzo szybko ;) i w efekcie opierasz tą krytykę na argumentach z którymi zgodzić się nie mogę.

oj spędziłem tu sporo czasu

 

Jaki jest sens opisywania czegoś co jest n-razy (i to po polsku) opisane w sieci?

Zaraz się okaże, że trzeba jeszcze opisać czym jest procesor, pamięć RAM itd ;)

poczytaj co ludzie piszą - traktują EFI jako program, który coś robi

- "Efi jest tylko na leopada czy można uruchomić na tigerze?"

- "Wiem co to jest EFI, ale mam takie pytanie co daje instalacja EFI? jakie sa korzyści

Zaglądałem wcześniej w te linki co podałeś, potrafię korzystać z google... Problem w tym, że ja zakodowałem sobie zbyt fizycznie pojęcia BIOSu. Przecież często sie słyszy o uszkodzeniu BIOSu i wymianie układu - większość osób wie co robi BIOS i że jest właśnie na płycie głównej. Nie potrafiłem umieścić w tym wszystkim EFI - czytam, że zastępuje BIOS, ale jakoś nie docierało, że tak po prostu fizycznie na płycie nie ma tego wszystkim znanego układu BIOS, tylko właśnie EFI.

Zadaj pytanie znajomym co to jest BIOS, a co to jest EFI i jak wygląda proces uruchomienia komputera - ja otrzymałem odpowiedzi, że startuje bios, a później efi...

 

EFI
  • 1. Następca BIOS'u stosowany w MacOS. W przypadku PC jego funkcjonalność zapwnia specjalny bootloader.
    2. Partycja EFI, gdzie opcjonalnie może znajdować się bootloader i także folder Extra

 

a ten drugi punkt to szczególnie jasny dla nowego użytkownika ;-) szczególnie, że nie ma ani słowa o tym, że jest to twór, który powstał tylko ze względu na standardy i prawdopodobnie Apple go nie wykorzystuje. Brakuje informacji czy są jakieś korzyści z posiadanie takiej partycji itd.

 

Dlaczego? Co nie działa? Jakie lekarstwa?
Sama modyfikacja bootloadera Applowego umożliwia tylko uruchomienie systemu, bez zapewnienia pełnej funkcjonalności. Dopiero ładowanie tabel DSDT i inne kexty to są te właśnie lekarstwa.

 

Warto mieć świadomość, że ta technologia - emulacji EFI - została światu dostarczona osobiście przez firmę... Apple. Było to rozwiązanie potrzebne, by developerzy mogli pracować na rozwojem i testowaniem Mac OS X na platformę Intel, zanim firma zaczęła produkować oparte o nią komputery

fakt

 

Druga sprawa, to jeśli nie odpowiada Ci ze względów ideowych emulacja, to masz XPC.

a co to jest XPC jak nie inaczej serwowana emulacja ;-)

 

Tylko, cała idea Tony'ego polega na nie tłumaczeniu kompletnie niczego. Więc to chyba nie jest najlepszy przykład...

masz racje - tłumaczenie żadne, ale łatwo znaleźć co masz zrobić. Po pierwsze aktualizowane bazy sprzętu, które łatwo można postawić z podziałem na grupy cenowe. Po drugie proste instrukcje co trzeba zrobić, aby zainstalować dany system. To, że później jest tysiać wątków, co zrobić, bo coś nie działa to inna sprawa ;-)

 

Tak jak pisałem, faktem jest, że nie mamy na forum wytłumaczego "Jak to działa".

Skoro się w pierwszym poście zobowiązałem to mogę coś takiego przygotować, poproszę później o weryfikację i poprawki na język polski, bo z tym u mnie kiepsko :-D

Odnośnik do komentarza
Udostępnij na innych stronach

Po pierwsze aktualizowane bazy sprzętu, które łatwo można postawić z podziałem na grupy cenowe. Po drugie proste instrukcje co trzeba zrobić, aby zainstalować dany system.

Pomysł fajny, ale ciężko z jego realizacją, bo trzeba przetestować te zestawy. Bo potem może się okazać, że z polecanej serii sprzętu jeden model może sprawiać problemy (tak jak było z P7P55-M).

 

Ja na przykład nie mam dostępu do żadnego komputera z Sandy Bridge (nawet z Nehalemem moim braciom do gier wystarcza Core 2 Duo na LGA775, a ja używam dość starego laptopa). Jeśli ktoś ma czas i kasę (lub kogoś, od kogo może pożyczać najnowszy sprzęt) to jest to do zrobienia, problem z tym, że chyba takiej osoby na tym forum nie ma.

Odnośnik do komentarza
Udostępnij na innych stronach

poczytaj co ludzie piszą...

Oj piszą różne rzeczy. Niektórzy nie rozróżniają systemu operacyjnego od komputera i instalują Mac'a na PC ;)

 

EFI
  • 1. Następca BIOS'u stosowany w MacOS. W przypadku PC jego funkcjonalność zapwnia specjalny bootloader.
    2. Partycja EFI, gdzie opcjonalnie może znajdować się bootloader i także folder Extra

a ten drugi punkt to szczególnie jasny dla nowego użytkownika ;-) szczególnie, że nie ma ani słowa o tym, że jest to twór, który powstał tylko ze względu na standardy i prawdopodobnie Apple go nie wykorzystuje. Brakuje informacji czy są jakieś korzyści z posiadanie takiej partycji itd.

Tu zdania są podzielone.

Wg mnie trzymanie tam czegokolwiek jest niewygodne (upierdliwe jest każdorazowe montowanie tej partycji aby cokolwiek zmienić).

Dla innych ukrycie całego hackintoshowego bałaganu ma znaczenie estetyczne czy ideowe.

Praktyczny plus istnieje tylko w sytuacji gdy tego samego dysku używa się na PC i na oryginalnym maczku - dość rzadka sytuacja.

Jest to temat na dłuższą dyskusję, dla już nieco zorientowanych w temacie. Bo "Utrudnienie dostępu do Extra" wiele poczkującemu nie powie.

 

Sama modyfikacja bootloadera Applowego umożliwia tylko uruchomienie systemu, bez zapewnienia pełnej funkcjonalności. Dopiero ładowanie tabel DSDT i inne kexty to są te właśnie lekarstwa.

Ale to nie wynika z emulowania EFI.

Na DVD z Mac OS X masz sterowniki, tylko do tych podzespołów, które montowane są w komputerach Apple. Więc do pozostałych potrzebne są dodatkowe lub modyfikowane kexty.

ACPI (w tym DSDT) jest to samo, niezaleźnie czy jest w Biosie czy EFI. Różni producenci mają różne formy tych tablic, czego nie przewiduje Mac OS X - aby wszystko działało trzeba trochę upodobnić kod DSDT to tego jaki jest w maczkach. Nie zmieni tego sama przesiadka na płyty główne z EFI.

 

a co to jest XPC jak nie inaczej serwowana emulacja ;-)

Uruchamiany jest też po Biosie - w komputerze z Biosem innej opcji nie ma. Ale zasada działania jest inna, bo jest to już pełnoprawna implementacja całego UEFI, a nie "tylko" platforma do uruchomienia Mac OS X na PC.

Teoretycznie jest to lepsza rzecz niż Chameleon. Bo kolejne wersje Mac OS X nie wymagają już nowych wersji bootloader'a. W praktyce Chameleon jest tak rozwinięty i rozwijany, że ciężko przebić jego funkcjonalność...

 

Tylko, cała idea Tony'ego polega na nie tłumaczeniu kompletnie niczego. Więc to chyba nie jest najlepszy przykład...

masz racje - tłumaczenie żadne, ale łatwo znaleźć co masz zrobić. (...) To, że później jest tysiać wątków, co zrobić, bo coś nie działa to inna sprawa ;-)

No właśnie tu tkwi haczyk. Moim zdaniem nie jest możliwe zrobienie dobrego rozwiązania dla dużej liczby różnych konfiguracji. Efektem zawsze jest zlepek zbyt dużej ilości modyfikacji, co albo od razu albo po aktualizacji generuje mniejsze lub większe problemy. Za to napędza ludzi i w efekcie reklamodawców ;)

Na pewno takie "łatwe" rozwiązania napędzają ruch w sieci i reklamodawdów, ale mimo to, szczerze powiem, że nie chciałbym by nasze forum szło w tym kierunku.

 

Skoro się w pierwszym poście zobowiązałem to mogę coś takiego przygotować, poproszę później o weryfikację i poprawki na język polski, bo z tym u mnie kiepsko :-D

Próbuj. Byle było konkretnie i syntetycznie. Jeśli będzie dobrze, to na pewno taki temat przykleimy.

Prawie cała moderacja na forum to dyslektycy, więc na pewno skutecznie pomożemy w kwestiach językowych :D

Odnośnik do komentarza
Udostępnij na innych stronach

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ą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie
 Udostępnij

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystanie z tej witryny, wymaga zakceptowanie naszych warunków Warunki użytkowania.