Hackintosh: Tạo EFI

Bài viết này dành cho những người có: Tài liệu tham khảo: Các bạn nên đọc qua những tài liệu *gốc* này để biết chính xác đang làm gì.Mình chỉ là dùng thực tế để viết bài, nên độ chính xác cũng chưa biết có đúng hay không Phương châm: Boot được thì gọi là […]

Hackintosh: Tạo EFI

Bài viết này dành cho những người có:

  • Một sự rảnh rỗi đề ngồi mày mò nghiên cứu và xác nhận độ chính xác của thông tin từ đây
  • Intel các dòng Xeon ( chả biết thể hệ gì ) và Core thế hệ 13 trở xuống ( thấy bảo 14th đã được nhưng chưa test, vì nhác tháo em RTX 3060Ti trong máy ra )
  • AMD các thể loại từ 5000 trở xuống, kể cả APU
  • Một em card AMD RX
  • AMD APU hay Core i đời 10 trở xuống
  • Não và mắt

Tài liệu tham khảo:

Các bạn nên đọc qua những tài liệu *gốc* này để biết chính xác đang làm gì.
Mình chỉ là dùng thực tế để viết bài, nên độ chính xác cũng chưa biết có đúng hay không

Phương châm: Boot được thì gọi là chạy được, mở app mượt, wifi bình thường, kernel không panic thì gọi là hoàn hảo

https://dortania.github.io/getting-started

https://dortania.github.io/OpenCore-Install-Guide/prerequisites.html

Cấu hình thử nghiệm

Sai sai đúng chứ. Vì mình viêt bài này trên một con máy Gen 14 và thực hành trên một máy khác.

Nếu thành công thì nó sẽ trông như thế này:

AMD APU

Một máy khá cũ ở hiện tại. HP ProDesk 705 G4 – Ryzen 5 Pro 2400G

Crash khi mở vscode nên mình bỏ

Intel thế hệ 11 (11th – Rocket Lake) và card AMD RX Navi

Cái này máy công ty, nhưng mình là DevOps – SysAd mà, ai cản được mình mấy cái này? IT Support à

i5 11400
Asus H510M
RX 6600 XT
32GB RAM

Mình dùng thường ngày vì nhác chạy WSL nhưng không muốn cài Linux. Vì code NextJS trên win nó cứ sai sai sao ấy – nvm, pnpm sai sai chứ không phải code sai sai.

Bắt tay thực hiện nào

Xác định phần cứng

Cái này thì AIDA64 nhé

Dành cho ai không thể mở được AIDA64 nữa:

UMG1Y-U3WD6-UWDJP-VD8C1-51AXZCode language: plaintext (plaintext)

Ở đây là i5-14500, search web của intel thì là Raptor Lake.

Tiếp GPU là RTX 3060 Ti – Cái này rõ ràng không hỗ trợ, nên ai như này thì từ bỏ hy vọng làm được đi.

Đọc thêm tại đây: https://dortania.github.io/OpenCore-Install-Guide/macos-limits.html#gpu-support

Còn lại nào là ổ cứng, card wifi, bluetooth, soundcard, …

Tự xem đi nhé

Tổng kết cái máy này kiểu:

  • CPU: i5 14500
  • GPU: RX 6600 XT (sẽ tháo về gắng chạy thử)
  • Sound: ALC897
  • Wifi/BT: Intel AX210
  • Wired LAN: Intel I225-V
  • SSD: 980 Pro (sẽ thay thành NV2)
  • 1 đống USB Port cần map lại

Chuẩn bị công cụ

Chú ý là dùng release nhé.

Tải OpenCore về, giải nén x64/EFI ra C:/hackintosh/EFIđể xử lý sau này.
Nhớ copy Docs/Sample.plist sang C:/hackintosh/EFI/OC/config.plist

Xử lý SSDTs

Thứ đầu tiên cần làm là tạo cái list này.

Mở SSDTTime lên, chạy file SSDTTime.bat và chờ nó cài.

Chạy lệnh P để dump file cần thiết.

Tiếp theo chạy:

  • 2. FakeEC
  • 4. USBX
  • 5. PluginType
  • 7. RTCAWAC
  • B. Fix DMAR

Xong chuyện vào thư mục Results, copy các file .aml vào EFI/OC/ACPI

Thành phẩm

Tiếp theo cần add các ACPI này vào config.plist

Đầu tiên là chạy ProperTree và mở file config.plist

Xoá cái đám này đi

Tiếp theo là snapshot, lần đầu tiên

Quay trở lại SSDTTime, chạy PatchMerge. Chọn 1 và thả file config.plist vào, rảnh thì dán link vào cũng được. Chọn 2 để merge

Thật sự thì bỏ RTCAWAC khỏi merge cũng được, nhưng kệ, làm cho vui.

Thay thế file config.plist trong Results/config.plist vào config.plist trong EFI, khỏi check vì có đọc cũng không hiểu.

Kext

Kernel Extension nghe thì có vẻ khó hiểu nhưng hãy đơn giản hoá vấn đề:

Máy có cái gì thì lên mạng tìm hỗ trợ cho nó và chép vào đây.

Kext bắt buộc

Lilu

VirtualSMC và những người bạn

Kext tuỳ theo máy

Đầu tiên là những người bạn của VirtualSMC

VirtualSMC

  • SMCProcessor.kext (có sẵn trong VirtualSMC zip)
    • Sử dụng cho theo dỗi nhiệt độ CPU intel
  • SMCAMDProcessor.kext
    • Sử dụng để theo dỗi nhiệt độ trên AMD CPU
  • SMCRadeonGPU.kext
  • SMCSuperIO.kext (có sẵn trong VirtualSMC zip)
    • Sử dụng cho theo dõi tốc độ quạt trên CPU intel

GPU

Chỉ một trong 2, không có dùng cả 2

  • WhateverGreen.kext
    • Cái này khỏi tìm hiểu, không phải AMD APU thì kiểu gì cũng phải cài vào.
  • NootedRed.kext
    • AMD APU thì dùng, thay thế WhateverGreen.kext

Audio

Dùng cái này chống điếc là đủ rồi

AppleALC.kext

Ethernet, Wifi, Bluetooth:

Đọc kĩ hướng dẫn trước khi sử dụng, cứ làm theo là ổn

USB

Tải https://github.com/USBToolBox/tool về

Chạy file, chọn C.Change Settings
Chọn tiếp N. Use Native Classes: Disabled, để nó qua Enable là được, đỡ cài thêm kext khác.

Bấm B để về lại, chọn tiếp D

Mình bỏ qua khái niệm trắng xanh là cái gì. Đây là bước Discover cổng USB. Chúng ta đơn giản là rút và cắm usb theo từng cổng một cho nó nhận, có những điều lưu ý để nhanh hơn nhưng kệ đi, rút và cắm mất mấy giây, mò làm gì.

Đây là sau khi Discover xong

Tiếp tục B về, S và K thôi, mình chẳng gặp vấn đề gì với việc Map này nên cứ coi như luôn thành công đi, có gì khỏi dùng cổng USB đó!

Vì là chọn Native nên cần GenSMBIOS, ở đây mình dùng MacPro1,1 (tất nhiên rồi, khỏi tìm hiểu thứ khác với đời 11 trở lên)

Kext của mình

Trông như vậy này

EFI
├───AirportItlwm.kext
├───AppleALC.kext
├───AppleMCEReporterDisabler.kext
├───BlueToolFixup.kext
├───IntelBluetoothFirmware.kext
├───IntelBTPatcher.kext
├───Lilu.kext
├───NVMeFix.kext
├───RestrictEvents.kext
├───SMCProcessor.kext
├───SMCSuperIO.kext
├───USBInjectAll.kext
├───USBMap.kext
└───VirtualSMC.kextCode language: plaintext (plaintext)

Dọn dẹp EFI

Theo nguyên tắc thì càng ít chức năng càng ít lỗi, nên thôi cái gì không cần ta xoá hết:

ACPI: Chỉ chưa các file .aml

Drivers: Xoá hết, giữ lại: OpenRuntime.efi, HFSPlus.efi (copy vào), ResetNvramEntry.efi, OpenCanopy.efi

Tools: Xoá hết luôn cũng được, nhưng mình thì giữ CleanNvram.efi và OpenShell.efi (chả để làm gì nhưng guide nó nói thế nên làm theo)

Cũng đủ rồi đó, giờ sửa config.plist nữa là được.

A
WRITTEN BY

ArcLight

Responses (0 )