Untuk membuat fungsi bekerja lebih baik pada sebuah Hackintosh, kalian pasti butuh yang namanya DSDT (dan SSDT) yang telah di modifikasi. mengapa harus di modifikasi? hal ini di tujukan supaya profil hardware komputer kita, dapat di kenali oleh OS X itu sendiri.

Tujuan tutorial ini adalah untuk memberi contoh bagaimana cara memodifikasi DSDT bawaan laptop kalian supaya dapat bekerja dengan baik dengan hackintosh kalian.

Mungkin kalian telah melihat ada banyak DSDT yang telah di bagikan secara gratis di internet yang dapat kalian download. namun, meskipun kalian mungkin dapat DSDT dari internet yang walaupun dengan spesifikasi komputer yang sama, bisa di pastikan hampir selalu berakhir dengan kegagalan. Sederhananya, kalian tidak akan bisa memastikan apakah DSDT itu valid/cocok dengan komputer kalian walaupun ambil dari DSDT komputer yang sama jenisnya. Bahkan perbedaan kecil dalam konfigurasi hardware (versi BIOS, jumlah memori yang terpasang, opsi BIOS yang dipilih, dan perbedaan hardware lainnya seperti modul WiFi diinstal) dapat membuat perbedaan yang menyebabkan ketidakstabilan dan bug aneh jika kalian menggunakan file ACPI yang bukan hasil ekstrak dari komputer kalian sendiri.

 

Proses Patching ini akan melalui beberapa tahap yaitu:
  1. Meng-extract file ACPI native(asli) dari komputer kita
  2. Membongkar/disassembling file native
  3. Menganalisis dan melakukan filtering file native
  4. Memperbaiki error
  5. Patching/modifikasi
  6. Menyimpan (compiling) dan mengnstallnya pada komputer (hackintosh) kita.
Intinya adalah kita akan mengubah ACPI bawaan BIOS agar dapat di kenali oleh Apple, dengan cara mengubahnya menjadi DSDT.

 

Mengekstrak file ACPI asli
Semua BIOS komputer punya file ACPI untuk di berikan pada OS/sistem operasi. gampangnya, Semua sistem operasi akan mengambil file ACPI yang telah di sediakan oleh BIOS untuk mengenali hardware. Jadi, Kita akan mengambil file ACPI untuk di modifikasi. Kita dapat mengambil ACPI baik dari Linux, OS X, Windows, atau bahkan dari clover bootloader. file asli yang diekstrak dari masing-masing OS umumnya mirip, meskipun software yang digunakan untuk mengekstrak berbeda nama.

Ada beberapa cara untuk meng-ekstrak file ACPI yang telah tertanam pada komputer kita antara lain menggunakan aplikasi sebagai berikut:

Dalam tutorial kali ini, saya akan fokus pada bagaimana cara mengekstrak ACPI menggunakan clover.

Sekalipun kalian sudah berhasil menginstal OS X (hackintosh), kalian tidak langsung punya ACPI untuk hackintosh. Maka dari itu, kalian harus membuatnya terlebih dahulu. Kalian dapat mengekstrak ACPI dari komputer kalian yang nantinya akan bernama DSDT / SSDT serta berekstensi atau ber akhiran aml atau bin.

Contoh:
DSDT.aml
SSDT.aml
SSDT-0.aml
SSDT-1.aml
SSDT-2.aml
dan seterusnya

 

Cara meng-ekstrak ACPI dengan Clover F4 (recomended):
Tool/Software yang di perlukan:
– Clover bootloader
– CLover Configurator

Meng-ekstrak dengan Clover F4 sangatlah saya anjurkan, karena mudah, dan karena perbedaan antara ACPI asli dan ACPI yang telah di modifikasi beda tipis, serta opsi-opsi/bootflags pada bootloader tidak ter-load sama sekali.

Caranya, pada menu Clover bootloader, kalian cukup tombol F4 dan lakukan booting OS X dengan cara biasa, dan secara otomatis Clover akan membuat file ACPI asli yang nanti akan di tempatkan di EFI/Clover/ACPI/origin. dan setelah itu kalian akan dapat membongkar dan memodifikasinya langsung setelah kalian boot OS X.

Perhatikan bahwa beberapa BIOS menggunakan fungsi Fn + F4 dengan F4, jadi bila ragu, tekan kedua tombol pada keyboard kalian yaitu Fn + F4 dan F4.

Kadang-kadang, Clover akan memberikan duplikat SSDT. duplikat ini akan menyebabkan masalah selama pembongkaran. Jika kalian dapat masalah ini (duplikat definisi) selama pembongkaran, kalian akan mengalami kesulitan sedikit karena kalian perlu menganalisis semua SSDTs untuk menghilangkan file yang di duplikat. cara paling mudah untuk melihat apakah ada SSDT yang di-duplikat adalah dengan cara melihat ukuran file. Apabila mendapati file dengan ukuran yang sama, kemungkinan itu adalah duplikat.

Lalu bagaimana cara melihat partisi EFI?
kita dapat menggunakan aplikasi clover configurator dengan cara memilih menu Mount EFI, lalu cari dan klik pilihan Mount EFI partition

Gambar

Kalian dapat dengan mudah melihat ukuran file dalam bentuk byte dari semua SSDT di Terminal:

ls -l SSDT*.aml

 

Membongkar file ACPI
Tool/aplikasi yang di perlukan:
Show – hide files
MacIASL
iasl

Tujuan:
– membongkar ACPI dengan mengubah file-file aml menjadi dsl

Supaya di ketahui bahwa ekstensi AML merupakan singkatan dari ACPI Machine Language, dan DSL merupakan Disassembled ASL. hal ini dapat di asumsikan bahwa DSL adalah hasil pembongkaran dari file AML.

Meskipun file hasil ekstrak tadi yang berekstensi AML dapat dibuka secara langsung di MaciASL, namun hal ini tidak dianjurkan. karena akan sangat sulit untuk memperbaiki kesalahan apabila sudah berekstensi AML.
jadi, lebih baik jika membongkar semua file hasil clover tadi menggunakan iasl dari Terminal terlebih dahulu. Untuk mempersiapkannya, copy semua DSDT dan file SSDT dari folder EFI/Clover/ACPI/origin ke dalam satu folder di desktop

JANGAN copy file ACPI yang TIDAK dimulai dengan DSDT atau SSDT
Contoh:
Buat folder “acpimentah” tanpa tanda kutip di desktop

lalu copy semua file yang berawalan DSDT dan SSDT dari folder EFI/Clover/ACPI/origin ke dalam folder “acpimentah”

Ingat, hanya file yang berawalan DSDT dan SSDT, seperti:
DSDT.aml
SSDT.aml
SSDT-0.aml
SSDT-1.aml
SSDT-2.aml
dan seterusnya

Untuk melakukan pembongkaran, kita diharuskan mengekstrak file iasl yang sudah kita download, dan menempatkannya di /usr/bin/ pada hardisk OS X kita, agar dapat di gunakan pada terminal. Namun, folder “usr” secara default tidak kelihatan/hidden. maka dari itu, untuk membuatnya menjadi terlihat, kita memerlukan aplikasi “Show – Hide Files”

setelah tercopy, kita dapat mulai membongkar file ACPI menggunakan Terminal OS X.

Contoh:
cd Desktop/acpimentah/
iasl -da -dl *.aml
Catatan: JANGAN coba membongkar file-file lain yang BUKAN berawalan DSDT dan atau SSDT dengan pilihan -da. hal ini akan sia-sia.

Catatan: Baca juga tentang refs.txt. mengenai refs.txt akan membutuhkan sedikit usaha, namun akan dapat mengurangi error pada DSDT kita.

Nah, Mulai dari sini, kalian akan melakukan modifikasi file DSL menggunakan aplikasi MacIASL, dan setting compiler aplikasi MacIASL ke versi terbaru. caranya, buka aplikasi MacIASL,menu,preferences,iASL ACPI Specification, pilih yang versi tertinggi. versi 5.1 adalah versi tertinggi selama tulisan ini di buat.

Ilustrasi

Selain itu juga kalian WAJIB menyimpan file yang telah di modifikasi menjadi dua.

pertama, simpan sebagai “ACPI Machine Language Binary” yang nantinya kalian mendapatkan file AML.
Kedua, Simpan sebagai “Disassembled ASL Binary” yang nantinya akan mendapatkan file DSL.

Terserah kalian aturnya bagaimana, mau di buatkan folder masing-masing atau bagaimana, yang penting adalah kalian HARUS punya 2 file dari masing-masing hasil modifikasi.

Contoh:
– Apabila kalian telah memodifikasi file DSDT.dsl menggunakan MacIASL, maka simpan sesuai petunjuk di atas. jadi simpan sebagai DSDT.dsl dan DSDT.AML
Ilustrasi

Mengapa demikian? karena apabila kalian ingin melakukan modifikasi file DSDT.aml, itu salah besar. karena yang harusnya di modifikasi adalah file DSDT.dsl, baru kemudian di simpan sebagai DSDT.aml


 

Menganalisis dan melakukan filtering file native

Untuk komputer dengan prosesor sandy bridge atau sejenisnya, SSDT yang berkaitan dengan CPU dapat menjadi masalah. Jika mendapati masalah, kalian harus menggunakan bootflag alternate DropTables, atau DropOem=true, atau DropSSDT=Yes pada clover, dan juga SSDT tidak usah di masukkan saja guna menghilangkan masalah tersebut. artinya, tidak pakai SSDT saja tidak apa-apa, cukup pakai satu file DSDT.aml

Setelah berhasil membongkar file ACPI kalian dan kini berekstensi dsl, lihat satu per satu file SSDT kalian menggunakan MacIASL, jika menemukan masalah mengenai CPU, pindahkan SSDT tersebut, dan jangan ikutkan kedalam proyek patching ini. kebanyakan SSDT yang menyangkut tentang CPU, yaitu apabila di buka melalui MacIASL, akan di deklarasikan melalui scope berupa tulisan _PR.CPUx
Berikut beberapa deklarasi umum dari SSDT kalian yang seharusnya di ketahui:

  • Apabila terdapat tulisan CPU pada SSDT:  sudah kita bahas di atas. ikut sertakan bila tidak ada masalah
  • Apabila terdapat tulisan SATA pada SSDT: maka SSDT ini Dapat di ikut sertakan ataupun tidak, terserah kalian.
  • Apabila terdapat tulisan PTID pada SSDT: Biasanya, file ini tidak ada gunanya dan mengandung banyak error. Namun dalam beberapa kasus, dapat memberikan informasi mengenai bagaimana cara membaca kecepatan kipas prosesor, temperatur, dan status sistem lainnya.
  • Apabila terdapat tulisan IAOE pada SSDT: Jika ada file ini dalam salah satu SSDT kalian, file ini akan di akses oleh DSDT pada scope _PTS dan _WAK. Bila tidak ada file ini, kemungkinan komputer kita tidak bisa sleep.
  • Apabila terdapat tulisan GFX0 pada SSDT: Biasanya file inilah yang di akses oleh integrated graphics. File inilah yang akan memodifikasi backlight control agar bisa bekerja dengan baik. Pada kebanyakan laptop lama (sandy bridge ke bawah), GFX0 biasanya hanya akan ada di DSDT, untuk laptop baru (haswell keatas), GFX0 biasanya akan di tulis di SSDT (walaupun tidak semua).
  • Apabila terdapat tulisan PEGP pada SSDT: PEGP biasanya ada pada laptop yang memiliki dual GPU atau lebih. biasanya selalu di butuhkan untuk di modifikasi agar discrete GPU dapat di disable guna menghemat batre dan resource OS X.
Alangkah akan lebih bagus lagi apabila dalam memodifikasi ACPI ini, kalian menulisnya dan membuat backup agar tidak lupa mana yang harus di ikut sertakan, mana yang tidak, atau mana yang sudah di ubah, atau perubahan apa yang sudah di lakukan, sebelum dan sesudah, agar kalian tidak mengulang kesalahan dari awal lagi.

Memperbaiki Error

Tool/Software yang di perlukan:

MacIASL
Akses internet (bisa dari laptop itu sendiri, atau bisa dari modem. saran saya pribadi, saya pakai modem BOLT ZTE MF90 yang tinggal plug n play)

Walapun sudah di bongkar sekaligus, file-file ACPI asli (native) ada juga yang masih bisa punya error. untuk itu, kita harus memperbaikinya terlebih dahulu sebelum memodifikasi file tersebut.

Caranya adalah menggunakan patch yang sudah di berikan oleh para pengembang untuk memperbaiki error pada DSDT kita secara gratis via repository mereka.

Berikut beberpa repository yang saya gunakan:
  • RehabMan Laptop Patches: https://github.com/RehabMan/Laptop-DSDT-Patch
  • Toleda Audio ALC Injection: https://raw.github.com/toleda/audio_ALCinjection/master
  • Toleda Wireless Patches: https://raw.github.com/toleda/wireless_half-mini/master
  • PJALM Graphics: http://maciasl.sorceforge.net/pjalm/graphics/
  • PJALM Intel 8 Series: http://pjalm.com/repos/intel8
  • PJALM General: http://pjalm.com/repos/general
  • Toleda HDMI 8 Series: https://raw.github.com/toleda/audio_hdmi_8series/master

Bagaimana caranya?
caranya, buka aplikasi MacIASL,menu,preferences, sources, tambahkan baru, untuk nama isikan RehabMan Laptop Patches, Untuk URL masukkan alamat repository github di atas.
Pastikan juga kalian selalu membaca README pada patch-patch yang sudah di sediakan untuk memahami isinya.

Ilustrasi

setelah memasukkan repository, lakukan koneksi ke internet.

Oke sekarang kita siap untuk melakukan patching.
Tutup aplikasi MacIASL, lalu buka file DSDT.DSL menggunakan MacIASL, kemudian coba lakukan compile.

Apabila terdapat error, lihat apa yang error, lalu cari patch untuk memperbaiki error tersebut dari menu patch di MacIASL.

Ilustrasi
Contoh kasus:
Saya melakukan compile pada DSDT saya, ternyata terdapat message Syntax error warna merah, dan ada tulisan PARSEOP_ZERO.
hal yang akan saya lakukan adalah membuka menu patch, dan cari patch yang berawalan dengan “[syn]”, tinggal kita cari yang ada tulisan “PARSOP_ZERO” atau setidaknya mendekati. artinya, semua patch yang berawalan dengan “[syn]”, merupakan patch untuk memperbaiki syntax error. sama ahlnya dengan yang lain, misalnya “[bat]” artinya patch2 tersebut gunanya untuk memperbaiki batre, dan begitu seterusnya.

Dengan patch-patch yang sudah di sediakan, kita boleh bereksperimen sesuka kita, dengan catatan, buat catatan dan buat backup selama melakukan modifikasi.

Dan saya tekankan kalian untuk TIDAK melakukan beberapa patch sekaligus. lakukan patch satu persatu, lihat perubahan yang terjadi, karena kalian akan mengalami trial/error atau kadang gagal, kadang berhasil.

caranya, save file menjadi dua (satu dsl, satu aml), kemudian file yang aml, copy dan paste ke partisi EFI, EFI>Clover>ACPI>patched, kemudian restart, lihat perubahannya

Memang sangat di butuhkan kesabaran, listrik, tenaga, waktu untuk melakukan patching ini.

Untuk beberapa error, kalian dapat menghilangkan dengan cara menghapus kode atau baris scope seacara manual untuk menghilangkan error. Tapi, hal ini tergantung kode mana yang kalian ingin hapus. pastikan kalian tau baris mana yang akan kalian hapus. jangan sampai kalian justru menghapus hal-hal yang sangat di butuhkan.

Contoh: error yang di sebabkan oleh deklarasi ‘External’ dapat di hapus secara manual untuk memperbaiki error tersebut.

OK. setelah melakukan patching (ingat, satu persatu), lakukan compile. apabila masih mendapati error tanda merah, lanjutkan mencari patching yang cocok sehingga error merah tidak ada lagi.

Apabila ada error warna kuning alias warning, hal ini dapat di toleransi alias di abaikan, atau error yang dapat di abaikan, tidak perlu di patch (tetap saja tidak ada error lebih baik)

Setelah tidak ada error sama sekali, atau sisa error warna kuning, simpan/save file tersebut (ingat, buat 2 copy yaitu dsl dan aml),

Ilustrasi

Setelah itu kita siap melakukan ketahap berikutnya yaitu pacthing.

Cara lain apabila tidak bisa akses internet via OS X sama sekali, adalah, buka alamat repository di atas via windows, linux atau apapun itu menggunakan browser, lalu simpan file yang di cari, lalu kalian dapat menyimpannya dalam bentuk text.

dan text tersebut dapat di copy paste pada kolom patch walaupun dalam keadaan ofline.


 

Patching/modifikasi

Pada dasarnya, patch DSDT hanya untuk memodifikasi agar konfigurasi hardware di kenali oleh OS X. Namun disini ada beberapa patch yang pada umumnya sangat di butuhkan untuk memodifikasi DSDT:

Patch UMUM:

“Fix _WAK Arg0 v2”
“HPET Fix”
“SMBUS Fix”
“IRQ Fix”
“RTC Fix”
“OS Check Fix”
“Fix Mutex with non-zero SyncLevel”
“Fix PNOT/PPNT” (Gunakan apabila kalian TIDAK menggunakan SSDT yang berkaitan dengan CPU)
“Add IMEI” 

Catatan: patch OS Check Fix tidak bergantung pada versi windows yang kalian gunakan saat ini.
Catatan: JANGAN gunakan “Fix PNOT/PPNT” jika kalian menggunakan semua SSDT

Patch USB dapat juga di gunakan untuk memperbaiki “instant wake” dari posisi laptop yang sedang dalam posisi sleep.

Cari tahu tentang jenis hardware kalian:
“6-series USB”
“7-series/8-series USB”

Jika kalian memiliki CPU haswell/ 8-series chipset, tapi AppleLPC.kext tidak ke-load, kalian dapat menggunakan “Haswell LPC” untuk menginject compatible ID agar dapat di load.
Catatan mengenai rename: jika kalian melakukan rename terhadap satu file, misalnya kalian rename GFX0 to IGPU, maka kalian harus melakukan rename ke semua file yang yang mempunyai tulisan GFX0 dan lakukan patch terhadap mereka.
oke apabila sudah semua, silahkan save file menjadi dua. satu dsl, satu aml.

kemudian, file yang aml, copy dan paste ke partisi EFI, EFI>Clover>ACPI>patched, kemudian restart, lihat perubahannya
Sekali lagi saya tekankan, apabila melakukan patching, patch satu, lalu aplikasikan, lihat perubahannya.

Demikian gambaran bagaimana cara melakukan patching terhadap ACPI, kalian bisa bereksplorasi lebih jauh dengan cara cari kekurangan atau yang belum bekerja di hackintosh kalian, dan temukan solusinya sendiri ya. tanya di forum-forum juga. jangan takut dengan bahasa inggris, google translate bisa di andalkan. (pengalaman pribadi)

oh ya, patching DSDT bukan satu-satunya jalan untuk menambal celah yang ada pada hackintoh kita. ada banyak cara lain, beberapa di antaranya menggunakan kext, bootflags on the fly, maupun dumping dari OS lain.

Silahkan ajukan pertanyaan mengenai apabila ada yang kurang di pahami. Saya akan bantu sebisa saya saja tapi ya.

Goodluck.

Source.

Facebook Comments