[Hackintosh] Cài macOS Sierra lên Skylake

Đối với các bạn yêu thích công nghệ, đặc biệt là các sản phẩm của Apple nói chung và các bạn developer iOS nói riêng thì macOS hay macbook là những sản phẩm được tối ưu giữa phần cứng và phần mềm rất tốt và đặc biệt được các bạn developer sử dụng rất nhiều vì sự tiện lợi, tối ưu của nó. Tuy nhiên không phải ai cũng dễ dàng bỏ ra một khoản tiền lớn để có thể trang bị cho mình một thiết bị Apple như Macbook, MacPro hay iMac để thỏa mãn đam mê lẫn nhu cầu của mình. Từ nhu cầu đó Hackintosh đã xuất hiện, đó là một thuật ngữ dùng cho việc cài đặt hệ điều hành macOS của Apple lên các máy PC sử dụng chip vi xử lý của intel và không do Apple sản xuất. Hiện nay, có rất nhiều cộng đồng hackintosh trên toàn thế giới như: OSx86, Insanlymac, tonymac, hoặc tại Việt Nam như: macvn, tinh tế, osx.vn….

MÌnh cũng có một số kinh nghiệm nho nhỏ và cũng muốn chia sẻ với các bạn, về việc cài đặt một chiếc máy tính chạy chip Intel thế hệ thứ 6 (Skylake - i5-6200) chạy macOS Sierra một cách tốt nhất.

Kiểm tra cấu hình máy

Điều đầu tiên các bạn cần làm là cần xác định cấu hình máy của mình là gì? Các bạn có thể làm theo hướng dẫn theo clip dưới để có thể biết được cấu hình cơ bản của máy và kiểm tra xem máy mình có thực sự tương thích với việc hackintosh hay không?

https://www.youtube.com/watch?v=otWC_ST5oQI

Sau khi kiểm tra thì cấu hình máy mình như sau:

Cấu hình lại BIOS

Các bạn cần cấu hình lại BIOS theo các bước sau đây (Có thể một số loại BIOS không có thì các bạn có thể bỏ qua) Set EFI Boot = On Set Secure Boot = Off Set Fast Boot = Off Set Virtualization VT-d = Disabled Set ErP = Enabled Set OS Type to “Other” Set XHCI Handoff to Enabled Set Super I/O to "Disabled".

Tạo bản cài macOS Sierra

Để tạo bản cài được macOS Sierra thì bạn cần phải có một máy tính cài macOS để có thể tạo được bản cài, các bạn có thể sử dụng UniBeast và MultiBeast để có thể tạo được bản cài một cách tốt nhất, các bạn có thể dựa theo guide trên tonymacx86 https://www.tonymacx86.com/threads/unibeast-install-macos-sierra-on-any-supported-intel-based-pc.200564/ Trong bài viết tới mình sẽ dịch và nói chi tiết hơn về cách cài và cách boot sử dụng trong bài viết tới

Cài đặt sau khi cài macOS Sierra lên máy

ĐIều đầu tiên các bạn cần làm đó là tạo Bootloader, config.plist và cài đặt Kext, Fix DSDT, SSDT để cải thiện và nâng cao hiệu suất của máy

Tạo Bootloader

Bootloader là gì?

Là một hệ điều hành thu nhỏ, giúp giả lập môi trường để macOS hoạt động trên PC. Đây là phần không thể thiếu của hackintosh. Ngoài giả lập, nó còn giúp macOS nhận dạng một số phần cứng được cài đặt trong PC. Các boot loader đình đám hiện nay là: Chameleon, Chimera, Clover. Hiện tại trong bài viết này mình sử dụng UEFI vì Clover hỗ trợ rất tốt.

  1. Các bạn mở MultiBeast, chọn trong mục Quick Start rồi click vào UEFI Boot Mode
  2. Sau đó click vào Build và Install.
  3. Tiếp theo bạn lên mạng download 2 kext Lilu và kext IntelGraphicsFixup rồi copy vào thư mục EFI/Clover/kexts/10.12 để fix lỗi không boot được vào do card Intel Graphics tạo ra (Để vào được thư mục EFI, bạn cần tải Clover Configurator sau đó bấm vào Mount EFI. Trong Finder bạn sẽ nhìn thấy xuất hiện một ổ EFI)
  4. Khởi động lại

Config.Plist

Đây là các bước cài đặt các thông số trong Boot loader, sau khi các bạn tạo boot loader thì trong thư mục EFI/CLOVER sẽ có file config.plist

  1. Nháy đúp vào file config.plist ở thư mục EFI/CLOVER
  2. Màn hình của Clover Configurator xuất hiện
  3. Các bạn config theo config sau a. ACPI: Chọn FixHDA_8000 hoặc FixHDA (để fix lỗi sound) b. Boot: Chọn -xcpm, nv_disabled=1, kext-dev-mode = 1, rootless = 0, darkwake=8 (đặc biệt cho chip Skylake) c. Còn lại để nguyên

Cài đặt Kext

Kext (Kext Extention): là hệ thống các folder, tập tin mô tả thông tin phần cứng và giúp macOS điều khiển phần cứng hoạt động chính xác. Kext có chức năng tương tự như driver trên Windows. Các kext chính của macOS được lưu trữ trong folder /System/Library/Extensions (viết tắt /S/L/E, dùng riêng /SLE), các kext ngoài do bên thứ 3 sản xuất có thể được đặt trong /Library/Extensions (viết tắt: /L/E, dùng riêng /LE).

  1. Bạn tiếp tục mở Multi Beast, tại đây bạn chọn các driver tương ứng
  2. Mình sẽ chọn vào Network và chọn Realtek/RealtekRLT8111 v2.2.1
  3. Driver/Audio/Realtek ALCxxx/(ALC887/888b)
  4. Customize chọ Intel HD 5xx (Card Graphics của Intel dành cho dòng chip Skylake)
  5. Tiếp theo đó là bạn build.
  6. Khởi động lại

Patch DSDT

Trích xuất DSDT, SSDT gốc (AML) từ hệ thống

Việc đầu tiên trước khi sửa dsdt, ssdt là bạn phải lấy được file dsdt, ssdt gốc dưới định dạng AML (ACPI Machine Language). Có nhiều cách để làm điều đó tuy nhiên tốt nhất là cách sau:

Dùng USB bộ cài Clover bootloader: Ở màn hình Clover, ấn phím F4 - > tất cả các bảng sẽ được dump vào /EFI/Clover/ACPI/origin/

Biên dịch ngược DSDT, SSDT gốc (AML)

Các bảng DSDT, SSDT gốc trong máy có định dạng nhị phân AML, không thể sửa trực tiếp mà cần phải biên dịch ngược lại thành file text có đuôi dsl. Do các bảng DSDT, SSDT có liên kết chồng chéo lẫn nhau nên bạn cần có tất cả các file DSDT, SSDT để hỗ trợ khi biên dịch ngược.

Dùng Hackintosh Vietnam Tool để cài iasl, chép các file DSDT, SSDT gốc với tên file *.aml ở trên vào desktop. Chạy terminal với lệnh sau: Mã: cd ~/Desktop iasl -da *.aml Tất cả các file DSDT, SSDT sẽ được biên dịch ngược thành các file *.dsl.

Lưu ý nếu chạy lệnh trên mà bị lỗi thì do máy bạn có nhiều bảng SSDT trùng tên. Để khắc phục, bạn xem trong thông báo lỗi file ssdt*.aml sau cùng trước khi lỗi, và xóa nó.

Thêm DSDT, SSDT (AML) đã chỉnh sửa vào bootloader.

Sau khi đã sửa và biên dịch từ file *.dsl thành *.aml, bạn có thể đưa vào bootloader bằng cách đặt đúng vào các thư mục sau:

Clover: /EFI/CLOVER/ACPI/patched/

Sau khi biên dịch ra file dsl các bạn sử dụng MacIASL để fix.

  1. Các bạn mở ra và nhấn compile, sẽ xuất hiện lỗi
  2. Sửa hết lỗi rồi compile lại (Có rất nhiều lỗi các bạn có thể search trên mạng mình sẽ nói rõ hơn về cách sửa lỗi ở các bài viết tiếp theo)
  3. Save as thành file ,aml rồi copy vào /EFI/CLOVER/ACPI/patched/

Patch SSDT

Các bạn có thể sử dụng ssdtPRGen để generate được SSDT. https://github.com/Piker-Alpha/ssdtPRGen.sh

Với chip Skylake thì bạn phải lấy nhánh Beta thì mới có thể làm được.

  1. curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh
  2. chmod +x ~/ssdtPRGen.sh
  3. ./ssdtPRGen.sh
  4. Bạn copy file ssdt.aml đã được gen ra vào trong thư mục /EFI/CLOVER/ACPI/patched/ sau đó xem thành quả của mình.

Note: Phần SSDT và DSDT mình sẽ hỗ trợ và nói rõ hơn trong bài viết riêng về nó

Kiểm tra tốc độ CPU

Sau khi hoàn thành được các bước trên mình có thể kiểm tra được thông số của CPU 1 cách tốt nhất bằng cách sử dụng phần mềm Intel Power Gadget. https://software.intel.com/en-us/articles/intel-power-gadget-20

Vậy là bạn đã hoàn thành cơ bản các bước để có thể cài đặt macOS Sierra lên máy tính Skylake. Sẽ có nhiều trường hợp, và nhiều vấn đề xảy ra khác so với Guide các bạn có thể comment chia sẻ để mình có thể hỗ trợ thêm.