# Tại sao bạn nên chọn OpenCore thay vì Clover và mấy cái khác
Phần này tóm tắt sơ lược lý do tại sao cộng đồng đang lần lượt rủ nhau chuyển sang OpenCore và nhằm mục đích dẹp loạn vài lời đồn thổi trong giới. Bác nào chỉ muốn có cái máy chạy macOS cho xong chuyện thì có thể bỏ qua trang này.
- Các tính năng của OpenCore
- Những điểm thiếu sót của OpenCore
- Những lời đồn đoán phổ biến
- Có phải OpenCore lúc nào cũng bơm dữ liệu SMBIOS và bản vá ACPI vào các hệ điều hành khác không?
- OpenCore có yêu cầu cài lại hệ điều hành từ đầu (fresh install) không?
- OpenCore chỉ hỗ trợ hạn chế vài phiên bản macOS thôi hả?
- OpenCore có hỗ trợ phần cứng cũ không?
- OpenCore có hỗ trợ khởi động Windows/Linux không?
- Tính pháp lý của Hackintosh
- macOS có hỗ trợ card màn hình NVIDIA không?
# Các tính năng của OpenCore
- Hỗ trợ nhiều hệ điều hành macOS hơn bao giờ hết!
- OpenCore giờ đây hỗ trợ nhiều phiên bản OS X và macOS một cách "native" (tự nhiên/trực tiếp) mà không cần mấy cái thủ thuật "hack" củ chuối, chắp vá mà Clover và Chameleon đang phải xài.
- Bao gồm hỗ trợ từ Mac OS X 10.4 cho đến tận bản 26!
- Xét trung bình thì, máy tính sử dụng OpenCore khởi động nhanh hơn so với chạy Clover vì bớt phải làm mấy trò vá víu không cần thiết.
- Độ ổn định tổng thể ngon hơn vì các bản vá (patches) chính xác hơn nhiều:
- Bản cập nhật macOS 10.15.4 (opens new window)
- Một điểm cộng là các bản vá của macOS cho CPU AMD không cần phải cập nhật lại mỗi khi Apple tung ra bản vá bảo mật nhỏ lẻ.
- Bảo mật tổng thể xịn hơn dưới nhiều hình thức:
- Không cần phải tắt System Integrity Protection (SIP) - Bảo vệ toàn vẹn hệ thống.
- Hỗ trợ FileVault 2 (Mã hóa ổ đĩa).
- Vaulting (opens new window) cho phép tạo các bản chụp EFI (EFI snapshots) ngăn chặn các sửa đổi không mong muốn vào phân vùng EFI.
- Hỗ trợ secure-boot (khởi động an toàn) trực tiếp giống như Mac thiệt.
- Cả chuẩn UEFI và chuẩn riêng của Apple.
- Tính năng chuyển đổi hệ điều hành (VD: Boot Camp) và chọn thiết bị khởi động giờ đây được hỗ trợ bằng cách đọc biến NVRAM được thiết lập bởi tính năng Startup Disk (Ổ đĩa khởi động), y chang như máy Mac thiệt. Đại loại là bạn có thể chọn khởi động hệ điều hành nào ngay trong chính macOS (trước đây không làm được mà chỉ có thể chọn hệ điều hành trong bootloader thôi).
- Hỗ trợ khởi động vào một tính năng cụ thể bằng phím nóng qua
boot.efiy chang Mac thiệt - giữ nútOptionhoặcESClúc khởi động để chọn thiết bị boot,Cmd+Rđể vào chế độ Recovery (Khôi phục) hoặcCmd+Opt+P+Rđể reset NVRAM. Tuy nhiên lưu ý rằng OpenCore không hỗ trợ Reset SMC, chế độ Diagnostic, hay kết nối Wi-Fi tương tự Startup Manager của Mac vì chỉ có firmware của máy Mac thiệt mới làm được.
# Hỗ trợ Phần mềm
Lý do to bự nhất khiến người ta muốn chuyển từ các boot loader khác sang OpenCore chính là sự hỗ trợ phần mềm lâu dài:
- Mấy cái Kexts (Phần Mở rộng Hệ thống) mới không còn được test trên Clover nữa.
- Gặp lỗi với kext hả? Nhiều lập trình viên bao gồm cả tổ chức Acidanthera (opens new window) (cha đẻ của hầu hết các kext yêu thích của bạn) sẽ không hỗ trợ trừ khi bạn xài OpenCore.
- Nhiều driver firmware đang được tích hợp trực tiếp vào OpenCore:
# Những điểm thiếu sót của OpenCore
Đa số các chức năng của Clover thiệt ra đều được OpenCore hỗ trợ dưới dạng các quirk (cài đặt nâng cao), tuy nhiên khi chuyển nhà sang đây bạn nên soi cho kỹ các tính năng còn thiếu của OpenCore vì biết đâu nó ảnh hưởng tới bạn:
- Không hỗ trợ boot các hệ điều hành chuẩn MBR (Master Boot Record)
- Cách lách vấn đề này là thiết lập để chạy cùng lúc (chain-load) rEFInd khi đã chạy OpenCore. Google thêm về thuật ngữ chain-load nhé.
- Không hỗ trợ vá VBIOS dựa trên UEFI
- Tuy nhiên cái này thực hiện được trong macOS. Cụ thể đây là trò thay đổi thông tin của card màn hình ngay từ lúc khởi động (Clover cho làm), nhưng với OpenCore không hỗ trợ trò vá víu này vì nó muốn giữ mọi thứ "sạch" nhất có thể.
- Không hỗ trợ bơm (inject) DeviceProperty (Thuộc tính thiết bị) cho mấy cái card màn hình đời Tống (legacy GPUs) tự động
- VD như InjectIntel, InjectNVIDIA and InjectAti
- Tuy nhiên cái này làm thủ công được: Vá GPU (opens new window)
- Không hỗ trợ vá xung đột IRQ
- Có thể giải quyết bằng SSDTTime (opens new window)
- Không hỗ trợ tạo trạng thái P và C (điều phối điện năng CPU) cho các CPU đời cũ.
- Không hỗ trợ bơm Hardware UUID (Mã định danh phần cứng).
- Không hỗ trợ nhiều bản vá XCPM (điều phối điện năng) được viết cho Clover.
- Ví dụ: các bản vá XCPM cho Ivy Bridge.
- Không hỗ trợ ẩn các ổ đĩa cụ thể.
- Không hỗ trợ thay đổi cài đặt ngay trong menu của OpenCore.
- Không hỗ trợ vá giá trị UID PCIRoot.
- Không hỗ trợ tạo bản vá ACPI chỉ nạp riêng cho macOS (macOS-only ACPI patching). Đọc thêm ở dưới để biết thêm chi tiết.
# Những lời đồn đoán phổ biến
# Có phải OpenCore lúc nào cũng bơm dữ liệu SMBIOS và bản vá ACPI vào các hệ điều hành khác không?
Theo mặc định, OpenCore sẽ coi tất cả các hệ điều hành là bình đẳng như nhau trong việc tiếp nhận thông tin ACPI và SMBIOS. Lý do cho tư duy thiết kế này bao gồm 3 phần:
- Cho phép hỗ trợ multiboot (khởi động nhiều hệ điều hành) trực tiếp, như với BootCamp (opens new window)
- Tránh phải nạp cái DSDT đã bị vá bát nháo và khuyến khích thực hành chỉnh sửa ACPI chuẩn mực (Tức là hướng dẫn muốn bạn phải học cách vá SSDT cần thiết, ý chính muốn hướng dẫn bạn sửa những cái gì cần phải sửa thôi, thay vì chỉnh sửa nguyên 1 cục DSDT theo phương pháp ngày xưa, đã không hiệu quả còn dễ lỗi).
- Tránh mấy ca khó đỡ nơi mà thông tin bị bơm vào nhiều lần, thường thấy ở Clover.
- Ví dụ: Bạn tính xử lý việc bơm dữ liệu SMBIOS và ACPI kiểu gì một khi bạn đã chạy boot.efi nhưng sau đó bị đá ra (exit)? Các thay đổi đã nằm trong bộ nhớ rồi nên cố hoàn tác (undo) tụi nó khá là nguy hiểm. Đây là lý do tại sao phương pháp của Clover bị chê bai.
Đại loại là khi đã bổ sung thay đổi vào trong bộ nhớ mà macOS vì một lý do gì đó bị văng ra không khởi động nữa; cố gắng hoàn tác sẽ rất dễ gây treo máy.
- Ví dụ: Bạn tính xử lý việc bơm dữ liệu SMBIOS và ACPI kiểu gì một khi bạn đã chạy boot.efi nhưng sau đó bị đá ra (exit)? Các thay đổi đã nằm trong bộ nhớ rồi nên cố hoàn tác (undo) tụi nó khá là nguy hiểm. Đây là lý do tại sao phương pháp của Clover bị chê bai.
Tuy nhiên, có mấy cái quirks trong OpenCore cho phép bạn giới hạn việc bơm SMBIOS chỉ trên macOS bằng cách vá nơi mà macOS đọc thông tin SMBIOS. Quirk CustomSMIOSGuid với CustomSMBIOSMode đặt là Custom (Tùy chỉnh) có thể bị hư hỏng trong tương lai nên mình chỉ khuyên dùng tùy chọn này trong trường hợp phần mềm nào đó bị lỗi trên các hệ điều hành khác. Để ổn định nhất, làm ơn tắt mấy cái quirks này đi (Trừ máy Dell và VAIO).
# OpenCore có yêu cầu cài lại hệ điều hành từ đầu (fresh install) không?
Hoàn toàn không cần nếu bạn đang có một bản cài đặt "Vanilla" (nguyên bản/sạch) – ý là hệ điều hành phải nguyên bản chưa bị chọc ngoáy, dạng như cài kexts của bên thứ 3 thẳng vào ổ đĩa hệ thống bằng Kext Droplet hay chỉnh sửa tệp hệ thống mà không được Apple hỗ trợ. Khi bản cài hệ điều hành của bạn đã bị chọc ngoáy nát bét, hoặc do bạn đã cài các tiện ích bên thứ 3 như Hackintool hoặc MultiBeast, mình khuyên bạn nên cài lại hệ điều hành (fresh install) để tránh những lỗi tiềm ẩn có thể xảy ra.
Lưu ý đặc biệt cho dân chơi Clover: làm ơn reset NVRAM khi cài đặt với OpenCore. Nhiều biến (variables) của Clover có thể đánh nhau chan chát với OpenCore và macOS.
- Lưu ý: Laptop Thinkpad nổi tiếng với việc biến thành cục gạch nửa mùa (treo máy) sau khi reset NVRAM trong OpenCore, mình khuyên bạn nên cập nhật BIOS trên mấy con máy này trước khi reset NVRAM.
# OpenCore chỉ hỗ trợ hạn chế vài phiên bản macOS thôi hả?
Kể từ phiên bản OpenCore 0.6.2, giờ đây bạn có thể chạy mọi phiên bản macOS được phát hành cho chip Intel; cho phép lội ngược dòng về tận OS X 10.4! Tuy nhiên hỗ trợ ngon nghẻ hay không còn tùy thuộc vào phần cứng của bạn, nên bạn tự kiểm tra nghen: Giới hạn phần cứng
Bộ sưu tập hành trình thử nghiệm cài đặt macOS
Acidanthera đã test rất nhiều phiên bản và bản thân tôi cũng đã chạy nhiều bản OS X trên con HP DC 7900 cũ rích (Core 2 Quad Q8300). Đây là một thư viện ảnh nhỏ về những gì mình đã test:











# OpenCore có hỗ trợ phần cứng cũ không?
Tính đến thời điểm hiện tại, đa số phần cứng Intel đều được hỗ trợ (nhưng đừng cũ quá cũ như ông cụ Pentium 3 thì cho ổng đắp chiếu được rồi, khổ lắm) miễn là bản thân hệ điều hành còn hỗ trợ nó! Tuy nhiên vui lòng đọc Giới hạn phần cứng để biết thêm thông tin; cụ thể phần cứng nào hỗ trợ bản OS X/macOS nào.
Hiện tại, thế hệ CPU Yonah của Intel và mới hơn đã được test và xác nhận chạy ngon lành với OpenCore.
# OpenCore có hỗ trợ khởi động Windows/Linux không?
OpenCore sẽ tự động phát hiện Windows mà không cần cấu hình thêm gì cả. Với OpenCore 0.7.3, OpenLinuxBoot đã được thêm vào OpenCore dưới dạng một trình điều khiển EFI (EFI driver), giúp tự động phát hiện các phân vùng Linux. Cái này yêu cầu trình điều khiển UEFI ext4_x64.efi (opens new window) hoặc btrfs_x64.efi (opens new window) tùy thuộc vào định dạng ổ cứng mà bản phân phối (distro) của bạn đang xài. Với bất kỳ hệ điều hành nào có đường dẫn hoặc tên bộ nạp khởi động (bootloader) không theo quy chuẩn, bạn chỉ cần thêm nó vào mục BlessOverride là xong.
# Tính pháp lý của Hackintosh
Về Hackintosh, nó nằm trong một vùng xám (grey area) về pháp lý, thiệt ra việc bạn làm không bất hợp pháp nhưng phải biết một thực tế là chúng ta đang vi phạm EULA (Thỏa thuận cấp phép người dùng cuối) của Apple. Tuy nhiên những lý do nó không bất hợp pháp bao gồm như sau:
- Chúng ta tải macOS trực tiếp từ máy chủ của Apple (opens new window) chứ không từ bất kỳ một nguồn nào khác
- Chúng ta làm việc này dưới dạng tổ chức phi lợi nhuận nhằm mục đích học hỏi, nghiên cứu và sử dụng cho mục đích cá nhân, không ảnh hưởng lớn tới doanh thu của hãng. Đây là một trong những lý do chính khiến Apple không thèm kiện bạn (dù họ dư sức kiện bạn) vì kiện = tự phóng hỏa lực vào doanh thu + hệ sinh thái của họ vì cả cộng đồng sẽ lên án Apple ăn hiếp một cá nhân hay một tổ chức có tinh thần học hỏi. Mấy chục cái đầu ở Cupertino cũng hiểu: Không ai nhẫn tâm chặn đường hiếu học của những tâm hồn yêu công nghệ cả. Kiện vừa tốn tiền còn mang tiếng, người dùng người ta tẩy chay Apple hết, thiệt hại từ doanh thu và chi phí tái thiết hệ sinh thái còn gấp mấy lần tiền thắng kiện thì kiện để làm gì.
- Thay vào đó, họ chọn nhắm mắt làm ngơ vì Hackintosh là một kênh quảng bá hệ sinh thái của họ tuy gián tiếp, không tốn tiền mà vô cùng hiệu quả. Nhưng nói vậy không có nghĩa là các kỹ sư để cho mình làm loạn, họ cũng cố tình thử thách team Dortania bằng cách làm cho macOS ngày càng bảo mật chặt (khó bẻ khóa) hơn. Tuy nhiên họ thừa biết chúng ta rồi sẽ tìm ra cách bẻ khóa, nên họ cứ để mình 'vọc' thỏa thích, miễn là đừng đem đi bán lấy tiền là họ còn nể tình cho 'vượt rào' dài dài. Nếu bạn nghĩ có thể sử dụng Hackintosh để kinh doanh thì lầm to, đọc thêm bên dưới:
- Những ai định kiếm cơm bằng cách Hackintosh bằng cách mở dịch vụ cài máy dạo để kiếm tiền hoặc muốn bán lại những cái máy tính Hackintosh thì nên tham khảo vụ kiện Psystar của Apple (opens new window) và luật pháp sở tại. Nếu Apple phát hiện bạn lấy hệ điều hành của họ để kiếm lợi nhuận bằng việc Hackintosh thì người ta sẽ kiện bạn thiệt đó.
Mặc dù EULA quy định rằng macOS chỉ nên được cài đặt trên máy Mac thật hoặc máy ảo chạy trên máy Mac thật (mục 2B-i và 2B-iii (opens new window)), nhưng không có luật thực thi nào cấm tiệt việc này cả. Tuy nhiên, các trang web đóng gói lại và sửa đổi bộ cài macOS thì có nguy cơ bị sờ gáy bởi DMCA takedowns (opens new window) (Đạo luật bản quyền thiên niên kỷ kỹ thuật số) và các thứ tương tự.
- Lưu ý: Đây không phải là lời khuyên pháp lý, nên tự đánh giá và thảo luận với luật sư của bạn nếu có thắc mắc nha.
# macOS có hỗ trợ card màn hình NVIDIA không?
Vì những lùm xùm quanh việc hỗ trợ NVIDIA trên các bản macOS mới, nhiều bạn đọc vội vàng kết luận rằng Apple đã "nghỉ chơi" với NVIDIA từ thuở nào rồi. Thực tế hông phải vậy, Apple từng hỗ trợ card NVIDIA rất ngon lành (điển hình là dòng MacBook Pro 2013 chạy kiến trúc Kepler) cho đến tận bản Monterey Beta 7. Dù hiện tại cộng đồng đã phát triển những bản vá để "hồi sinh" driver cho mấy con card này chạy được trên những bản macOS mới hơn, nhưng cái giá phải trả là bạn phải tắt SIP (Bảo vệ toàn vẹn hệ thống), làm hổng một lỗ lớn trong hàng rào bảo mật của macOS.
Còn với mấy dòng card NVIDIA đời mới thì đúng là "vô phương cứu chữa". Vì Apple không còn bán máy nào đi kèm card màn hình NVIDIA nữa, nên kỹ sư cũng hong rảnh hơi đâu mà viết driver chính thức. Chúng ta chỉ còn biết bám víu vào Web Drivers do chính NVIDIA viết. Nhưng xui cái là từ khi Apple ra mắt tính năng Secure Boot mới cho Mojave, cộng thêm việc hai "ông lớn" này chính thức tuyệt giao do mâu thuẫn nhiều năm không tìm được tiếng nói chung, NVIDIA hông còn đường nào để phát hành driver cho các bản macOS đời sau nữa. Kết cục là mấy con card đời mới chỉ có thể "dừng chân" tại macOS 10.13 High Sierra mà thôi. Lưu ý rằng "đời mới" mà mình đề cập giới hạn ở kiến trúc Maxwell và Pascal (Tức là dòng card mới nhất được hỗ trợ là GeForce 10 Series thôi, VD: GTX 1080).
Để biết thêm thông tin về card màn hình nào hỗ trợ hệ điều hành macOS, xem tại đây: Hướng dẫn chọn mua card màn hình (opens new window)