Hirdetés

Új hozzászólás Aktív témák

  • Smiley

    addikt

    válasz general #30231 üzenetére

    Tudod az a baj, hogy ugy szeretnel kompromisszummentes hacklit csinalni otthonra, hogy az alapokkal nem vagy tisztaban, es nekem nem igazan az jon le, hogy utanaolvastal a mukodesi elvnek. De akkor itt egy gyorstalpalo... ha mar ugyis esik az eso, es itt ragadtam a gep elott.

    Az egesz osx86 project ugy mukodik, hogy letezik egy specialis bootload-er ami kepes betolteni a mach kernel-t. Azonban ez nagyon keves lenne ahhoz, hogy elinduljon, ugyanis a mac-ben levo EFI nem teljesen ugyanaz mint a UEFI es egyaltalan nem kompatibilis a regi BIOS-al. Az alapelvek az UEFI-vel ugyan mar megegyeznek, de van kozte mukodesbeli kulonbseg. Azert hogy a hardware-ek megfeleloen mukodjenek osx alatt is, leegyszerusitve muszaj bizonyos helyeken belenyulni BIOS/UEFI altal legeneralt DSDT-be (Differentiated System Description Table) meg a mach kernel betoltese elott. Ezert egy szukebb community letrehozta ezt a specialis bootloadert, ami kepes erre. Amikor ez az egesz kezdodott akkor meg az osszes PC BIOS alapu volt, ezert ezt a bootload-ert elotte meg fel kellett kesziteni a GPT-rol valo bootolasra is, ugyanis a BIOS csak az MBR-t ismeri. Az Apple pedig az inteles valtas ota ezt a schema-t alkalmazza. A Chameleon volt az elso szeleskorben hasznalt bootload-er. Ez egy kevesbe felhasznalobarat, fapados, de jol programozhato software volt, majd ebbol alukult ki az igazan felhasznalobarat Clover. A kulonbozo BIOS/UEFI-vel rendelkezo alaplapok azonban mind a sajat nyelvukon valositjak meg ezt a DSDT tablat. A Chamelon idejeben ennek a modositasahoz kellett a komolyabb programozasi keszseg is, de eljott a Clover, amely mar kepes ezt "on the fly" megvalositani. Ezen kivul meg tovabb fejlesztettek, es kepes a gyari driver-eket is "on the fly" patch-elni. Ezek az "on the fly" patch-ek meg altalanosabbak lettek, ezaltal a user-ek nagy szazalekanak mar nem is kell ezzel foglalkoznia. (Tehat nem kell modositani peldaul az eredeti driver-t ahhoz, hogy patch-juk, ezaltal szabad utat engedve az automatikus frissiteseknek.) A kovetkezo lepcso mar az Apple fele biztonsagi mechanizmus kijatszasa volt, ami "csak" eredeti hardware-en engedi futtatni a kernel-t, ez a DSMOS (Don't Steal Mac OS). Eloszor csak hardware-es megoldas volt, majd kesobb a voodoo project kereteben erre is szuletett software-s megoldas ez pedig a FakeSMC project. Szukseges volt meg a HFS+ driver beepitesere is. Ennek a kettonek (bootload-er es a FakeSMC) koszonhetoen kepesek a sima mezei PC-k futtatni a kernel-t. Az OS-nek azonban ennel joval tobbre van szuksege, ugyanis minden egyes mac modelnek van egy "technikai" leirasa ami alapjan az OS-s pontosan be tudja azonostiani, hogy milyen hardware-en is fut, es ez alapjan parameterezi fel magat automatikusan(Pl.: ACPI beallitasok) ez pedig az SMBIOS. Tehat szukseg volt ennek az emulalasahoz is. Ennek a resznek erdemes alaposabban utanaolvasni, ugyanis nagyon nem mindegy milyen SMBIOS-t is emulalunk (nem szerencses egy notebook profile-jat hasznalni egy asztali gep eseten, es forditva). Az ujabb Clover-ek mar kepesek ezt is kitalalni az ember helyett, ami az esetek nagy reszeben tokeletesen eleg, tehat a mezei user-nek mar ezzel sem kell foglalkoznia...
    Tehat a Clover-el szinte minden adott ahhoz, hogy futtasuk az OS-t PC-n. A Clover wiki reszletesen leirja az beepitett DSDT/Kernel patch-ek mire szolgalnak, es ezeket milyen esetekben es, hogy kell hasznalni. A telepito keszitese viszonylag egyszeru, ugyanis az Apple gyari script-je megcsinalni szinte mindent helyettunk, nekunk eleg csak a Clover-t feltepiteni, es a FakeSMC-t bemasolni a megfelelo helyre. Ezek utan kapunk egy default config file-t (plist fele Apple stilusban). Ez a file parameterezi fel a bootload-ert, kvazi megmondja neki, hogy a kernel elinditasa elott milyen szukseges modositasokat kell elvegezni a mar emlitett DSDT tablan es az Apple fele gyari driver-ken. Vannak azonban szukseges kernel flag-ek amelyek nelkulozhetetlenek ahhoz, hogy kikapcsoljuk az Apple kulonbozo vedelmi rendszereit, es ezaltal be tudjunk tolteni az alairassal nem rendelkezo driver-ket is. Ezeknek a listaja, es funkcioi szinten megtalhatok a Clover wiki oldalan. Ha elsore nem mukodik, akkor sajnos a user-nek utana kell jarnia mi is lehet a gond, szinte az osszes Clover parameter elerheto a bootload-er menujebol, ezzel is megkonnyitve a user dolgat. Ha sikerult megfelelo modositasokkal elinditani a telepitot es telepiteni is a rendszert, az meg nem jelenti azt, hogy maga a rendszer el is fog indulni, ugyanis a telepito windows-os nyelven fogalmazva ilyen csokkentett modnak felel meg. Itt azonban mar eleg reszletes kernel panic-kat szoktunk kapni, amibol konnyen ki lehet deriteni, hogy mi is a problema. Ha mar fut a rendszerunk akkor telepitjuk a Clover-t a /-re, hogy pendrive nelkul, is el tudjon indulni. Erdemes megjegyezni melyek voltak azok a patch-ek amiket alkalmaztunk a boot soran, mert most lehetosegunk nyilik ezeket veglegesiteni egy sajat Clover config-ban. Ehhez keszult egy egesz hasznalhato kattingatos felulet ami a CloverConfigurator. Itt szinte az osszes parameter beallithato. Ha mindent jol csinal az ember akkor a vegeredmenye egy olyan config file lesz ami teljesen lefedi az adott hardware-t. Ezt erdemes elmenteni, ugyanis innentol kezdve a kovetkezo rendszerekhez is fel tudjuk hasznalni.

    Szoval roviden-tomoren ez az alapveto mukodesi el. Azonban szukseg lehet ezen kivul egy minimalis unix tapasztalatra is, mivel letezenk olyan problemak amihez nelkulozhetetlen lehet pl a single user mode hasznalata. Remelem igy mar kicsit jobban atlatod, azt hogy amikor azt mondjuk, hogy erdemes a nehezebb uton elindulni, az azert van, mert ezaltal el tudod mondani nekunk, hogy pontosan milyen patch-ket alkalmaztal eddig, es azok milyen hibat produkaltak. Nem utolso sorban egyszer kell megirni egy ilyet, es utana olyan mint ha lenne egy sajat mac-unk olcso penzert. Arrol nem is beszelve, hogy az ilyen unibeast fele ossze-vissza binarisan patch-elt file-okrol azt se tudod, hogy mit csinalnak, azon kivul, hogy felulirjak az eredetit. Mar csak security szempontbol se idealis, ugyanis honnan tudod, hogy az a binaris file amit egy random ruszki oldalrol rakott bele valaki az unibeast telepitobe nem tartalmaz-e barmi fele kiskaput? Mivel az unibeast biztosan kikapcsolja az Apple osszes vedelmet, ezaltal siman hozzaferhetnek tavolrol a gepeden levo file-okhoz.

    Ennek sajnos ez az ara, de csak hogy egy peldat hozzak. En meg 2008-ban a chameleon idejeben amikor nem volt lehetoseg on the fly patch-re, es forditani kellett a DSDT.aml-t minden egyes modositas utan, raadasul ugye itt kezi patch-rol volt szo, tehat hozza kellett igazitani egy rakas dolgot... kb fel evig tartott megirni a sajat DSDT.aml file-t az adott gepemhez. Most ezt a Clover segitsegevel, 1-2 nap alatt vegig lehet zongorazni, mindenfele programozasi tudas nelkul. Ennyit valtozott a vilag 10 ev alatt.

Új hozzászólás Aktív témák