# Giới hạn phần cứng

Với macOS, có cả rổ giới hạn phần cứng mà bạn cần phải nắm thuộc lòng trước khi đặt chân vào con đường cài cắm. Chuyện này là do số lượng phần cứng mà Apple hỗ trợ khá là "hẻo", nên chúng ta hoặc là bị Apple trói chân, hoặc là phải chờ xem cộng đồng có chế cháo (patches) được cái gì hay ho không.

Các hạng mục phần cứng chính cần kiểm tra bao gồm:

Và để có hướng dẫn chi tiết hơn về chủ đề này, xem tại đây:

# Hỗ trợ CPU

Về khoản hỗ trợ CPU (bộ vi xử lý trung tâm), chúng ta có danh sách phân loại như sau:

  • Các CPU có kiến trúc 32-bit và 64-bit đều được hỗ trợ (On-lỳ Intel và AMD! ARM nghỉ khỏe!)
    • Tuy nhiên bạn sử dụng được phiên bản nào cũng tùy thuộc vào hệ điều hành có hỗ trợ kiến trúc của bạn không, đọc phần Yêu cầu về CPU bên dưới để biết thêm chi tiết
  • Các CPU dành cho máy tính bàn (Desktop) của Intel được hỗ trợ.
    • Từ đời cổ lai hy Yonah cho tới Comet Lake đều được hướng dẫn này bao trọn gói.
    • Các CPU không được hỗ trợ chính thức như Pentium hay Celeron sẽ cần thêm bước giả mạo CPUID.
  • Các CPU máy trạm cao cấp (High-End Desktops) và máy chủ (Server) của Intel được hỗ trợ.
    • Từ đời Nehalem tới Cascade Lake X đều được hỗ trợ trong hướng dẫn này.
  • Các CPU laptop dòng Core "i" và Xeon của Intel được hỗ trợ.
    • Từ đời Arrandale tới Ice Lake đều được hỗ trợ. Với Tiger Lake trở lên bạn lưu ý rằng iGPU sẽ không chạy được trong macOS vì không có máy Mac Intel mới nào được sản xuất sử dụng CPU đó nên không có Driver.
    • Lưu ý rằng các dòng CPU laptop như Atom, Celeron và Pentium thì thôi "nghỉ khỏe" đi (tức không được hỗ trợ đó).
  • Các CPU dành cho máy tính bàn của AMD gồm Bulldozer (15h), Jaguar (16h) và Ryzen (17h)
    • CPU Laptop của AMD không được hỗ trợ trong hướng dẫn này (về mặt kỹ thuật vẫn cài được nha).
    • Các dòng CPU cũ hơn 3 thế hệ được đề cập ở trên cũng không được hỗ trợ trong hướng dẫn này vì quá ít phổ biến.
    • Bạn lưu ý rằng không phải mọi tính năng của macOS đều chạy ngon trên AMD giống Intel, đọc thêm bên dưới:

Để biết thêm thông tin chi tiết, xem tại đây: Hướng dẫn tránh mua lầm phần cứng "khắc tinh" (opens new window)

Yêu cầu về CPU (CPU Requirements)

Yêu cầu về Kiến trúc (Architecture)

  • CPU 32-bit được hỗ trợ từ phiên bản 10.4.1 đến 10.6.8
    • Lưu ý rằng 10.7.x yêu cầu userspace (Môi trường ứng dụng) 64-bit dù Kernel vẫn hỗ trợ 32-bit, nên CPU 32-bit chỉ chạy được tối đa bản Snow Leopard là hết đát.
  • CPU 64-bit được hỗ trợ từ 10.4.1 cho tới phiên bản hiện tại

Yêu cầu về tập lệnh SSE:

  • SSE3 là yêu cầu bắt buộc cho tất cả các phiên bản OS X/macOS chạy trên nền tảng Intel (Pentium 3 ngoài cuộc chơi này nha)
  • SSSE3 là yêu cầu bắt buộc cho tất cả các phiên bản OS X/macOS kiến trúc 64-bit
    • Với các CPU thiếu SSSE3 (ví dụ một số con Pentium 64-bit), mình khuyên bạn nên sử dụng userspace 32-bit (bổ sung tham số khởi động i386-user32)
  • SSE4 là yêu cầu bắt buộc cho macOS 10.12 và mới hơn
  • SSE4.2 là yêu cầu bắt buộc cho macOS 10.14 và mới hơn
  • AVX2 là yêu cầu bắt buộc cho macOS 13 và mới hơn
Chi tiết hơn về macOS Ventura và AVX2

macOS Ventura đã chính thức "đem con bỏ chợ" các dòng CPU Intel đời trước Haswell. Phần lớn userspace (Môi trường ứng dụng) cùng với driver GPU AMD Polaris và một số kext (driver mở rộng) trong hệ thống giờ đây yêu cầu tập lệnh AVX2 để hoạt động. Mặc dù mấy cái kext của chúng ta có vài chiêu "hồi sinh" bằng cách vá víu (patched) (opens new window) hoặc lấy từ bản macOS cũ (opens new window), nhưng driver GPU Polaris và phần lớn userspace quá lệ thuộc vào AVX2 quá nhiều nên khó mà vá víu cho nổi.

Apple có để lại một dyld cache (Bộ nhớ đệm liên kết thư viện động, giúp nạp ứng dụng nhanh hơn) không sử dụng lệnh AVX2 trong Ventura để hỗ trợ Rosetta trên các máy Apple Silicon, nhưng cái cache này không được cài mặc định. Bạn có thể xài CryptexFixup (opens new window) để ép cài cái dyld cache này, nhưng mà:

  • Apple có thể xóa cái cache này bất cứ lúc nào trong tương lai nếu họ thêm hỗ trợ AVX2 vào Rosetta
  • Delta updates (các bản cập nhật bảo mật bổ sung nhỏ nặng từ 1-3GB) sẽ không khả dụng nữa và bạn bắt buộc phải cài bản cập nhật đầy đủ (full update - 12GB), vì bản cập nhật delta updates chỉ chứa cache không có AVX2 trên các máy Apple Silicon
  • Card màn hình Polaris vẫn sẽ "đắp chiếu" trên các máy tính không có AVX2

Với những lời cảnh báo này, hướng dẫn Dortania sẽ không hỗ trợ các CPU đời trước Haswell cài đặt macOS Ventura trở lên nữa. Các trang hướng dẫn cho mấy con CPU này sẽ vẫn được cập nhật cho bản Monterey.

Yêu cầu về Firmware (phần mềm vi chương trình cơ sở):

  • OS X 10.4.1 đến 10.4.7 yêu cầu EFI32 (tức là bạn phải xài phiên bản IA32 (dành cho máy 32-bit cũ) của OpenCore để có thể chạy mấy cái bản này)
    • OS X 10.4.8 đến 10.7.5 hỗ trợ cả EFI32 và EFI64
  • OS X 10.8 và mới hơn yêu cầu EFI64 (tức là chỉ boot được bằng OpenCore x64 (64-bit))
  • OS X 10.7 đến 10.9 yêu cầu trình điều khiển OpenPartitionDxe.efi (đi kèm trong gói OpenCore) để có thể khởi động vào phân vùng Recovery (Khôi phục). Không bắt buộc với OS X 10.10 trở đi.

Yêu cầu về Kernel (Nhân hệ điều hành):

  • OS X 10.4 và 10.5 yêu cầu kext (trình điều khiển) 32-bit do chỉ hỗ trợ kernelspace (Môi trường hệ thống) 32-bit
    • OS X 10.6 và 10.7 hỗ trợ cả kernelspace 32 và 64-bit
  • OS X 10.8 và mới hơn yêu cầu phải sử dụng kext 64-bit do chỉ hỗ trợ kernelspace 64-bit
    • Chạy lệnh lipo -archs để biết kext của bạn hỗ trợ kiến trúc nào (nhớ là chạy lệnh này trên file nhị phân (binary) bên trong chứ không phải cái gói .kext bên ngoài nhé)

Giới hạn số nhân/luồng (Core/Thread Count Limits):

  • OS X 10.10 và thấp hơn có thể không khởi động được nếu CPU có hơn 24 luồng (biểu hiện rõ nhất là lỗi panic mp_cpus_call_wait() timeout)
  • OS X 10.11 và mới hơn tăng giới hạn lên 64 luồng
  • Có thể xài tham số khởi động (boot argument) cpus= để tránh lỗi, hoặc tắt tính năng siêu phân luồng (hyperthreading) đi

Ghi chú đặc biệt:

  • OS X 10.6 và cũ hơn yêu cầu bật RebuildAppleMemoryMap
    • Cái này để giải quyết vấn đề kernel bị lỗi sớm (early kernel issue) do yêu cầu nghiêm ngặt về bản đồ bộ nhớ.

:::

Bảng hỗ trợ CPU Intel

Hỗ trợ dựa trên các Kernel gốc (Vanilla Kernels - tức là bản macOS nguyên bản chưa qua chỉnh sửa):

Thế hệ CPU Hỗ trợ ban đầu Phiên bản cuối cùng được hỗ trợ Ghi chú Mã định danh CPU (CPUID)
Pentium 4 (opens new window) 10.4.1 10.5.8 Chỉ được xài trong bộ công cụ phát triển (dev kits) 0x0F41
Yonah (opens new window) 10.4.4 10.6.8 32-Bit 0x0006E6
Conroe (opens new window), Merom (opens new window) 10.4.7 10.11.6 Không có SSE4 0x0006F2
Penryn (opens new window) 10.4.10 10.13.6 Không có SSE4.2 0x010676
Nehalem (opens new window) 10.5.6 12.7.6 N/A 0x0106A2
Lynnfield (opens new window), Clarksfield (opens new window) 10.6.3 Không còn hỗ trợ iGPU (card màn hình Onboard) kể từ phiên bản 10.14+ 0x0106E0
Westmere, Clarkdale, Arrandale (opens new window) 10.6.4 0x0206C0
Sandy Bridge (opens new window) 10.6.7 0x0206A0(M/H)
Ivy Bridge (opens new window) 10.7.3 Không còn hỗ trợ iGPU (card màn hình Onboard) kể từ phiên bản 12+ 0x0306A0(M/H/G)
Ivy Bridge-E5 (opens new window) 10.9.2 N/A 0x0306E0
Haswell (opens new window) 10.8.5 Hiện tại Không còn hỗ trợ iGPU (card màn hình Onboard) kể từ phiên bản 13+ 0x0306C0(S)
Broadwell (opens new window) 10.10.0 0x0306D4(U/Y)
Skylake (opens new window) 10.11.0 Hiện tại 0x0506e3(H/S) 0x0406E3(U/Y)
Kaby Lake (opens new window) 10.12.4 0x0906E9(H/S/G) 0x0806E9(U/Y)
Coffee Lake (opens new window) 10.12.6 0x0906EA(S/H/E) 0x0806EA(U)
Amber (opens new window), Whiskey (opens new window), Comet Lake (opens new window) 10.14.1 0x0806E0(U/Y)
Comet Lake (opens new window) 10.15.4 0x0906E0(S/H)
Ice Lake (opens new window) 0x0706E5(U)
Rocket Lake (opens new window) Yêu cầu giả danh mã định danh (CPUID) của Comet Lake 0x0A0671
Các CPU mới hơn N/A N/A

Giải thích thêm: Việc CPU được liệt kê hỗ trợ ở đây không đồng nghĩa với việc SMBIOS của nó vẫn còn được macOS hỗ trợ.

  • Hiểu đơn giản là: Nhân hệ điều hành (Kernel) vẫn còn giữ lại các driver cần thiết cho chipset và CPU đó, dù cho SMBIOS và driver của các thành phần khác (như card màn hình tích hợp) đã bị Apple gỡ bỏ khỏi hệ điều hành rồi.
Giới hạn của CPU AMD trên macOS

Tiếc thay là nhiều tính năng trong macOS không thể xài được với AMD và nhiều cái khác thì bị hư một phần. Tụi nó bao gồm:

  • Phần mềm máy ảo lệ thuộc trình giám sát máy ảo (hypervisor) AppleHV
    • Bao gồm VirtualBox, VMware, Parallels, Docker, Android Studio, v.v
    • VirtualBox 6, VMware 10 và Parallels 13.1.0 là các phần mềm có hypervisor riêng, tuy nhiên xài phần mềm máy ảo lỗi thời như vậy là cả một bầu trời rủi ro bảo mật.
  • Hỗ trợ thư viện Adobe và Intel MKL/OneAPI
    • Hầu hết bộ phần mềm của Adobe dựa vào tập lệnh Memfast của Intel, dẫn đến chuyện crash (văng) trên CPU AMD.
    • Các ứng dụng khác sử dụng thư viện MKL/OneAPI của Intel cũng không chịu chạy đàng hoàng trên AMD vì tụi nó được viết mặc định cho rằng macOS chỉ chạy độc quyền trên CPU Intel.
    • Bạn có thể dùng các công cụ vá (patch) như AMDFriend (opens new window) để lách lỗi này.
  • Hỗ trợ 32-Bit
    • Với các bác vẫn cần sử dụng phần mềm 32-Bit trên Mojave trở xuống, lưu ý rằng các bản vá Vanilla (nguyên gốc) không hỗ trợ tập lệnh 32-bit.
    • Cách giải quyết là cài custom kernel (nhân tùy chỉnh) (opens new window), tuy nhiên bạn sẽ không sử dụng được iMessage nữa và không ai hỗ trợ gì cho mấy cái kernel này nếu bạn gặp vấn đề đâu (cân nhắc trước khi sử dụng).
  • Vấn đề ổn định trên nhiều ứng dụng
    • Các ứng dụng thiên về Âm thanh là dễ "dính chấu" vụ này nhất, ví dụ: Logic Pro.
    • DaVinci Resolve cũng nổi tiếng là hay dở chứng chập chờn.

# Hỗ trợ GPU (Card màn hình)

MẸO

Vui lòng đọc Hướng dẫn chọn mua card màn hình (opens new window) để biết thông tin về mấy cái GPU tương thích.

Và một lưu ý quan trọng cho Laptop có card màn hình rời (discrete GPUs):

  • 90% card rời sẽ "cúp điện" vì tụi nó được đi dây theo cấu hình mà macOS không hỗ trợ (switchable graphics - chuyển đổi card màn hình khi cần thiết). Với card rời NVIDIA, cái này thường gọi là Optimus (giải pháp phần mềm - tiết kiệm tiền hơn). Với MacBook có card màn hình rời, nó sử dụng chip MUX là giải pháp cao cấp hơn để chuyển đổi đồ họa, do đó macOS không hiểu cách chuyển đổi đồ họa của laptop bằng giải pháp phần mềm. Ta không thể nào tận dụng mấy cái card rời này cho màn hình trong (internal display) của máy được, nên tốt nhất là tắt (disable) và cúp cầu dao điện nó đi (sẽ được hướng dẫn sau). Để biết thêm thông tin vui lòng đọc Card màn hình rời trên laptop (opens new window)
  • Tuy nhiên, trong một vài trường hợp, card rời cấp điện cho các cổng xuất hình ngoài (HDMI, mini DisplayPort, v.v.), cái này thì hên xui có thể chạy hoặc không; nếu mà chạy được thì bạn buộc phải để card bật và chạy liên tục.
  • Tuy nhiên, cũng có một số ít laptop hiếm hoi không có tính năng chuyển đổi card màn hình (nghĩa là chỉ có card rời và không có card onboard), thì card rời có thể xài được (nếu được macOS hỗ trợ), nhưng việc đi dây và cấu hình khác nhau của các hãng sản xuất thường gây ra lắm rắc rối.

# Hỗ trợ Motherboard (Bo mạch chủ)

Về cơ bản thì, tất cả bo mạch chủ đều được hỗ trợ miễn là CPU chạy ngon.

Lưu ý về bo mạch chủ MSI 500-series chạy AMD

Ngoại lệ là các bo mạch chủ MSI 500-series chạy AMD (A520, B550, và X570). Mấy con main này gặp vấn đề với macOS Monterey trở lên:

  • Thiết bị PCIe không phải lúc nào cũng được liệt kê đúng
  • Cập nhật BIOS để hỗ trợ Zen 3 làm hư luôn khả năng boot vào macOS

Khuyên dùng macOS Big Sur hoặc cũ hơn cho mấy con main này..

Cảm ơn bác CaseySJ, mấy cái lỗi này đã được sửa trong phiên bản mới nhất của bản vá AMD vanilla rồi nhé!

# Hỗ trợ về mặt Lưu trữ

Đa phần thì, tất cả các ổ cứng chạy SATA đều được hỗ trợ và đại đa số ổ NVMe cũng vậy. Chỉ có vài ngoại lệ "cá biệt":

  • Ổ cứng SSD NVMe Samsung PM981, PM991 và Micron 2200S

    • Mấy ổ SSD này không tương thích "ngay từ khi bóc hộp" (gây ra kernel panic - lỗi sập hệ thống) và do đó cần trình điều khiển NVMeFix.kext (opens new window) để sửa mấy lỗi này. Lưu ý rằng mấy ổ này vẫn có thể gây lỗi khởi động ngay cả khi đã có NVMeFix.kext và đa số trường hợp chỉ có thể đọc/ghi dữ liệu chứ không thể cài hệ điều hành lên ổ này vì sẽ bị treo khi khởi động. Một số diễn đàn Hackintosh trên mạng có những bài viết khoe cài thành công macOS lên mấy ổ này nhờ sử dụng các bản vá SSDT tùy chỉnh nhưng mình khuyên bạn nên tránh sử dụng mấy cái ổ này khi có thể.
    • Nhân tiện nói luôn, ổ SSD Samsung 970 EVO Plus NVMe cũng từng bị y chang nhưng đã được sửa trong bản cập nhật firmware; tải bản cập nhật (chạy trên Windows qua Samsung Magician hoặc file ISO boot được) tại đây (opens new window).
    • Cũng cần lưu ý, laptop xài bộ nhớ Intel Optane (opens new window) hoặc Micron 3D XPoint (opens new window) để tăng tốc ổ cứng HDD cũng không được hỗ trợ trong macOS. Một số người dùng báo là cài thành công trên Catalina, thậm chí đọc/ghi được nhưng mình cực lực khuyên bạn nên tháo cái ổ đó ra để tránh mọi rắc rối khi boot.
  • Intel 600p

    • Tuy không phải là không boot được, nhưng hãy coi chừng vì model này có thể gây ra vô số vấn đề (lỗi bug) cũng như độ ổn định của hệ điều hành. Any fix for Intel 600p NVMe Drive? #1286 (opens new window)
    • Model 660p thì vẫn ngon lành cành đào.

# Mạng dây

Hầu như tất cả các card mạng dây onboard/rời đều có cửa hỗ trợ trên macOS, hoặc là bằng driver có sẵn ngay trong chính macOS với một vài bản vá kèm theo hoặc là kext do cộng đồng phát triển mà không cần chỉnh chọt gì nhiều. Các ngoại lệ chính:

# Mạng không dây

Hầu hết card Wi-Fi đi kèm theo laptop đều không được hỗ trợ vì tụi nó thường là hàng Intel/Qualcomm (không có driver trong macOS). Nếu bạn may mắn (nhân phẩm tốt), bạn có thể vớ được một con card Atheros, nhưng mấy cái card mạng cổ lỗ sĩ này chỉ hỗ trợ tới High Sierra là hết đát.

Phương án ngon nhất là kiếm một con card Broadcom được hỗ trợ; đọc Hướng dẫn chọn mua card mạng không dây (opens new window) để được tư vấn.

Lưu ý: Wi-Fi Intel hiện đã được hỗ trợ "không chính thức" (nhờ vào driver bên thứ 3) trên macOS, đọc Hướng dẫn chọn mua card mạng không dây (opens new window) để biết thêm thông tin về driver và các card được hỗ trợ.

# Lặt vặt khác

  • Cảm biến vân tay
    • Hiện tại bó tay toàn tập, không có cách nào giả lập cảm biến Touch ID, nên cảm biến vân tay coi như bỏ.
  • Windows Hello Face Recognition
    • Một số laptop có tính năng này kết nối qua giao tiếp I2C (và kết nối bằng cách đi chung đường dây với iGPU của bạn), thì camera đó không chạy được đâu.
    • Một số laptop có tính năng này kết nối qua giao tiếp USB; nếu bạn may mắn, bạn có thể xài được chức năng camera (webcam), còn lại thì nghỉ.
  • Intel Smart Sound Technology
    • Laptop có Intel SST sẽ không sử dụng được bất cứ thứ gì kết nối qua nó (thường là mic nội bộ - internal mic), vì nó không được hỗ trợ. Bạn có thể kiểm tra bằng Device Manager (Trình quản lý thiết bị) trên Windows.
  • Giắc tai nghe gộp (đường âm thanh và đường microphone)
    • Một số laptop có giắc tai nghe combo có thể sẽ không nhận tín hiệu âm thanh đầu vào (mic) qua giắc đó và sẽ phải dùng mic có sẵn của máy hoặc thiết bị thu âm ngoài qua cổng USB.
  • Cổng Thunderbolt USB-C
    • Hỗ trợ Thunderbolt (trên Hackintosh) hiện tại vẫn còn chập chờn trên macOS, đặc biệt là với bộ điều khiển Alpine Ridge vốn được trang bị trên hầu hết laptop hiện nay. Đã có những nỗ lực của cộng đồng cố gắng tạo bản vá giữ cho bộ điều khiển luôn mở nguồn (vì máy Mac thiệt có cổng luôn mở nguồn khác với những máy này chỉ chạy khi có kết nối) để cho phép Thunderbolt và tính năng cắm nóng USB-C (hotplug) hoạt động, nhưng cái giá phải trả là kernel panic bất ngờ hoặc thiết bị USB-C đang được cắm sẽ bị tèo sau khi máy vào chế độ ngủ (sleep). Nếu bạn muốn giữ các thiết bị USB-C của cổng này vẫn có kết nối và muốn sleep được, bạn phải cắm thiết bị vào từ lúc khởi động máy và giữ nguyên đó không rút ra (tức là mất khả năng cắm nóng á).
    • Lưu ý: Cái này không áp dụng cho cổng chỉ có USB-C (USB-C only ports) - chỉ bị với cổng lai Thunderbolt 3 và USB-C thôi.
    • Tắt Thunderbolt trong BIOS cũng sẽ giải quyết êm đẹp lỗi chết tiệt này (Dù không nhiều người thích vậy).