Hackintosh: Trải Nghiệm macOS Trên PC Phần 1

4 min read

1. Hackintosh là gì?

Hackintosh là thuật ngữ dùng để mô tả việc cài đặt và chạy hệ điều hành macOS của Apple trên máy tính không do Apple sản xuất. Đây là một quá trình khá phức tạp và đòi hỏi kiến ​​thức kỹ thuật để thực hiện, vì macOS được thiết kế để chạy trên phần cứng của Apple.

2. Yêu cầu cần thiết

  • Nhận biết thông số kỹ thuật của máy tính: Bạn phải xác định xem thiết lập máy tính của mình có cho phép cài đặt Hackintosh hay không. CPU, GPU, bo mạch chủ và các thiết bị ngoại vi khác là một số phần cứng cần được kiểm tra..
  • Sao lưu dữ liệu quan trọng: Để tránh mất dữ liệu trong quá trình cài đặt Hackintosh, bạn nên sao lưu tất cả dữ liệu quan trọng trước khi cài đặt.
  • USB hoặc SSD: USB hoặc SSD này cần chứa tới 16GB dữ liệu và được sử dụng để khởi động Mac OS.
  • Biết cầu hình BIOS và UEFI: Cài đặt và cấu hình Windows ở chế độ UEFI yêu cầu bạn phải biết cách cấu hình BIOS và UEFI để có thể cài đặt macOS.

3. Một vài hạn chế khi cài Hackintosh

May mắn thay, phần lớn phần cứng hiện đại đều có thể sử dụng được mặc dù Hackintosh vẫn có một số hạn chế về phần cứng, một số trong đó không thể giải quyết được. Điều này rất dễ hiểu: tất cả các bộ nạp khởi động, kext và bản vá đều do cộng đồng tạo ra và Apple 🍎 chỉ hỗ trợ Realmac, không hỗ trợ Hackintosh.

4. Yêu cầu phần cứng

Dưới đây là các thông số phần cứng mà Hackintosh hỗ trợ

Bạn có thể sử dụng phần mềm AIDA64 để kiểm tra thông số phần cứng đang sử dụng. Dưới đây là các thông số bạn cần lưu ý.

4.1. CPU

Thông số CPU

4.2. Mainboard

Thông số Mainboard

4.3. GPU

Thông số GPU

4.4. Audio

Thông số Audio

4.5. Network

Thông số Network

4.6. Storage

Thông số Storage

Bạn phải ghi lại thông tin chi tiết về phần cứng vì bạn sẽ cần phát triển EFI theo cấu hình hệ thống của mình.

5. Quy trình cài đặt và chuẩn bị một số file cần thiết

5.1. Installers

Tương tự như cài đặt Windows/Linux chúng ta cần phải chuẩn bị file cài đặt OS (không có đường dẫn cụ thể, có thể tìm kiếm trên Google).

5.2. Bootloaders

Chúng ta sẽ sử dụng OpenCore là một bộ nạp khởi động (bootloader) hiện đại được phát triển bởi cộng đồng Hackintosh. Nó được sử dụng để giúp người dùng cài đặt và chạy macOS trên phần cứng không phải của Apple. OpenCore cung cấp một nền tảng linh hoạt và mạnh mẽ hơn so với các bộ nạp khởi động trước đó như Clover.

Đường dẫn: https://github.com/acidanthera/OpenCorePkg/releases

5.3. Firmware Drivers

Firmware driver là driver sử dụng cho bootloader (không phải driver cho OS). Chúng cần phải có để phục vụ cho các chức năng của bootloader ví dụ như HFSPlus.efi để bootloader có thể đọc được phân vùng định dạng HFS. Những driver chính đã có sẵn trong file bootloader ở trên, vị trí của chúng: OC: EFI/OC/Drivers/

5.4. Universal

Đối với mọi hệ thống, chúng ra sẽ cần bắt buộc phải có một số file .efi drivers

  • HfsPlus.efi : Hỗ trợ định dạng HFS, nếu không có bạn sẽ không thấy phân vùng cài đặt từ usb.
  • ApfsDriverLoader.efi : Hỗ trợ định dạng APFS, nếu không có bạn sẽ không thấy phân vùng macOS.
  • OpenRuntime.efi : Patch boot.efi sửa lỗi NVRAM và quản lý bộ nhớ.

5.5. Kexts

Kext là viết tắt của Kernel extension, bạn có thể hiểu nó tương tự như driver trong Windows.

5.5.1. Các Kexts bắt buộc phải có

  • VirtualSMC : Giả lập chip SMC trên realmac, không có nó thì không boot được macOS.
  • Lilu : Kext dùng để patch nhiều tiến trình, yêu cầu cho AppleALC, WhateverGreen, VirtualSMC và rất nhiều kext khác, nếu không có Lilu, chúng sẽ không chạy.

5.5.2. VirtualSMC Plugins

Những plugins này không cần thiết để boot, nhưng nó có số tác trong trường hợp cụ thể (nên biết):

  • SMCProcessor.kext: Dùng để đọc thông tin nhiệt độ CPU, không hoạt động với CPU AMD.
  • SMCSuperIO.kext: Dùng để đọc thông tin fan speed, không hoạt động với CPU AMD.
  • SMCLightSensor.kext: Dùng cho cảm biết ánh sáng trên laptop, pc thì bỏ qua(Không dùng nếu máy không có cảm biến hay không có chức năng tự điều chỉnh độ sáng theo ánh sáng xung quanh).
  • SMCBatteryManager.kext: Dùng để đọc thông pin phần trăm pin trên laptop, pc thì bỏ qua
  • SMCDellSensors.kext: Cho phép theo dõi và điều chỉnh tốc độ fan trên máy Dell hỗ trợ System Management Mode(SMM)(Không phải máy Dell thì bỏ qua).

5.5.3. Graphics

WhateverGreen : Dùng cho graphics patching, DRM fix, board ID check, framebuffer fix, … tất cả GPU cần kext này.

5.5.4. Audio

AppleALC: Dùng để patch AppleHDA, giúp audio hoạt động trong macOS.

5.5.5. Ethernet

Tuỳ vào cấu hình máy bạn, chọn kext phù hợp với Ethernet card trong máy bạn có thể tham khảo các kext dưới đây:

Đối với Intel I225-V NICs, cần phải patch device properties, sẽ đề cập sau.
Một số NICs native trong macOS, thường rất ít khi gặp nên tôi không đề cập.

5.5.6. USB

  • USBInjectAll: Kext dùng cho Intel USB hoạt động mà không cần patch acpi(không hoạt động với CPU AMD).
  • XHCI-unsupported: Cần cho non-native USB controllers, Mainboard chipsets cần phải có kext này: X79, X99, H410, B460(CPU AMD không cần).
  • USBToolBox: Một kext dùng trên windows giúp người dùng map lại USB.
Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Leave a Reply

Your email address will not be published. Required fields are marked *