# Các vấn đề trong giai đoạn nạp Kernel (Kernel Issues)

Dưới đây là sách hướng dẫn bạn vượt qua các vấn đề xoay quanh việc khởi động bộ cài macOS từ lúc chọn boot vào bộ cài cho đến trước khi giao diện cài đặt (GUI) hiện lên.

# Bị treo ở lỗi [EB|#LOG:EXITBS:START]

Phần này sẽ được chia làm 3 phần, vì vậy hãy chú ý kỹ:

# Các vấn đề về Booter

Những thủ phạm chính cần xem xét trong phần Booter (cấu hình trong Booter -> Quirks) là:

  • DevirtualiseMmio (Dọn dẹp địa chỉ bộ nhớ thiết bị không sử dụng)

    • Một số vùng MMIO vẫn cần thiết để hoạt động chính xác, vì vậy bạn cần loại trừ các vùng này trong Booter -> MmioWhitelist hoặc tắt hoàn toàn quirk này. Thông tin thêm tại đây: Sử dụng DevirtualiseMmio
    • Người dùng TRx40: Bật quirk này
    • Người dùng X99: Tắt quirk này vì nó gây lỗi với một số firmware
  • SetupVirtualMap (Thiết lập bản đồ bộ nhớ ảo để macOS tìm thấy dữ liệu nó cần)

    • Quirk này cần thiết cho đa số firmware, nếu không có nó thì rất hay bị Kernel Panic (treo máy) ở đoạn này, nên hãy bật nó nếu chưa bật.
      • Thường là dòng Z390 và cũ hơn cần bật quirk này.
      • Tuy nhiên, một số firmware (thường là 2020+) không hoạt động với quirk này và có thể gây ra Kernel Panic như:
        • Dòng Intel Ice Lake.
        • Dòng Intel Comet Lake (B460, H470, Z490, v.v)
        • Dòng AMD B550 và A520(Các BIOS mới nhất trên X570 cũng nằm trong diện này)
          • Nhiều main B450 và X470 với bản cập nhật BIOS cuối năm 2020 cũng bị ảnh hưởng
        • AMD TRx40
        • Các máy ảo (VM) như QEMU.
        • Bản cập nhật BIOS cho X299 phát hành năm 2020+ (Cái này cũng trùng hợp trên các bo mạch chủ X299 khác sử dụng BIOS mới nhất được phát hành vào cuối năm 2019 hoặc đầu năm 2020 trở đi.)
  • EnableWriteUnprotector (Cho phép ghi vào vùng nhớ bảo vệ mà UEFI không cho phép dù trên Mac cho phép ghi)

    • Một vấn đề khác có thể là do macOS xung đột với tính năng bảo vệ ghi từ thanh ghi CR0. Để giải quyết, chúng ta có 2 lựa chọn:
      • Nếu firmware hỗ trợ MATs (Firmware 2018+):
        • EnableWriteUnprotector -> False
        • RebuildAppleMemoryMap -> True
        • SyncRuntimePermissions -> True
      • Nếu firmware cũ hơn:
        • EnableWriteUnprotector -> True
        • RebuildAppleMemoryMap -> False
        • SyncRuntimePermissions -> False
      • Lưu ý: Một số laptop (ví dụ: Dell Inspiron 5370) dù hỗ trợ MATs vẫn bị treo khi boot. Trong trường hợp này, bạn có 2 lựa chọn:
        • Boot với bộ quirk cũ (tức là mở EnableWriteUnprotector và tắt RebuildAppleMemoryMap (Xây dựng lại bản đồ bộ nhớ chuẩn Apple) + SyncRuntimePermissions (Đồng bộ quyền hạn truy cập bộ nhớ))
        • Kích hoạt DevirtualiseMmio và làm theo Hướng dẫn E (opens new window)

Về hỗ trợ MAT (bảng thông tin về thuộc tính bộ nhớ), firmware được xây dựng dựa trên EDK 2018 (Bộ công cụ để người ta viết ra cái BIOS hoặc OpenCore bạn đang dùng) sẽ hỗ trợ tính năng này và nhiều nhà sản xuất thiết bị gốc (OEM) thậm chí đã thêm hỗ trợ cho cả các dòng laptop Skylake trở lên. Vấn đề là không phải lúc nào cũng dễ dàng nhận biết liệu nhà sản xuất thiết bị gốc đã cập nhật firmware hay chưa, bạn có thể kiểm tra nhật ký OpenCore để xem thiết bị của mình có hỗ trợ tính năng này hay không. (Coi ở đây để biết cách lấy file log):

OCABC: MAT support is 1
  • Lưu ý: 1 là có hỗ trợ, còn 0 là không có.

# Các vấn đề về bản vá Kernel (Kernel Patch)

Phần này chia ra cho người sử dụng Intel và AMD:

# Người sử dụng AMD

  • Thiếu bản vá kernel (opens new window)(chỉ sử dụng cho CPU AMD, bảo đảm bạn xài đúng patch cho OpenCore chứ không phải Clover. Clover sử dụng hệ thống MatchOS trong khi OpenCore sử dụng MinKernelMaxkernel)
    • Lưu ý rằng các bản vá lâu đời lỗi thời cũng gây ra lỗi tương tự, hãy bảo đảm tải bản vá mới nhất từ AMD OS X.

# Người sử dụng Intel

  • AppleXcpmCfgLockAppleCpuPmCfgLock (Vượt rào khóa quản lý nguồn CPU, lừa hệ thống rằng ổ khóa quản lý điện năng của CPU đã mở (để máy không bị treo))
    • Thiếu bản vá CFG hoặc XCPM. Vui lòng bật 2 quirk này. AppleXcpmCfgLockAppleCpuPmCfgLock
      • Haswell và mới hơn chỉ cần AppleXcpmCfgLock
      • Ivy Bridge và cũ hơn chỉ cần AppleCpuPmCfgLock
        • Broadwell và cũ hơn yêu cầu mở AppleCpuPmCfgLock nếu bạn chạy phiên bản 10.10 hoặc cũ hơn
    • Hoặc bạn có thể tắt CFG-Lock trực tiếp: Sửa lỗi CFG Lock (opens new window)
  • AppleXcpmExtraMsrs (Sửa lỗi điều phối điện năng cho CPU không được hỗ trợ)
    • Cũng có thể cần thiết, thường dành cho Pentium, HEDT và các hệ thống lạ không được hỗ trợ nguyên bản (native) trên macOS.

# Bạn đọc sử dụng Intel đời cũ

Với macOS Big Sur, nhiều firmware gặp khó khăn khi xác định số lượng nhân CPU và gây Kernel Panic (lỗi sập hệ thống) quá sớm để hiện lỗi lên màn hình. Bạn có thể thấy lỗi này qua log panic từ cổng nối tiếp (serial):

max_cpus_from_firmware not yet initialized (Số lượng CPU tối đa từ firmware chưa được khởi tạo)

Cách sửa:

  • Bật AvoidRuntimeDefrag (Ngăn hệ thống tự động sắp xếp lại dữ liệu trong RAM lúc đang khởi động hệ điều hành (vì dễ gây treo)) trong Booter -> Quirks
    • Phương pháp này sẽ thành công trên hầu hết firmware

Tuy nhiên trên một số máy như HP Compaq DC 7900, firmware vẫn gây lỗi panic nên cần ép buộc giá trị số nhân CPU cụ thể bằng bản vá. Chỉ sử dụng bản vá được đề cập ở dưới nếu bạn đã thử AvoidRuntimeDefrag mà nó không chạy:

Chi tiết về bản vá nhân CPU cho máy đời cũ (Legacy)

Để thực hiện, bạn thêm bản vá sau (thay thế giá trị 04 từ B8 04 00 00 00 C3 với số luồng thực tế có trong CPU mà phần cứng của bạn hỗ trợ - chuyển sang số HEX):

Key Type Value
Base String _acpi_count_enabled_logical_processors
Count Integer 1
Enabled Boolean True
Find Data
Identifier String Kernel
Limit Integer 0
Mask Data
MaxKernel String
MinKernel String 20.0.0
Replace Data B804000000C3
ReplaceMask Data
Skip Integer 0

# Các vấn đề về UEFI

  • ProvideConsoleGop
    • Cần thiết để chuyển sang màn hình tiếp theo, cái này ban đầu là một phần của AptioMemoryFix nhưng giờ nằm trong OpenCore dưới dạng quirk này. Có thể tìm thấy trong UEFI -> Output
    • Lưu ý từ bản 0.5.6, quirk này được bật mặc định trong sample.plist.
  • IgnoreInvalidFlexRatio
    • Cần thiết cho Broadwell và cũ hơn. Không mở trên AMD và Skylake hoặc mới hơn.

# Bị treo ở EndRandomSeed

Vấn đề tương tự như trên, xem tại đây để biết thêm chi tiết: Bị treo ở [EB|#LOG:EXITBS:START]

# Bị treo sau khi chọn phân vùng macOS trong OpenCore

Vấn đề tương tự như trên, xem tại đây để biết thêm chi tiết: Bị treo ở [EB|#LOG:EXITBS:START]

# Gặp lỗi X64 Exception Type... trên hệ thống AMD FX

Lỗi này có thể do nhiều nguyên nhân:

  • CSM (Compatibility Support Module) đang được bật trong BIOS:

    Có thể có tên gọi khác là Legacy Boot Support, Load Legacy Option ROMs/OPROMs.

  • Quirk ProvideCurrentCpuInfo (cập nhật thông tin CPU chính xác); (được yêu cầu bởi các bản vá unified) không tương thích với firmware của bạn:

    Cái này có nghĩa là bạn cần sử dụng bản vá phiên bản cũ hơn (opens new window) và chỉ cài Big Sur hoặc cũ hơn. Sau khi tải các bản vá cũ liên kết ở trên, hãy hợp nhất chúng vào config.plist của bạn (bảo đảm xóa các bản vá cũ trước).

Ví dụ:

# Kernel Panic (lỗi sập hệ thống) do Invalid frame pointer (lỗi trong quá trình xử lý bộ nhớ khiến hệ thống "đi lạc")

Lỗi này xuất hiện do một số vấn đề xoay quanh Booter -> Quirks mà bạn đã thiết lập, những điều chính cần kiểm tra:

  • DevirtualiseMmio

    • Một số vùng MMIO vẫn cần thiết để hoạt động chính xác, vì vậy bạn cần loại trừ các vùng này trong Booter -> MmioWhitelist hoặc tắt hoàn toàn quirk này.
    • Thông tin thêm tại đây: Sử dụng DevirtualiseMmio
  • SetupVirtualMap

    • Quirk này cần thiết cho đa số firmware, nếu không có nó thì rất hay bị Kernel Panic (treo máy) ở đoạn này, nên hãy bật nó nếu chưa bật.
      • Tuy nhiên, một số firmware không hoạt động với quirk này và có thể gây ra Kernel Panic như:
        • Dòng Intel Ice Lake
        • Dòng Intel Comet Lake
        • Dòng AMD B550
        • Dòng AMD A520
        • Dòng AMD TRx40
        • Các máy ảo (VM) như QEMU.

Một vấn đề khác có thể là do macOS xung đột với tính năng bảo vệ ghi từ thanh ghi CR0. Để giải quyết, chúng ta có 2 lựa chọn:

  • Nếu firmware hỗ trợ MATs (Firmware 2018+):
    • EnableWriteUnprotector -> False
    • RebuildAppleMemoryMap -> True
    • SyncRuntimePermissions -> True
  • Nếu firmware cũ hơn:
    • EnableWriteUnprotector -> True
    • RebuildAppleMemoryMap -> False
    • SyncRuntimePermissions -> False

Về hỗ trợ MAT, firmware được xây dựng dựa trên EDK 2018 sẽ hỗ trợ tính năng này và nhiều nhà sản xuất thiết bị gốc (OEM) thậm chí đã thêm hỗ trợ cho cả các dòng laptop Skylake trở lên. Vấn đề là không phải lúc nào cũng dễ dàng nhận biết liệu nhà sản xuất thiết bị gốc đã cập nhật firmware hay chưa, bạn có thể kiểm tra nhật ký OpenCore để xem thiết bị của mình có hỗ trợ tính năng này hay không. (Coi ở đây để biết cách lấy file log):

OCABC: MAT support is 1

Lưu ý: 1 là có hỗ trợ, còn 0 là không có.

# Bị treo ở [EB|LD:OFS] Err(0xE) khi khởi động phân vùng preboot

Chi tiết lỗi như sau:

[EB|`LD:OFS] Err(0xE) @ OPEN (System\\Library\\PrelinkedKernels\\prelinkedkernel)

Điều này có thể xảy ra khi phân vùng Preboot không được cập nhật đúng cách. Để sửa, bạn cần boot vào chế độ khôi phục (Recovery) và sửa nó:

  1. Bật JumpstartHotplug trong UEFI -> APFS (Chế độ Recovery có thể không boot được trên Big Sur nếu thiếu tùy chọn này)
  2. Boot vào recovery
  3. Mở Terminal và chạy các lệnh sau (nhớ thay đổi disk identifier cho đúng với máy bạn):
# Đầu tiên, bạn cần tìm cái ổ Preboot trên máy
diskutil list

# Từ danh sách bên dưới, ta có thể thấy ổ đĩa Preboot của chúng ta là disk5s2.
/dev/disk5 (được tổng hợp):
   #:      LOẠI Ổ ĐĨA (TYPE NAME)                  KÍCH THƯỚC(SIZE) MÃ ĐỊNH DANH (IDENTIFIER)
   0:      APFS Container Scheme -                      +255.7 GB   disk5
                                 Physical Store disk4s2
   1:                APFS Volume ⁨Big Sur HD - Data⁩       122.5 GB   disk5s1
   2:                APFS Volume ⁨Preboot⁩                 309.4 MB   disk5s2
   3:                APFS Volume ⁨Recovery⁩                887.8 MB   disk5s3
   4:                APFS Volume ⁨VM⁩                      1.1 MB     disk5s4
   5:                APFS Volume ⁨Big Sur HD⁩              16.2 GB    disk5s5
   6:              APFS Snapshot ⁨com.apple.os.update-...⁩ 16.2 GB    disk5s5s

# Bây giờ bạn cần gắn (mount) ổ đĩa Preboot
diskutil mount disk5s2

# Tiếp theo chạy lệnh cập nhật Preboot (updatePreboot) trên ổ Preboot của bạn
diskutil apfs updatePreboot /volume/disk5s2

Cuối cùng là khởi động lại máy là xong

# Bị treo ở OCB: LoadImage failed - Security Violation (Lỗi bảo mật khi nạp file khởi động)

Ngoài ra cũng có thể xuất hiện dưới dạng các tên lỗi khác như:
OCSB: No suitable signature - Security Violation (Chữ ký không hợp lệ - Vi phạm chính sách bảo mật)
OCB: Apple Secure Boot prohibits this boot entry, enforcing! (Tính năng Khởi động An toàn của Apple ngăn chặn việc khởi động, đang thực thi lệnh khóa!)

Lỗi này do thiếu các file manifest (tệp kê khai) của Apple Secure Boot (Tính năng khởi động an toàn của Apple) trên phân vùng Preboot, dẫn đến việc không khởi động được vào macOS nếu bạn đã bật SecureBootModel. Lý do thiếu file thực ra là một lỗi bug có trong macOS gây ra.

Để giải quyết bạn có thể làm một trong những cách sau đây:

  • Tắt SecureBootModel
    • Tức là đặt Misc -> Security -> SecureBootModel -> giá trị Disabled
  • Cài lại macOS bản mới nhất.
  • Hoặc sao chép thủ công các file kê khai (manifest) Secure Boot từ /usr/standalone/i386 sang /Volumes/Preboot/<UUID>/System/Library/CoreServices
    • Lưu ý rằng bạn có thể sẽ cần thực hiện thao tác này thông qua terminal vì phân vùng Preboot không dễ chỉnh sửa bằng Finder.

Cách chỉnh sửa bằng terminal:

# Đầu tiên, bạn cần tìm cái ổ Preboot trên máy
diskutil list

# Từ danh sách bên dưới, ta có thể thấy ổ đĩa Preboot của chúng ta là disk5s2.
/dev/disk5 (được tổng hợp):
   #:      LOẠI Ổ ĐĨA (TYPE NAME)                  KÍCH THƯỚC(SIZE) MÃ ĐỊNH DANH (IDENTIFIER)
   0:      APFS Container Scheme -                      +255.7 GB   disk5
                                 Physical Store disk4s2
   1:                APFS Volume ⁨Big Sur HD - Data⁩       122.5 GB   disk5s1
   2:                APFS Volume ⁨Preboot⁩                 309.4 MB   disk5s2
   3:                APFS Volume ⁨Recovery⁩                887.8 MB   disk5s3
   4:                APFS Volume ⁨VM⁩                      1.1 MB     disk5s4
   5:                APFS Volume ⁨Big Sur HD⁩              16.2 GB    disk5s5
   6:              APFS Snapshot ⁨com.apple.os.update-...⁩ 16.2 GB    disk5s5s

# Bây giờ bạn cần gắn (mount) ổ đĩa Preboot
diskutil mount disk5s2

# Sau đó trỏ (sử dụng lệnh CD) vào ổ đĩa Preboot của bạn
# Lưu ý rằng đường dẫn thực tế sẽ là /System/Volumes/Preboot
cd /System/Volumes/Preboot

# Lấy UUID (Mã định danh duy nhất) của bạn
ls
 46923F6E-968E-46E9-AC6D-9E6141DF52FD
 CD844C38-1A25-48D5-9388-5D62AA46CFB8

# Nếu có nhiều phiên bản macOS xuất hiện (ví dụ: bạn cài đặt song song nhiều phiên bản macOS), bạn sẽ
# cần xác định UUID nào là chính xác.
# Cách dễ nhất để xác định là in giá trị của .disk_label.contentDetails
# của ổ đĩa.
cat ./46923F6E-968E-46E9-AC6D-9E6141DF52FD/System/Library/CoreServices/.disk_label.contentDetails
 Big Sur HD%

cat ./CD844C38-1A25-48D5-9388-5D62AA46CFB8/System/Library/CoreServices/.disk_label.contentDetails
 Catalina HD%

# Tiếp theo, chúng ta hãy sao chép các tệp bổ trợ cho tính năng khởi động an toàn (Secure Boot).
# Thay thế CD844C38-1A25-48D5-9388-5D62AA46CFB8 thành mã định danh UUID tương ứng của bạn
cd ~
sudo cp -a /usr/standalone/i386/. /System/Volumes/Preboot/CD844C38-1A25-48D5-9388-5D62AA46CFB8/System/Library/CoreServices

# Bị treo ở OCABC: Memory pool allocation failure - Not Found (Hết bộ nhớ đệm cần thiết cho quá trình khởi động)

Bị cái này là do thiết lập BIOS sai, kiểm tra lại coi bạn đã thực hiện những cái ở dưới chưa:

  • Phải mở Above4GDecoding (Mở rộng không gian địa chỉ phần cứng trên 4GB)
  • Phải tắt CSM (Nếu để Chế độ WHQL của Windows 8.1/10 cũng có thể kích hoạt chức năng tương tự trên một số bo mạch chủ)
    • Lưu ý rằng trên một số laptop, bạn có thể thử mở lại CSM
  • Bảo đảm BIOS đã được cập nhật lên phiên bản mới nhất (Z390 và HEDT nổi tiếng với phần mềm vi chương trình (firmware) ở những phiên bản đầu tiên viết rất ẩu, kém chất lượng)

# Bị treo ở Buffer Too Small (Bộ nhớ đệm quá ít)

  • Vui lòng mở Above4GDecoding trong cài đặt BIOS

# Bị treo ở Plist only kext has CFBundleExecutable key (Kext không có file thực thi, khai báo sai cấu trúc)

Bị thiếu hoặc sai đường dẫn thực thi (Executable path) trong config.plist. Chi tiết hơn thì cái kext đó chỉ có "vỏ" mà lại được khai báo là có "ruột" (file thực thi) sẽ làm OpenCore bị treo khi cố gắng truy cập đến file không có thật. Bạn chạy lại công cụ Snapshot của ProperTree (Cmd/Ctrl+R) để sửa.

# Bị treo ở This version of Mac OS X is not supported: Reason Mac... (Hệ điều hành macOS đang được khởi động không hỗ trợ mẫu máy này)

Lỗi này xảy ra khi SMBIOS bạn đã cài đặt trong config.plist không còn được phiên bản macOS đó hỗ trợ. Bảo đảm các giá trị trong PlatformInfo->Generic được cài đặt với giá trị là Automatic (Tự động). Kiểm tra danh sách SMBIOS được hỗ trợ với hệ điều hành tương ứng tại đây: Chọn lựa đúng SMBIOS bạn cần

SMBIOS được hỗ trợ macOS 10.15, Catalina
  • iMac13,x+
  • iMacPro1,1
  • MacPro6,1+
  • Macmini6,x+
  • MacBook8,1+
  • MacBookAir5,x+
  • MacBookPro9,x+
SMBIOS được hỗ trợ macOS 11, Big Sur
  • iMac14,4+
  • iMacPro1,1
  • MacPro6,1+
  • Macmini7,1+
  • MacBook8,1+
  • MacBookAir6,x+
  • MacBookPro11,x+
SMBIOS được hỗ trợ macOS 12, Monterey
  • iMac16,1+
  • iMacPro1,1
  • MacPro6,1+
  • Macmini7,1+
  • MacBook9,1+
  • MacBookAir7,1+
  • MacBookPro11,3+
SMBIOS được hỗ trợ macOS 13, Ventura
  • iMac18,x+
  • iMacPro1,1
  • MacPro7,1
  • Macmini8,1
  • MacBook10,1
  • MacBookAir8,1+
  • MacBookPro14,x+
SMBIOS được hỗ trợ macOS 14, Sonoma
  • iMac19,x+
  • iMacPro1,1
  • MacPro7,1
  • Macmini8,1
  • MacBookAir8,1+
  • MacBookPro15,x+
SMBIOS được hỗ trợ macOS 15, Sequoia
  • iMac19,x+
  • iMacPro1,1
  • MacPro7,1
  • Macmini8,1
  • MacBookAir9,1+
  • MacBookPro15,x+
SMBIOS được hỗ trợ macOS 26, Tahoe
  • iMac20,x+
  • MacPro7,1
  • MacBookPro16,x+

# Lỗi Couldn't allocate runtime area (Không thể dành riêng vùng nhớ để khởi động hệ thống macOS)

Đọc Fixing KASLR slide values (Sửa lỗi vị trí sắp xếp nhân hệ thống)

# Bị treo ở RTC..., PCI Configuration Begins (Bắt đầu cấu hình PCI), Previous Shutdown... (Nguyên nhân của lần tắt nóng trước), HPET, HID: Legacy...

Đây là khu vực chung nơi các thiết bị PCI bắt đầu được khởi tạo và thiết lập, cũng là nơi hầu hết các lỗi treo sẽ xuất hiện trong khi macOS khởi động. Nếu may mắn thì bạn sẽ không gặp phải cái lỗi dở hơi này nhưng đa số sẽ gặp đó. Cố gắng sửa rồi sẽ gặp được logo Táo cắn dở nhé. Các tên lỗi khác tương tự bao gồm: apfs_module_start, Waiting on...IOResources, previous shutdown cause

  • apfs_module_start... (Mô-đun Hệ thống tập tin APFS đang được khởi động),
  • Waiting for Root device (Đang chờ thiết bị khởi động),
  • Waiting on...IOResources... (Đang chờ tài nguyên phần cứng phản hồi),
  • previous shutdown cause... (Nguyên nhân của lần tắt nóng trước)

Điểm danh những cái bạn cần kiểm tra:

  • Thiếu bản vá EC (bộ điều khiển nhúng):

    • Bảo đảm bạn đã có SSDT-EC trong thư mục EFI/OC/ACPI và kiểm tra nó có được đề cập trong config.plist ở mục ACPI -> Add chưa.
    • Nếu bạn chưa có SSDT này, lấy ở đây: Khởi đầu với ACPI (opens new window)
  • Xung đột IRQ:

    • Thường gặp trên laptop đời cũ. Chạy SSDTTime, chọn FixHPET và thêm SSDT-HPET.aml cùng các bản vá nóng ACPI đi kèm trong thư mục bạn lấy SSDT đã được tạo vào trong config (Bản vá SSDT sẽ không có tác dụng gì nếu không có sự kết hợp của bản vá nóng ACPI).
  • Vấn đề phân bổ tài nguyên PCI:

    • CẬP NHẬT BIOS ĐI MÁ, phải luôn bảo đảm rằng máy của bạn đang chạy bản BIOS mới nhất. Một số OEM lập trình cách phân bổ tài nguyên cho cổng PCI rất dở tệ trên những firmware đầu tiên, đặc biệt là ông nội AMD
    • Bạn kiểm tra coi Above4G đã được mở trong BIOS chưa nha, nếu kiếm quài không thấy cái cài đặt đó thì bạn bổ sung npci=0x2000 hoặc npci=0x3000 vào trong tham số khởi động (boot-args) nha. (Chỉ xài 1 trong 2, cái này không được đổi qua cái kia)
      • Một số bo mạch chủ X99 và X299 (Ví dụ như GA-X299-UD4) sẽ cần vừa có boot-arg npci vừa mở tính năng Above4G
      • Ngoài cái trường hợp đặc biệt trên, bạn không được mở cả hai (Above4G và npci) cùng lúc vì sẽ gây xung đột
      • Lưu ý cho những bạn có BIOS được phát hành từ 2020+: Khi kích hoạt Above4G, tính năng hỗ trợ thanh ghi có thể thay đổi kích thước (Resizable BAR Support) sẽ khả dụng. Bảo đảm Booter -> Quirks -> ResizeAppleGpuBars được thiết lập giá trị là 0 nếu cài đặt được mở.
    • Các cài đặt BIOS quan trọng khác: CSM được vô hiệu hóa, Chế độ UEFI tương tích Windows 8.1/10 (Windows 8.1/10 UEFI Mode)được bật.
  • Vấn đề liên quan NVMe và SATA:

    • Đôi khi nếu bạn xài 1 cái ổ cứng SATA có controller (bộ điều khiển) chất lượng kém hoặc ổ cứng NVMe không được hỗ trợ trong macOS, bạn cũng sẽ bị treo ở đây. Bạn cần kiểm tra những điều kiện sau:
      • Không sử dụng SSD Samsung PM981 hoặc Micron 2200S.
      • Nếu xài ổ cứng Samsung 970 EVO Plus thì vui lòng bạn cập nhật vi chương trình (firmware) lên phiên bản mới nhất (những firmware cũ được ghi nhận là có vấn đề khi giao tiếp và chạy không ổn định trên macOS. Vô đây để biết thêm thông tin (opens new window))
      • Vui lòng tắt tính năng SATA Hot-Plug (cho phép cắm nóng ổ cứng) trong BIOS (thường gây ra lỗi trên các hệ thống xài CPU AMD.)
      • Chắc chắn rằng ổ NVMe đã được thiết lập chạy ở chế độ NVMe trong BIOS nha (một số BIOS có lỗi bug cho phép bạn thiết lập ổ NVMe chạy chế độ SATA)
  • Vấn đề với NVRAM:

    • Thường xuyên gặp trên bo mạch chủ loại phổ thông và bo mạch chủ HEDT dòng Intel series 300, bạn có những lựa chọn sau để khắc phục:
      • Bo mạch chủ loại phổ thông dòng Intel Series 300: Đọc thêm Khởi đầu với ACPI (opens new window) để tạo SSDT-PMC.aml
      • Bo mạch HEDT(Ví dụ: X99): Đọc thêm Giả lập NVRAM (opens new window) về cách ngăn chặn macOS ghi vào NVRAM, lưu ý rằng khi cài đặt bạn không cần chạy tập lệnh. Chỉ cần thiết lập tệp config.plist là đủ.
  • Thiếu đồng hồ RTC:

    • Cũng thường xuyên gặp trên bo mạch chủ loại phổ thông dòng Intel series 300 (VD: Z370, Z490), bởi vì hệ thống đồng hồ RTC bị vô hiệu hóa theo mặc định. Đọc thêm Khởi đầu với ACPI (opens new window) để tạo SSDT-AWAC.aml
    • X99 và X299 có phần cứng RTC không hoàn chỉnh, vì vậy ta cần phải sửa nó bằng SSDT-RTC0-RANGE. Đọc thêm Khởi đầu với ACPI (opens new window) để tạo bản vá nói trên.
    • Ngoài ra một "con báo" lập trình viên nào đó viết phần mềm trong khi say xỉn ở HP đã vô hiệu hóa luôn RTC trên HP 250 G6 mà không có cách nào để kích hoạt lại.
      • Những model bị ảnh hưởng gồm: HP 15-DA0014dx, HP 250 G6
      • Đối với những bạn gặp phải phần cứng củ chuối như vậy, chúng ta không có cách nào khác là phải tạo một đồng hồ RTC giả cho macOS để có thể cài đặt và sử dụng. Xem phần hướng dẫn khởi đầu với ACPI để biết thêm chi tiết, cũng như ví dụ hình ảnh bên dưới nha:

Ví dụ về trường hợp của một đồng hồ RTC bị vô hiệu hóa mà không có cách nào để kích hoạt lại (lưu ý rằng việc kích hoạt lại STAS không có tác dụng gì):

# Bị treo ở ACPI table loading (Bị treo khi đang đọc sơ đồ thiết kế phần cứng) trên nền tảng B550

Nếu màn hình của bạn bị đứng ở dòng chữ hoặc gần đoạn chữ cho thấy đang load ACPI với mainboard AMD B550 hoặc A520, hãy bổ sung SSDT sau:

Và tải xong nhớ chép SSDT vào trong EFI/OC/ACPI, sau đó nhớ bổ sung vào trong tệp config.plist ở mục ACPI -> Add nha (Xài tính năng snapshot trong ProperTree, cái đó nó sẽ thay bạn làm chuyện đó)

# Bị treo ở "Waiting for Root Device" (Đang chờ thiết bị khởi động) hoặc màn hình cấm đi ngược chiều

  • Tên khác: Lỗi biển cấm, Lỗi gạch chéo

Đây là lỗi thường gặp, có thể là lỗi USB hoặc SATA, có nhiều cách để khắc phục:

# Vấn đề với cổng USB

Cái này đang giả định rằng bạn đang khởi động từ USB cài đặt chứ không phải từ ổ cứng đã cài macOS.

  • Nếu bạn chạm tới ngưỡng giới hạn 15 cổng cắm, bạn cần phải làm 1 cái Bản đồ USB (opens new window)

  • Một vấn đề khác có thể là một số firmware nhất định không chuyển quyền sở hữu USB cho macOS mà cứ ôm khư khư mình nó.

    • Bạn chỉnh lại UEFI -> Quirks -> ReleaseUsbOwnership -> đặt giá trị là True
    • Ngoài ra thử mở tính năng EHCI/XHCI Handoff ở trong BIOS cũng có thể khắc phục được lỗi này
  • Nếu USB được cắm vào cổng 3.x thì bạn thử cắm nó vào cổng 2.0 xem sao, biết đâu có thể khắc phục lỗi này và ngược lại. Nếu thành công thì cái này là do bạn làm bản đồ USB chưa chính xác với cổng USB thực tế nha. Đọc ở trên để tạo lại bản đồ USB cho đúng.

  • Đối với dòng CPU AMD 15h và 16h, bạn có thể cần bổ sung thêm kext sau:

  • Nếu đã có XLNCUSBFix mà vẫn không làm cho nó khởi động được, bạn hãy thử phương pháp sau kết hợp với kext XLNCUSBFix:

  • Đối với bạn đọc đang xài X299: Mở tùy chọn "Above 4G Decoding"

    • Lỗi phần mềm kỳ lạ trên X299 khiến cổng USB bị lỗi khi giao tiếp với macOS.
  • Trong ACPI khai báo thiếu cổng USB:

    • Đối với bạn đang xài Intel Coffee Lake hoặc cũ hơn, mình khuyên bạn sử dụng USBInjectAll (opens new window)
    • Đối với bạn đang xài Intel Ice Lake hoặc Comet Lake, mình khuyên bạn sử dụng SSDT-RHUB (opens new window)
      • Bạn có thể thay thế bằng cách chọn 7. USB Reset nếu sử dụng SSDTTime
    • Đối với bạn đọc đang xài AMD, chạy SSDTTime lên rồi sau đó chọn 7. USB Reset và bổ sung SSDT-RHUB đã được viết riêng cho phần cứng của bạn vào trong thư mục EFI và config.plist

# Vấn đề với cổng SATA

Trong một số trường hợp hiếm hoi (thường gặp trên máy tính xách tay - laptop), bộ điều khiển (controller) SATA có trong máy không được macOS hỗ trợ chính thức. Để giải quyết vấn đề này, chúng ta cần thực hiện một vài bước sau:

  • Chỉnh cài đặt SATA là chế độ AHCI trong BIOS
    • Lý do chính là macOS không hỗ trợ chế độ RAID phần cứng/phần mềm (mô hình của Intel sử dụng trong laptop phổ thông; card RAID chuyên dụng vẫn được hỗ trợ bình thường) hoặc chế độ IDE chính thức.
    • Lưu ý rằng các ổ đĩa đang để chế độ Intel Rapid Storage Technology (RST hoặc RAID dạng phần mềm cho Windows và Linux) sẽ không truy cập được trong macOS (không thấy ổ cứng).
  • Bổ sung thêm SATA-unsupported.kext (opens new window)
    • Đây là driver bổ sung hỗ trợ cho các bộ điều khiển (controller) SATA ít phổ biến (không được sử dụng trong máy Mac thiệt nên không có driver sẵn từ Apple), thường thấy ở máy tính xách tay.
    • Dối với các bộ điều khiển SATA đời cũ hơn chút xíu, AHCIPortInjector.kext (opens new window) có thể phù hợp hơn.
  • Bản vá lỗi AppleAHCIPort.kext cho Catalina (opens new window)
    • Dành cho người sử dụng macOS 11, Big Sur và đang gặp sự cố. Bản vá này sao chép lại kext Catalina đã được kiểm chứng là hoạt động tốt, không cần sử dụng kext SATA-unsupported.kext khi sử dụng kext này.

Lưu ý rằng bạn chỉ gặp sự cố này sau khi cài đặt macOS vào ổ đĩa cứng, việc khởi động trình cài đặt macOS sẽ không báo lỗi do các vấn đề về SATA.

# Lỗi sập hệ thống (Kernel panic) liên quan tới IOPCIFamily (lỗi kết nối thiết bị ngoại vi) trên nền tảng X99

Đối với bạn đọc đang sử dụng nền tảng X99 của Intel, vui lòng đọc qua các thông tin sau để biết cách sửa lỗi:

  • Bảo đảm rằng những bản vá kernel sau đã được mở:
    • AppleCpuPmCfgLock
    • AppleXcpmCfgLock
    • AppleXcpmExtraMsrs
  • Bạn cũng cần có SSDT sau:

# Bị treo ở dòng chữ hoặc gần dòng chữ IOConsoleUsers: gIOScreenLock... hoặc gIOLockState (3... (treo ở giai đoạn chuyển giao đồ họa)

Cái này là giai đoạn ngay trước khi card màn hình được khởi tạo (là chuẩn bị lên màn hình táo cắn dở) nhưng nó gặp lỗi nên bị đứng tại đây. Bạn vui lòng kiểm tra:

  • Card màn hình bạn đang sử dụng phải hỗ trợ đầy đủ UEFI (GTX 7XX/2013+) hoặc những dòng card được phân loại là "Mac Edition". Hoặc nếu card đó cùng thông số kỹ thuật với card có nhãn hiệu dành cho máy Mac thì phải mod để nạp firmware của Apple thay vì xài firmware mặc định của card.
  • Đã tắt CSM trong BIOS
    • Tuy nhiên có thể cần phải bật tính năng này trên máy tính xách tay (laptop).
  • Ép xung nhịp PCIe về phiên bản 3.0 (Forcing PCIe 3.0 link speed); (cài đặt trong BIOS)
  • Kiểm tra kỹ lại ig-platform-id và device-id đã đúng hay chưa nếu đang sử dụng iGPU (card màn hình Onboard).
    • Một số máy tính bàn có UHD 630 có thể cần sử dụng giá trị 00009B3E thay thế cho giá trị mặc định có trong hướng dẫn cấu hình config.plist
  • Thử bổ sung thêm các bản vá của WhateverGreen (opens new window). Có thể card màn hình của bạn thiếu bản vá cần thiết để chạy. Cái này là bình thường vì có thể cùng 1 ông UHD 630 nhưng nó có rất nhiều biến thể khác nhau, trường hợp trong bài viết của Dortania gần giống thông số kỹ thuật của máy Mac thiệt thì làm theo là chạy luôn không cần xài nhiều bản vá.
    • Bổ sung thêm tham số khởi động -igfxmlr. Thiếu cái này log panic cũng sẽ biểu hiện thêm lỗi "Divide by Zero" (Chia cho 0).
  • Nếu bạn sử dụng card màn hình onboard (iGPU) đời Coffee Lake cũng có thể cần bổ sung thêm tham số khởi động igfxonln=1 nếu sử dụng macOS 10.15.4 trở lên.

# Màn hình laptops bị nhiễu

Kích hoạt chế độ CSM trong cài đặt UEFI của bạn. Tùy chọn này có thể xuất hiện dưới dạng "Boot legacy ROMs" hoặc các cài đặt có tên tương tự.

# Màn hình đen thui sau khi xuất hiện IOConsoleUsers: gIOScreenLock... trên dòng card Navi

  • Bổ sung tham số khởi động agdpmod=pikera
  • Thử kết nối màn hình vào cổng khác trên card màn hình
  • Thử đánh lừa Hackintosh cho nó nghĩ rằng nó đang sử dụng SMBIOS MacPro7,1 bằng cách bổ sung tham số khởi động agdpmod=ignore (vì đây là dòng máy cho phép bạn gắn card màn hình rời bên thứ 3, cho phép bỏ qua hệ thống kiểm tra phần cứng của Apple để tránh lỗi màn hình đen)

Đối với bạn đọc đang xài card MSI Navi, bạn sẽ cần bổ sung thêm bản vá được đề cập dưới đây: Trình cài đặt không mở được trên 5700XT #901 (opens new window)

Cụ thể, hãy thêm bản vá sau vào Kernel -> Patch:

Bản vá cho card MSI Navi
Base:
Comment: Navi VBIOS Bug Patch
Count: 1
Enabled: YES
Find: 4154592C526F6D2300
Identifier: com.apple.kext.AMDRadeonX6000Framebuffer
Limit: 0
Mask:
MinKernel: 19.00.00
MaxKernel: 19.99.99
Replace: 414D442C526F6D2300
ReplaceMask:
Skip: 0

Lưu ý: Kể từ macOS 11, Big Sur bạn không cần sử dụng bản vá này cho card MSI Navi nữa. Chỉ sử dụng nếu bạn cài đặt Catalina thôi nha.

# Lỗi sập hệ thống do Cannot perform kext summary (Không thể thực hiện tóm tắt/liệt kê kext)

Lỗi này là vấn đề liên quan đến prelinked kernel (là việc hệ thống chuẩn bị sẵn một bản 'nhân' đã được liên kết (link) với các trình điều khiển thiết bị (Kexts) cần thiết. Thay vì phải đi tìm và nạp từng mảnh driver rời rạc khi khởi động, máy tính sẽ nạp một file duy nhất đã chứa sẵn mọi thứ, giúp quá trình boot nhanh và ổn định hơn). Cụ thể là macOS gặp khó khăn trong việc diễn giải và hợp nhất các kext mà chúng ta đã inject (nạp) vào. Vui lòng xác minh lại những cái dưới đây:

  • Thứ tự kext của bạn phải chính xác (kext chính/master đi trước, sau đó đến các plugin của nó; Lilu luôn luôn phải nằm trước các plugin phụ thuộc nó. VD: WhateverGreen, AppleALC).
  • Phân loại kext cho đúng: Các kext có file thực thi (executable) bên trong phải có file đó (thường là 1 tệp nhị phân có tên tương tự thư mục ở ngoài tuy nhiên không có đuôi). Các kext dạng "plist only" (chỉ chứa file plist) thì không được có file thực thi (ví dụ: USBmap.kext, XHCI-unsupported.kext, v.v. là các kext không chứa file thực thi)
  • Không bao gồm nhiều bản sao của cùng một kext trong config.plist của bạn (ví dụ: bao gồm nhiều bản sao của VoodooInput từ nhiều kext khác nhau như VoodooPS2, VoodooI2C. Nếu trường hợp của bạn sử dụng cả 2 kext thì mình khuyên thiệt lòng, bạn nên kích hoạt 1 trong 2 kext VoodooInput đầu tiên trong danh sách config và vô hiệu hóa các bản sao còn lại (trùng lặp) để tránh nguy cơ xung đột hệ thống).

Lưu ý: Lỗi này trông có vẻ rất giống với Lỗi sập hệ thống do Invalid frame pointer

# Lỗi sập hệ thống do AppleIntelMCEReporter (Lỗi trình báo cáo sự cố phần cứng Intel)

Với macOS Catalina, hỗ trợ socket đôi (dual socket) bị hư (nghĩa là không hỗ trợ cái main có 2 CPU á), một sự thật thú vị về firmware của AMD là một số mainboard sẽ báo cáo nhầm là có nhiều CPU được cắm vào. Để khắc phục lỗi này, bạn thêm AppleMCEReporterDisabler (opens new window) vào cả thư mục EFI/OC/Kexts và đừng quên cấu hình config.plist -> Kernel -> Add

# Lỗi sập hệ thống do AppleIntelCPUPowerManagement (Lỗi trình điều phối điện năng CPU Intel của Apple)

Lỗi này có khả năng là do NullCPUPowerManagement gây lỗi hoặc bị thiếu. Để khắc phục vấn đề, bạn xóa kext NullCPUPowerManagement khỏi Kernel -> Add và xóa luôn file kext đó trong EFI/OC/Kexts, sau đó mở quirk DummyPowerManagement ở mục Kernel -> Emulate

  • Lưu ý: Trên CPU Intel đời cũ (VD: Penryn hay cũ hơn nữa), lỗi trên cũng có thể do xung đột IRQ hoặc thiết bị HPET bị vô hiệu hóa. Để giải quyết, bạn có 2 lựa chọn:
Cách ép buộc thiết bị HPET hoạt động

Bên trong mục ACPI -> Patch:

Comment String Force HPET Online
Enabled Boolean YES
Count Number 0
Limit Number 0
Find Data A010934F53464C00
Replace Data A40A0FA3A3A3A3A3

# Lỗi sập hệ thống do AppleACPIPlatform (xung đột giữa hệ điều hành và bản sơ đồ thiết kế phần cứng) trong phiên bản 10.13

Trên macOS 10.13 High Sierra, hệ điều hành này trở nên khắc khe cực đoan hơn với các bảng ACPI, cụ thể là một lỗi bug liên quan đến cách xử lý các headers (opens new window). Để sửa lỗi này, bạn hãy mở NormalizeHeaders trong mục ACPI -> Quirks của file config.plist

# macOS bị treo (frozen) ngay trước khi đăng nhập

Đây là ví dụ phổ biến của việc TSC bị lỗi (screwed up TSC). Đối với hầu hết các máy tính gặp lỗi này, bạn bổ sung kext CpuTscSync (opens new window) là được

Cách phổ biến nhất để nhận biết lỗi TSC:

Trường hợp 1 Trường hợp 2

# Bàn phím chạy nhưng bàn rê chuột thì đơ

Hãy bảo đảm rằng VoodooInput được liệt kê nằm trước kext VoodooPS2 và VoodooI2C bên trong config.plist của bạn.

Khắc phục sự cố VoodooI2C

Kiểm tra thứ tự tải kext của bạn - bảo đảm tụi nó sắp xếp đúng thứ tự giống những cái đã được hướng dẫn trong phần Tập hợp các tệp tin:

  1. VoodooGPIO, VoodooInput và VoodooI2CServices có thể sắp xếp theo bất kỳ thứ tự nào bạn muốn(Tụi nó nằm trong VoodooI2C.kext/Contents/PlugIns)
  2. VoodooI2C
  3. Satellite/Plugin Kext (Kext vệ tinh/plugin đi kèm).

Bảo đảm bạn đã có SSDT-GPIO bên trong EFI/OC/ACPI và đã thêm vào config.plist dưới mục ACPI -> Add. Nếu đã thêm rồi mà bạn vẫn không sử dụng được bàn rê chuột, hãy tham khảo trang Bắt đầu với ACPI GPIO (opens new window).

# Treo màn hình ở lỗi kextd stall[0]: AppleACPICPU (Hệ thống bị đình trệ do phải chờ đợi CPU phản hồi nhưng không nhận được hồi âm vì không tìm thấy SMC)

Lỗi này là do thiếu kext VirtualSMC (giả lập chip SMC có trên máy Mac thiệt) hoặc file bị lỗi. Hệ thống macOS yêu cầu có SMC để chạy được, nếu trình quản lý CPU của macOS (AppleACPICPU) gửi lệnh xác nhận cho SMC để tiếp tục khởi động nhưng không tìm thấy chip giả lập, hệ thống sẽ chìm trong vòng lặp chờ đợi vô hạn và bị đứng ở màn hình lỗi trên, do đó bạn vui lòng kiểm tra lại như sau:

  • Cả 2 kext Lilu và VirtualSMC phải có trong EFI/OC/kexts và đã được khai báo trong config.plist
  • Lilu phải luôn luôn chạy trước VirtualSMC trong danh sách kext của bạn
  • Giải pháp cuối cùng là thử sử dụng FakeSMC (opens new window) để thay thế, Lưu ý: KHÔNG ĐƯỢC sử dụng VirtualSMC và FakeSMC cùng lúc

# Lỗi sập hệ thống do kext AppleIntelI210Ethernet

Đối với những bạn sử dụng mainboard Comet Lake có card mạng (NIC) I225-V, bạn có thể gặp lỗi kernel panic (lỗi sập hệ thống) khi khởi động do kext I210. Để giải quyết vấn đề này, bạn cần phải biết PciRoot (đường dẫn cổng PCI) chính xác của card mạng Ethernet. Thường thì nó sẽ là một trong hai cái đường dẫn sau:

  • PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0, 0x0)
    • Theo mặc định, đây là đường dẫn mà mainboard Asus và Gigabyte sử dụng.
  • PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)
    • Một số OEM (nhà sản xuất) khác có thể sử dụng đường dẫn này.

Đối với những ai muốn kiếm đường dẫn PciRoot thủ công, bạn sẽ cần cài đặt macOS hoàn chỉnh và chạy lệnh sau với công cụ gfxutil (opens new window):

/path/to/gfxutil | grep -i "8086:15f3"

Kết quả trả về sẽ giống như vầy:

00:1f.6 8086:15f3 /PC00@0/GBE1@1F,6 = PciRoot(0x0)/Pci(0x1F,0x6)

Phần đuôi PciRoot(0x0)/Pci(0x1F,0x6) chính là cái bạn cần thêm vô trong config.plist của bạn với device-id là F2150000

# Lỗi sập hệ thống do "Wrong CD Clock Frequency" (Sai lệch xung nhịp hệ thống) trên laptop dòng Ice lake

Đây là một lỗi phổ biến rất hay gặp trên laptop Ice Lake. Lỗi này là do tốc độ xung nhịp của card màn hình onboard (iGPU) trên laptop của một số hãng cấu hình sẵn không đạt tốc độ xung nhịp mà macOS yêu cầu. Để vượt qua lỗi kernel panic này, bạn chỉ cần bổ sung tham số khởi động -igfxcdc để kích hoạt bản vá.

# Lỗi sập hệ thống do "cckprng_int_gen" (Lỗi bảo mật: Bộ sinh mã khóa của máy tính bị xung đột)

Chi tiết lỗi:

"cckprng_int_gen: generator has already been sealed (Trình tạo số ngẫu nhiên đã bị khóa (sealed) nhưng hệ thống vẫn cố can thiệp.)"

Bạn cần hiểu là mọi hệ điều hành hiện đại được trang bị một bộ tạo số ngẫu nhiên (trên macOS được kêu là CoreCrypto Pseudo-Random Number Generator) để tạo ra các mã khóa bảo mật, mật khẩu tạm thời... giúp tăng thêm tính bảo mật và an toàn cho máy tính trong khi khởi động. Vấn đề xảy ra khi dãy số đó đã được niêm phong lại sau khi tạo xong, không ai được phép thay đổi nó nữa để đảm bảo an toàn tuyệt đối nhưng vì bạn cấu hình OpenCore chưa đúng nên hệ thống lại cố tình chọc vào hoặc yêu cầu cái máy này tạo dãy số đó một lần nữa sau khi đã niêm phong, macOS là 1 đứa bảo mật cực đoan nhận thấy đây là hành vi báo động đỏ về bảo mật nên cho dừng Kernel. Với lỗi trên có khả năng là 1 trong 2 nguyên nhân sau:

  • Thiếu trình giả lập SMC (thiệt đó, nghe nó rất xàm và không liên quan nhưng bạn vui lòng kiểm tra lại nha, lỗi này nhiều khi do bạn quên khai báo VirtualSMC đã có trong config.plist hoặc có chép cái kext đó trong EFI chưa).
  • Sử dụng sai SSDT (chẳng hạn) như SSDT-CPUR.

Đối với nguyên nhân thứ hai, bạn đặc biệt lưu ý chỉ xài SSDT đó trên B550 và A520 thôi. Tuyệt đối không sử dụng trên X570 hoặc những phần cứng cũ hơn (chẳng hạn như B450 hoặc A320)

# Bị treo ở Forcing CS_RUNTIME for entitlement trong Big Sur

Credit to Stompy for image

Đây là giai đoạn mà macOS sẽ niêm phong (seal) ổ đĩa chứa hệ điều hành, bạn thấy nó đứng ở đó hồi lâu tưởng macOS bị đứng. Câu trả lời ở đây là ĐỪNG KHỞI ĐỘNG LẠI MÁY, mình biết bạn đang nghĩ nó bị treo nhưng không phải đâu, quá trình này sẽ tốn khá nhiều thời gian để hoàn thành đặc biệt trên phần cứng cũ.

# Bị treo ở màn hình ramrod(^^^^^^^^^^^^^)

Credit to Notiflux for image

Nếu bạn bị treo ở giai đoạn xung quanh phần ramrod (cụ thể là: máy boot lên, gặp lỗi này, rồi khởi động lại và lại gặp lỗi này, tạo thành vòng lặp), cái này đang gợi ý cho bạn biết trình giả lập SMC của bạn bị hư hoặc không chạy chính xác. Để sửa lỗi này, bạn có 2 lựa chọn:

  • Đảm bảo bạn đang sử dụng bản mới nhất của VirtualSMC and Lilu, sau đó bổ sung thêm tham số khởi động vsmcgen=1
  • Chuyển sang sử dụng Rehabman's FakeSMC (opens new window) (bạn có thể xài mẹo MinKernel/MaxKernel đã nhắc ở trên để giới hạn FakeSMC chỉ chạy cho Big Sur trở lên).

Và khi đổi kext, bảo đảm bạn không bật cả 2 kext FakeSMC và VirtualSMC trong config.plist vì sẽ gây xung đột.

# Các vấn đề khi chạy trên máy ảo

  • Bản VMWare 15 được báo cáo là hay bị treo ở [EB|#LOG:EXITBS:START]. Bản VMWare 16 đã sửa lỗi này. Ưu tiên sử dụng bản VMWare 16 nếu có thể.

# Máy tính tự động khởi động lại ở dòng lỗi "AppleUSBHostPort::createDevice: failed to create device" (Lỗi kết nối: Máy tính nhìn thấy cổng USB nhưng không thể nhận dạng được thiết bị đang được cắm vào cổng USB) trên phiên bản macOS 11.3+

Lỗi này là do XhciPortLimit gây lỗi trên macOS 11.3 hoặc mới hơn (opens new window),Để giải quyết, bạn bắt buộc phải vô hiệu hóa (disable) XhciPortLimit trong Kernel -> Quirks. Chắc chắn là bạn đã lập bản đồ chính xác cho cổng USB của bạn (opens new window) trước khi thực hiện.