install hackintosh Archives - Heavietnam https://heavietnam.ga Everythingforhackintosher Sat, 23 Apr 2022 10:22:57 +0000 en-US hourly 1 https://wordpress.org/?v=5.9.3 https://heavietnam.ga/wp-content/uploads/2021/12/cropped-logo02-2-32x32.png install hackintosh Archives - Heavietnam https://heavietnam.ga 32 32 1 số lỗi ProperTree https://heavietnam.ga/2022/04/10/1-so-loi-propertree/ https://heavietnam.ga/2022/04/10/1-so-loi-propertree/#respond Sun, 10 Apr 2022 14:47:35 +0000 https://heavietnam.ga/?p=2953 Monterey: Nếu các bạn đã lên Monterey thì có thể gặp những lỗi sau khi sử dụng ProperTree: Black screen ProperTree: Nguyên nhân là do gói tk đi kèm theo python bạn cài chưa tương thích với macOS Monterey Cách khác phục là các bạn tải gói python 3.9.7 (không phải bản universal) từ trang python.org hoặc tải [...]

The post 1 số lỗi ProperTree appeared first on Heavietnam.

]]>
Monterey:

Nếu các bạn đã lên Monterey thì có thể gặp những lỗi sau khi sử dụng ProperTree:

  1. Black screen ProperTree:
    • Nguyên nhân là do gói tk đi kèm theo python bạn cài chưa tương thích với macOS Monterey
    • Cách khác phục là các bạn tải gói python 3.9.7 (không phải bản universal) từ trang python.org hoặc tải trực tiếp tại đây. Sau đó tiến hành cài và tải bản ProperTree mới nhất tại đây. Và chạy tập lệnh buildapp-select.command sau đó trong folder Scripts của ProperTree (chọn mục build app với python3)
  2. Không thể save và mở file plist:
    • Nguyên nhân cũng tương tự như lỗi 1 đây là do sử dụng gói universal. 
    • Cách khắc phục là các bạn tải bản ProperTree 3.9.7 (intel only) tại trang python.org hoặc tải tại đây sau đó chạy tập lệnh buildapp-select.command trong folder Scripts (nhớ chọn build app with python3).

Ubuntu:

  1. Khi run ProperTree gặp lỗi [ModuleNotFoundError: No module name 'tkinter']
    • Nguyên nhân là do tk chưa được cài đặt.
    • Cách khắc phục là chạy lệnh sau trong terminal sudo apt-get install python3-tk -y
  2. ProperTree không chạy vì không đủ quyền:
    • Nguyên nhân do ProperTree không có quyền để chạy
    • Cách khắc phục các bạn gõ lệnh sau vào terminal chmod +x ProperTree.command

Và như vậy là xong nếu có lỗi gì mình sẽ tiếp tục cập nhật. Follow this forum để nhận được nhưng tin tức mới liên tục.

Source tham khảo: corpnewt/ProperTree: Cross platform GUI plist editor written in python. (github.com)

The post 1 số lỗi ProperTree appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/04/10/1-so-loi-propertree/feed/ 0
macOS 12: Monterey https://heavietnam.ga/2022/04/10/fix-loi-khong-mount-duoc-file-dmg-tren-monterey/ https://heavietnam.ga/2022/04/10/fix-loi-khong-mount-duoc-file-dmg-tren-monterey/#respond Sun, 10 Apr 2022 14:38:27 +0000 https://heavietnam.ga/?p=2945 Tin tức mới trên Monterey SMBios: Các SMBios sau sẽ ko còn support nữa: iMac15,x và cũ hơn. Macmini6,x và cũ hơn. MacBook8,1 và cũ hơn. MacBookAir6,x và cũ hơn. MacBookPro11,3 và cũ hơn. Đối với những SMBios khác vẫn còn support. Hardware: các GPU sau sẽ không được support nữa Ivy Bridge (HD 4000 [...]

The post macOS 12: Monterey appeared first on Heavietnam.

]]>
Tin tức mới trên Monterey

SMBios:

Các SMBios sau sẽ ko còn support nữa:

  • iMac15,x và cũ hơn.
  • Macmini6,x và cũ hơn.
  • MacBook8,1 và cũ hơn.
  • MacBookAir6,x và cũ hơn.
  • MacBookPro11,3 và cũ hơn.

Đối với những SMBios khác vẫn còn support.

Hardware:

các GPU sau sẽ không được support nữa

  • Ivy Bridge (HD 4000 and HD 2500 | bạn có thể dùng OpenCore Legacy Patcher để add support và có thể dùng HD4000 Patcher để add các kext và bundle của Big Sur)
  • Nvidia Kepler (GTX 6xx/7xx Cards | bạn có thể dùng OpenCore Legacy Patcher để add support và có thể dùng Kepler Patcher để add các kext và bundle của Big Sur)

AMD Patcher:

Các bạn phải nhớ là Update Kernel Patcher nhé download ở đây.

Bluetooth:

Ở thời điểm hiện tại bluetooth vẫn còn 1 số lỗi hãy đợi cộng đồng update kext riêng các dòng card ar9XXX đã chính thức không còn support.

OTA Update:

Nếu bạn đang sử dụng T2 SMBios thì phải boot với OpenCore 0.7.4+ và SecureBootModel set là Default nếu bạn không sử dụng T2 SMBios thì có thể set là Default hoặc Disabled xem chi tiết tại đây.

1 số app bị lỗi

Tổng hợp 1 số app bị lỗi trên monterey

  1. Illustrator 2021: (kể cả bản quyền và thuốc): Chuột phải thanh Menu bị hiện ở góc dưới chứ không xuất hiện ngay chỗ click. Update: AI dùng bản quyền thì cập nhật lên Illustrator 2022 fix lỗi này rồi.
  2. Mamp Pro bản thuốc ko chạy trên M1, Intel vẫn chạy.
  3. Cleanmymac: ae cứ than ko chạy, nhưng maclife có hướng dẫn fix từ hồi còn Beta rồi.
  4. Wirecast: Crash – Chưa có cách fix, chờ cập nhật thôi.
  5. Sketchup (thuốc): Crash.
  6. Tg Pro (bản thuốc): Crash: Update: Đã có bản 2.6.1 chạy được trên Monterey.
  7. Yoink: Không chạy.
  8. Adobe Audition: (bản thuốc) – Crash.
  9. On1 Photo Raw – Crash.
  10. Smart Album – Crash.
  11. TextSniper – Crash.
  12. Total Finder – Không ổn định.
  13. Airserver.
  14. Sketch – Lỗi trên Mac Intel, M1 xài bình thường.
  15. Photoscape x.
  16. Fl Studio.
  17. Itube Studio.

Fix lỗi không Mount Disk được

Hiện nay 1 số may xuất hiện tình trang không thể Mount được file dmg trên Monterey và đây là cách khắc mục:

B1: Mở terminal.

B2: Gõ dòng lệnh sau vào terminal.

hdiutil attach [ khoảng trắng ] path\to\dmg file 

B3: Các bạn sẽ thấy file dmg được mount ngoài desktop ấn vào là dùng được.

Lưu ý: Bài viết mang tính chất tạm thời tương lai có thể sẽ thay đổi thì mình sẽ cập nhật lại

Source tham khảo: maclife.vn

The post macOS 12: Monterey appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/04/10/fix-loi-khong-mount-duoc-file-dmg-tren-monterey/feed/ 0
Một số lỗi ở xuất hiện ở macOS Big Sur https://heavietnam.ga/2022/04/10/1-so-loi-o-xuat-hien-o-bigsur/ https://heavietnam.ga/2022/04/10/1-so-loi-o-xuat-hien-o-bigsur/#respond Sun, 10 Apr 2022 14:26:37 +0000 https://heavietnam.ga/?p=2940 Stuck at Forcing CS_RUNTIME for entitlement Nhìn có vẻ giống như 1 lỗi nhưng nó không phải lỗi bạn cần khá nhiều thời gian để vượt qua nó. Không khởi động lại vì nó có thể phá hủy quá trình cài đặt của bạn. Stuck at PCI Configuration Begins ở các main X99 và X299 Ở Big Sur [...]

The post Một số lỗi ở xuất hiện ở macOS Big Sur appeared first on Heavietnam.

]]>
Stuck at Forcing CS_RUNTIME for entitlement

Nhìn có vẻ giống như 1 lỗi nhưng nó không phải lỗi bạn cần khá nhiều thời gian để vượt qua nó. Không khởi động lại vì nó có thể phá hủy quá trình cài đặt của bạn.

Stuck at PCI Configuration Begins ở các main X99 và X299

Ở Big Sur các dòng main hedt bị thiếu các vùng rtc do đó macos gặp lỗi fix chi tiết theo trang sau.

Stuck on ramrod(^^^^^^^^^^^^^)

Khi bạn bị stuck ở dòng ramrodthì macOS sẽ bị reset sau đó lại gặp dòng này và tiếp tục reset. Nó đã tạo 1 vòng lập restart. Điều đó cho thấy bộ phận giả lập SMC của bạn đã bị hỏng vì vậy bạn có 2 sự lựa chọn:

  • Sử dụng bản cập nhật mới nhất của VirtualSMC và Lilu sau đó add boot-arg  vsmcgen=1
  • Hoặc bạn có thể chuyển qua kext Fake-SMC của rehabMan.
  • Lưu ý: không đồng thời sử dụng cả 2 kext VirtualSMC và Fake-SMC.

Kernel panic on OPCIFamily ở X79 and X99

Lỗi này là do uncore PCI Bridges không được enable trong ACPI. Do đó IOPCIFamily sẽ bị kernel panic để giải quyết vấn đề này các bạn có thể dùng SSDT-UNC chỉ cần biên dịch bằng Maciasl và sử dụng theo guide chi tiết tại đây.

DeviceProperties injection failing

Khi gặp lỗi này các bạn sẽ không thể tiêm được device-properties được cách fix các có thể dùng SSDT-BRG0. Fix chi tiết theo trang sau.

Keyboard and Mouse broken

Lỗi này khiến cho các HID-based devices như chuột và bạn phím bị hỏng trong khi các cổng USB vẫn hoạt động, để khắc phục tình trạng này các bạn add patch như sau:

// add vào config.plist -> Kernel -> Patch

base | string | _isSingleUser

Count | Integer | 1

Enabled | Boolean  |  True

Find  | Data | <blank>

Identifier | String | com.apple.iokit.IOHIDFamily

Limit | Integer |  0

Mask | Data | <blank>

MaxKernel | String | <blank>

MinKernel | String | 20.0.0

Replace | Data | B801000000C3

ReplaceMask | Data | <blank>

Skip | Integer | 0

Early Kernel Panic on max_cpus_from_firmware not yet initialized

Để fix lỗi này các bạn cần đảm bảo đang ở OpenCore version 0.6.0+ và AvoidRuntimeDefrag được enable.

Trên 1 số máy chủ yếu trên HP DC7900. Kernel không thể xác định chính xác có bao nhiêu luồng ở phần cứng của các bạn gây panic cách fix như sau.

// add vào config.plist -> Kernel -> Patch

base | string | _acpi_count_enabled_logical_processors

Count | Integer | 1

Enabled | Boolean  |  True

Find  | Data | <blank>

Identifier | String | Kernel

Limit | Integer |  0

Mask | Data | <blank>

MaxKernel | String | <blank>

MinKernel | String | 20.0.0

Replace | Data | B804000000C3

ReplaceMask | Data | <blank>

Skip | Integer | 0

// thay 04 bằng số luồng ở phần cứng của các bạn

Can not update to newer versions of Big Sur

Có 2 trường hợp Broken Update Utility và Broken Seal.

Broken Update Utility

lỗi này thường xảy ra khi bạn dùng bản beta. Để khắc phục chúng ta chỉ cần hủy đăng kí và đăng kí lại

# hủy đăng kí
sudo /System/Library/PrivateFrameworks/Seeding.framework/Resources/seedutil unenroll
# đăng kí lại
sudo /System/Library/PrivateFrameworks/Seeding.framework/Resources/seedutil enroll

Tiếp theo bản vào cài đặt và kiểm tra lại nếu vẫn chưa được hãy kiểm tra tới phần tiếp theo.

Broken Seal

bạn gõ câu lệnh sau vào terminal

diskutil apfs list

Nhìn vào phần Snapshot Sealed Nếu nó trả về là broken thì bạn hãy fix theo các cách sau:

  • Update OpenCore version 0.6.4+
  • Khôi phục đến bản Snapshot cũ hơn tham khảo tại link sau.

Kernel Panic on Rooting from the live fs

Lỗi đầy đủ:

Rooting from the live fs of a sealed volume is not allowed on a RELEASE build

Do SecureBoot được khởi động để khắc phục chỉ cần update lên version 0.6.4+

Asus Z97 and HEDT (cụ thể là X99 và X299) thất bại trong giai đoạn 2 của quá trình cài đặt.

Có 2 cách fix:

  • Cài Big Sur vào 1 máy khác sau đó chuyển ổ đĩa vào máy cần cài
  • Fix the motherboard’s NVRAM.
    • Chủ yếu cho Asus Z97 series.
  • Chi tiết tham khảo tại trang sau.

Laptops kernel panicking on cannot perform kext scan

Lỗi này thường xảy ra do có nhiều bản sao của cùng 1 kext trong bộ nhớ cache của kernel. Thường là kext voodooinput. Để khắc phục tình trạng này các bạn hãy kiểm tra trong config.plist -->  kernel --> add và chỉ enable 1 kext voodooinput duy nhất.

Reboot on “AppleUSBHostPort::createDevice: failed to create device” on macOS 11.3+

Để fix lỗi này các bạn cần phải tắt XhciPortLimit ở mục Kernel -> Quirks  và map usb theo hướng dẫn tại đây.

An error occurred preparing the software update.

Có 3 cách fix cho trường hợp này:

  • Bật firmwarevolume trong config.plist lên
  • Có thể là do ổ cứng của bạn:
    • Thử boot bằng hdd
    • Hoặc thay ổ mới
    • Cần tránh mua các ổ sau
      • Kingston, Kingspec, Kingmax, Colorful, Fgloway,….
  • Hoặc bạn có thể tạo máy ảo rồi dùng Time Machine tạo thành file Backup sao đó tiến hành bung file ra trong Recovery của macOS trên USB.

Failed to install required firmware update

Để khắc phụ lỗi này các bạn sẽ cần enable AdviseFeatures trong EFI --> OC --> config.plist

Source tham khảo: OpenCore and macOS 11: Big Sur | OpenCore Install Guide (dortania.github.io)

The post Một số lỗi ở xuất hiện ở macOS Big Sur appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/04/10/1-so-loi-o-xuat-hien-o-bigsur/feed/ 0
Fix RTC Manual https://heavietnam.ga/2022/04/10/fix-rtc-manual/ https://heavietnam.ga/2022/04/10/fix-rtc-manual/#comments Sun, 10 Apr 2022 01:48:18 +0000 https://heavietnam.ga/?p=2913 Đối với lỗi thiếu RTC thì có 3 cách để sửa do macOS cần RTC mà ko cần AWAC do đó ta nên disable AWAC và Enable RTC. Static Patch B1: Dump DSDT theo hướng dẫn tại đây. B2: Mở DSDT ra và search ACPI000E ta sẽ thấy như sau: B3: search PNP0B00 ta sẽ [...]

The post Fix RTC Manual appeared first on Heavietnam.

]]>
Đối với lỗi thiếu RTC thì có 3 cách để sửa do macOS cần RTC mà ko cần AWAC do đó ta nên disable AWAC và Enable RTC.

Static Patch

B1: Dump DSDT theo hướng dẫn tại đây.

B2: Mở DSDT ra và search ACPI000E ta sẽ thấy như sau:

B3: search PNP0B00 ta sẽ thấy như sau

B4: Bạn chú ý phần khoanh đỏ ta sẽ có thể hiểu như sau:

  • Method(_STA thể hiện status của device đó ở đây là device RTC và AWAC
  • Tiếp đó sẽ là câu lệnh if ta sẽ thấy ở AWAC là If (LEqual (STAS, zero)) ở RTC là If (LEqual (STAS, One))
  • Vvà trả về 2 giá trị là 0x0f và 0x00
    • 0x0f: enable
    • 0x00: disable
  • Từ đó ta có thể thấy như sau khi STAS=zero tức là điều kiện của AWAC đúng sẽ trả về giá trị là 0x0f. Ngược lại điều kiện ở RTC sai tức là trả về giá trị là 0x00
  • Ngược lại khi STAS=one tức là điều kiện của AWAC sai và trả về là 0x00. Khi này điều kiện ở RTC đúng và trả về là 0x0f
  • Như vậy có thể hiểu rằng khi STAS=one thì enable RTC và disable AWAC và ngược lại
  • Nhưng STAS thì được các os set

B5: Như vậy ta đã hiểu được nguyên lý hoạt động của method _STA. Vì vậy để fix nó ta có 3 cách đi ở phần này mình sẽ hướng dẫn cách đi đầu tiên là static patch.

  • Ta nhận thấy rằng giá trị method _sta phụ thuộc vào if ((STAS vậy nếu như ta xóa if đi và chỉnh cho giá trị method _STA của rtc luôn hoạt động thì RTC được enable
  • Sao khi xóa ta được:

B6: Như vậy là xong vì macOS chỉ cần RTC không cần AWAC.

Hotpatch

Sửa giá trị STAS cho nó luôn bằng one.

B1: Ta cần xác định biến được dùng để so sánh trong method _sta

  • Search PNP0B00 nhìn vào method STA ta sẽ thấy biến được dùng để so sánh như ở trên là STAS có 1 số máy là STSl vân vân

B2: Tạo SSDT-AWAC với nói dung như sau:


DefinitionBlock ("", "SSDT", 2, "heavn", "AWAC", 0x00000000)
{
    External (STAS, IntObj)

    Scope (_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            If (_OSI ("Darwin"))
            {
                STAS = One
            }
        }
    }
}

B3: Thay STAS bằng biến mà method _STA dùng để so sánh.

B4: Save lại.

B5: Bỏ file vào EFI –> OC –> ACPI hoặc EFI –> clover –> ACPI –> patched (snaps nếu ở OpenCore).

Sử dụng SSDT-RTC0

B1: Tải SSDT-RTC0 tại đây.

B2: Xác định đường dẫn:

  • Search PNP0B00 ta sẽ thấy được đường dẫn
  • Ở đây ta có đường dẫn là _SB.PCI0.LPCB.RTC

B3: Tiến hành chỉnh sửa vào SSDT-RTC0

//thay _SB_.PCI0.LPCB bằng đường dẫn mà bạn tìm thấy

DefinitionBlock ("", "SSDT", 2, "ACDT", "RTC0", 0x00000000)
{
    External (_SB_.PCI0.LPCB, DeviceObj)    // (from opcode)

    Scope (_SB.PCI0.LPCB)
    {
        Device (RTC0)
        {
            Name (_HID, EisaId ("PNP0B00"))  // _HID: Hardware ID
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                IO (Decode16,
                    0x0070,             // Range Minimum
                    0x0070,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                IRQNoFlags ()
                    {8}
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (_OSI ("Darwin")) {
                    Return (0x0F)
                } Else {
                    Return (0);
                }
            }
        }
    }
}

B4: Bỏ nó vào EFI –> OC –> ACPI hoặc EFI –> Clover –> ACPI –> Patched (snaps nếu là OC)

Source tham khảo: (7) Văn Hùng Nguyễn | Facebook | Fixing System Clocks: Manual | Getting Started With ACPI (dortania.github.io) | Howtohackintosh.top

The post Fix RTC Manual appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/04/10/fix-rtc-manual/feed/ 1
Emulated NVRAM https://heavietnam.ga/2022/04/09/emulated-nvram/ https://heavietnam.ga/2022/04/09/emulated-nvram/#comments Sat, 09 Apr 2022 15:37:03 +0000 https://heavietnam.ga/?p=2910 Hầu hết các model đều native nhận NVRAM nhưng đối với các chip set X99 và X299 series thì bạn cần phải patch NVRAM. Đối với B360, B365, H310, H370, Z390 thì bạn có thể sử dụng SSDT-PMC để kích hoạt được NVRAM. Gen 10 thì không cần SSDT này. Cleaning out the Clover gunk [...]

The post Emulated NVRAM appeared first on Heavietnam.

]]>
Hầu hết các model đều native nhận NVRAM nhưng đối với các chip set X99 và X299 series thì bạn cần phải patch NVRAM.

Đối với B360, B365, H310, H370, Z390 thì bạn có thể sử dụng SSDT-PMC để kích hoạt được NVRAM. Gen 10 thì không cần SSDT này.

Cleaning out the Clover gunk

Có thể bạn không biết nhưng Clover có thêm các tệp RC vào macOC để mô phỏng nvram điều này sẽ xung đột với phương pháp mô phỏng của OpenCore. Để khác phục các bạn sẽ xóa các file sau:

  • /Volumes/EFI/EFI/CLOVER/drivers64UEFI/EmuVariableUefi-64.efi
  • /Volumes/EFI/nvram.plist
  • /etc/rc.clover.lib
  • /etc/rc.boot.d/10.save_and_rotate_boot_log.local
  • /etc/rc.boot.d/20.mount_ESP.local
  • /etc/rc.boot.d/70.disable_sleep_proxy_client.local.disabled
  • /etc/rc.shutdown.d/80.save_nvram_plist.local​
  • /etc/rc.boot.d
  • /etc/rc.shutdown.d​

Nếu các thư mục trống các bạn vẫn phải xóa chúng.

Kiểm tra xem NVRAM của bạn có hoạt động hay không

// dán từng dòng code sau vào

sudo -s
nvram -c
nvram myvar=test
exit

// reboot và chạy tiếp dòng sau

nvram -p | grep -i myvar

// nếu không có gì trả về thì nvram bạn không hoạt động. Nếu như nó trả về 1 dòng có từ khóa myvar test thì nvram của bạn hoạt động

// lệnh nvram -c yêu cầu tắt sip. Tuy nhiên bạn có thể thay thế dòng này bằng cách reset nvram ở menu boot (bật Misc -> Security -> AllowNvramReset -> YES)

Enabling emulated NVRAM

B1:Chỉnh config theo sau:

  • Booter:
    • DisableVariableWrite: NO
  • Misc -> Security:
    • ExposeSensitiveData: 0x3
  • NVRAM:
    • LegacyEnable: YES
    • LegacyOverwrite: YES
    • LegacySchema: được OpenCore set mặc định
    • WriteFlash: YES

Bây giờ bạn sẽ chạy LogoutHook.command (trong /Utilities/LogoutHook/).

// chạy đoạn code sau 
sudo defaults write com.apple.loginwindow LogoutHook

B2: Bạn sẽ kéo file LogoutHook.command vào terminal và nhấn enter

Lưu ý: Boot-arg -x yêu cầu NVRAM để hoạt động. với những macOS 10.12- thì điều này sẽ không khả dụng. Bạn sẽ cần copy file nvram.mojave vào cùng folder với LogoutHook.command. Nó sẽ gọi nvram.mojave thay vì gọi NVRAM hệ thống.

Source: Emulated NVRAM | OpenCore Post-Install (dortania.github.io)

The post Emulated NVRAM appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/04/09/emulated-nvram/feed/ 1
Kernel issue https://heavietnam.ga/2022/04/09/kernel-issue/ https://heavietnam.ga/2022/04/09/kernel-issue/#respond Sat, 09 Apr 2022 10:24:19 +0000 https://heavietnam.ga/?p=2904 Stuck on [EB|#LOG:EXITBS:START] Xem chi tiết tại đây. Stuck on EndRandomSeed Fix giống như lỗi Stuck on [EB|#LOG:EXITBS:START] Đối với các máy đang sử dụng OpenCore version 0.7.3+ boot Catalina bị stuck lỗi này thì chuyển SecureBootModel trong config về Disable. Stuck sau khi select macOS partion ở OpenCore Fix giống như lỗi Stuck on [...]

The post Kernel issue appeared first on Heavietnam.

]]>
Stuck on [EB|#LOG:EXITBS:START]

Xem chi tiết tại đây.

Stuck on EndRandomSeed

  • Fix giống như lỗi Stuck on [EB|#LOG:EXITBS:START]
  • Đối với các máy đang sử dụng OpenCore version 0.7.3+ boot Catalina bị stuck lỗi này thì chuyển SecureBootModel trong config về Disable.

Stuck sau khi select macOS partion ở OpenCore

  • Fix giống như lỗi Stuck on [EB|#LOG:EXITBS:START]
  • Nên sử dụng EFI debug trong trường hợp này.

Kernel Panic on Invalid frame pointer

Đây là lỗi ở Booter --> quirks các bạn sẽ tiến hành check các phần sau:

  • DevirtualiseMmio
    • Một số Certain MMIO vẫn yêu được bật để có thể hoạt động được vì vậy bạn cần loại trừ các Certain này trong Booter -> MmioWhitelist hoặc disable hoàn toàn tính năng này
    • Xem chi tiết tại đây
  • SetupVirtualMap
    • Tính năng này là bắt buộc đối với hầu hết các model. Nếu chưa có bạn hãy bật lên
    • Tuy nhiên 1 số model sẽ không hoạt động với quirks này và có thể xảy ra panic
      • Intel’s Ice Lake series
      • Intel’s Comet Lake series
      • AMD’s B550
      • AMD’s A520
      • AMD’s TRx40
      • VMs like QEMU

1 số lỗi khác có thể xảy ra do macos xung đột với tính năng write protection from CR0 register để giải quyết ta có thể làm như sau:

  • Nếu firmware của bạn support MATs (2018+) thì làm theo sau:
    • EnableWriteUnprotector -> False
    • RebuildAppleMemoryMap -> True
    • SyncRuntimePermissions -> True
  • Đối với những firmware cũ hơn thì bạn chỉnh theo sau:
    • EnableWriteUnprotector -> True
    • RebuildAppleMemoryMap -> False
    • SyncRuntimePermissions -> False

Tuy nhiên đối với 1 số máy thì gen 6 đã hộ trợ MATs để check xem máy bạn có hỗ trợ không bạn có thể check ở OpenCore log.

OCABC: MAT support is 1

// Nếu hiện là 1 tức là support còn hiện là 0 tức là không support

Stuck on [EB|LD:OFS] Err(0xE) when booting preboot volume

// full error

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

Lỗi này xảy ra khi bạn preboot volume không được cập nhất đúng cách sẽ fix theo sau:

  • Enable JumpstartHotplugUEFI -> APFS (Nếu không có nó sẽ không thể boot vào recovery ở macos)
  • Boot vào recovery
  • mở terminal và chạy đoạn code sau:
// Đầu tiên cần tìm preboot volume
diskutil list

// Nhìn vào list sau, ở đây preboot volume là disk5s2
/dev/disk5 (synthesized):
   #:                       TYPE NAME                    SIZE       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

// Mount Preboot volume
diskutil mount disk5s2

// sau đó run updatePreboot trên the Preboot volume
diskutil apfs updatePreboot /volume/disk5s2

// reboot hệ thống
reboot

Stuck on OCB: LoadImage failed - Security Violation

// full error

OCSB: No suitable signature - Security Violation
OCB: Apple Secure Boot prohibits this boot entry, enforcing!
OCB: LoadImage failed - Security Violation

Điều này là do Apple Secure Boot đã bị lỗi thời hoặc thiếu trên preboot của bạn volume dẫn đến failure to load nếu bạn có bật securebootmodel. Lý do cho các file này bị thiếu là 1 lỗi của macOS.

Để khắc phục lỗi này các bạn làm theo sau:

  • Disable SecureBootModel
    •  Misc -> Security -> SecureBootModel -> Disabled
  • cài đặt lại bản macos mới nhất
  • hoặc copy the Secure Boot manifests từ /usr/standalone/i386 to /Volumes/Preboot/<UUID>/System/Library/CoreServices
    • Bạn có thể chỉnh điều này qua termianl ở recovery vì preboot volume không thể chỉnh sửa qua finder
    • Chạy đoạn code sau ở terminal
// Tìm preboot volume
diskutil list

// Nhìn vào đoạn sau ta thấy preboot volume là disk5s2
/dev/disk5 (synthesized):
   #:                       TYPE NAME                    SIZE       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

// mount Preboot volume
diskutil mount disk5s2

// CD vào Preboot volume
// Lưu ý rằng preboot volume có đường dẫn là /System/Volumes/Preboot
cd /System/Volumes/Preboot

// lấy UUID
ls
 46923F6E-968E-46E9-AC6D-9E6141DF52FD
 CD844C38-1A25-48D5-9388-5D62AA46CFB8

// nếu có nhiều UUID cũng hiện (bạn dual nhiều macos), bạn sẽ cần xác định UUID nào là chính xác
// Để làm như vậy bạn sẽ tiến hành in ra .disk_label.contentDetails của mỗi volume

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%


// thay CD844C38-1A25-48D5-9388-5D62AA46CFB8 với UUID của bạn
cd ~
sudo cp -a /usr/standalone/i386/. /System/Volumes/Preboot/CD844C38-1A25-48D5-9388-5D62AA46CFB8/System/Library/CoreServices

Stuck on OCABC: Memory pool allocation failure - Not Found

Để khắc phục các bạn có thể chỉnh setting BIOS theo sau:

  • Above4GDecoding: Enabled
  • CSM: Disabled
    • 1 vài laptop phải bật CSM
  • update bios

Stuck on Buffer Too Small

  • Enable Above4GDecoding in the BIOS

Stuck on Plist only kext has CFBundleExecutable key

Đường dẫn không chính xác trong config.plist. Để khắc phục tiến hành snapshot bằng propertree xem cách snapshot tại đây

Stuck on This version of Mac OS X is not supported: Reason Mac…

Lỗi này xảy ra khi SMBios không còn được hỗ trợ nữa để khắc phục lỗi này các bạn có 2 phương pháp:

  • Add boot-arg -no_compat_check
  • Hoặc thay các SMBios được hỗ trợ:
    • Catalina:
      • iMac13,x+
      • iMacPro1,1
      • MacPro6,1+
      • Macmini6,x+
      • MacBook8,1+
      • MacBookAir5,x+
      • MacBookPro9,x+
    • Big Sur:
      • iMac14,4+
      • iMacPro1,1
      • MacPro6,1+
      • Macmini7,1+
      • MacBook8,1+
      • MacBookAir6,x+
      • MacBookPro11,x+
    • Monterey
      • iMac16,1+
      • iMacPro1,1
      • MacPro6,1+
      • Macmini7,1+
      • MacBook9,1+
      • MacBookAir7,1+
      • MacBookPro11,3+

Couldn't allocate runtime area errors

Xem cách fix KASLR tại đây

Stuck on RTC…, PCI Configuration Begins, Previous Shutdown…, HPET, HID: Legacy…

Đây là nơi có nhiều PCI device được thiết lập và cấu hình và là nơi các lỗi khởi động sẽ xảy ra:

  • apfs_module_start...,
  • Waiting for Root device,
  • Waiting on...IOResources...,
  • previous shutdown cause...

Những vấn đề chính gây lỗi:

  • Thiếu EC (cata+):
    • Thêm SSDT-EC theo link
    • Bỏ SSDT-EC vào EFI --> OC --> ACPI và snaps (hoặc EFI --> Clover --> ACPI --> Patched)
  • Xung đột IRQ:
    • dump SSDT-HPET theo link
  • PCI allocation issue:
    • Update BIOS.
    • Bật Above4G trong bios. Nếu bios của bạn không có option này hãy add boot-arg npci=0x2000
      • Các main X99 and X299 có thể yêu cầu cả ncpi boot-arg và Above4G trong bios
      • AMD CPU không đồng thời bật cả Above4G và NCPI trong boot-arg vì chúg sẽ xung đột
      • Đối với bios thế hệ 2020+ thì khi bật Above4G các bạn phải set Booter -> Quirks -> ResizeAppleGpuBars:0 vì Resizable BAR Support có thể sẽ trở nên khả dụng
    • CSM disabled, Windows 8.1/10 UEFI Mode enabled.
  • NVMe or SATA issue:
    • không sử dụng Samsung PM981 or Micron 2200S NVMe SSD
    • cài đặt latest firmware cho Samsung 970 EVO Plus xem chi tiết tại đây
    • Disable SATA Hot-Plug trong bios
    • Đảm bảo ổ NVMe được đặt là NVMe trong bios
  • NVRAM Failing:
    • Đây là lỗi phổ biến trên các dòng HEDT hoặc trên các main 300 series
      • Trên 300 series: tải và cài đặt SDT-PMC tại đây
      • HEDT thì các bạn sẽ Emulating NVRAM theo link sau (chỉ cần chỉnh config không cần chạy lệnh)
  • RTC missing
    • Với các chip 300+ series bạn cần SSDT-AWAC
    • Đối với các máy hedt (X99 và X299) các RTC device sẽ bị thiếu cần dùng SSDT-RTC0-RANGE xem chi tiết tại đây
    • 1 số máy HP cũng gặp trường hợp này các bạn có thể dùng SSDT-RTC xem chi tiết các fix tại đây

Stuck at ACPI table loading on B550

Thêm SSDT-CPUR.aml tại đây.

Waiting for Root Device” or “Prohibited Sign error

  • USB
    • Map USB theo hướng dẫn tại đây
    • Kernel -> Quirks -> XhciPortLimit -> flase
    • 1 vài lỗi khác có thể do firmware không truyền quyền điều khiển USB cho macOS.
      • UEFI -> Quirks -> bạn có thể đổi port usb để khắc pục lỗi nàyeleaseUsbOwnership -> True
      • Hoặc bật XHCI Handoff
    • Đôi khi việc đổi port usb cũng có thể giúp bạn khắc phục lỗi này
    • Đối với các cpu amd gen 15 và 16 thì cần add XLNCUSBFix.kext
      • Nếu như kext đó không hoạt động thì bạn có thể thử kext AMD StopSign-fixv5
    • Ngoài ra hedt X299 cũng cần Enable Above4G Decoding
    • Thiếu USB port trong ACPI
      • Các máy Intel các bạn sử dụng usbinjectall
      • Còn đối với các CPU AMD thì bạn cần sử dụng SSDT-RHUB
        • chọn 7.usb reset trong SSDT-Time
  • Sata issue:

Kernel panic with IOPCIFamily trên hedt X99

  • Bật các mục sau trong config:
    • AppleCpuPmCfgLock
    • AppleXcpmCfgLock
    • AppleXcpmExtraMsrs
  • Thêm SSDT-UNC tại đây

Stuck on or near IOConsoleUsers: gIOScreenLock.../gIOLockState (3...

  • DGPU không support hãy disable nó đi theo hướng dẫn tại đây
  • CSM bị tắt trong bios
    • 1 số laptop phải bật CSM
  • Force tốc độ PCIe 3.0 link
  • Check patch igpu theo hướng dẫn tại đây
    • Desktop UHD 630 có thể thử 00009B3E
    • -igfxmlr boot-arg. Điều này cũng có thể giúp fix lỗi Divide by Zero
    • igfxonln=1 boot-arg trên igpu coffelake+ từ 10.15.4+

Scrambled Screen on laptops

Enable CSM trong bios setting nó có thể có tên là Boot legacy ROMs hoặc vài setting legacy khác

Black screen after IOConsoleUsers: gIOScreenLock... on Navi

  • Thêm agdpmod=pikera add vào boot-arg
  • Thử thay đổi các display output khác.
  • Thử smbios MacPro7,1 với boot-arg agdpmod=ignore
  • Đối với máy MSI thì bạn hãy add patch sau vào Kernel -> Patch (ở bigsur không yêu cầu bản vá này).
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

Kernel Panic Cannot perform kext summary

  • Hãy chắc rằng bạn đã add kext chính trước khi add plugin
    • Vì những plugin chỉ có file plist mà không chứa tệp thực thi nên cần pahỉ sử dụng với kext chính
  • Không sử dụng nhiều kext giống nhau trong config.plist
    • như voodooinput có thể xuất hiện trong kẽt i2c và cả pss2 nên bạn chỉ nên dùng 1 kext voodooinput và xóa cái còn lại trong kext kia
  • Sử dụng phương pháp fix lỗi giống như invalid frame pointer

Kernel Panic AppleIntelMCEReporter

Thêm kext AppleMCEReporterDisabler vào EFI --> OC --> Kext hoặc EFI --> Clover --> kext --> other (snaps nếu ở OpenCore).

Kernel Panic AppleIntelCPUPowerManagement

  • Patch power manager tại đây
  • Thêm kext NullCPUPowerManagement
  • Hoặc bạn có thể enable DummyPowerManagement trong Kernel -> Emulate (chỉ đối với opencore)
  • Ở 1 số các cpu thế hệ cũ cung có thể bị thiếu hpet hoặc xung đột irq
// add patch sau vào ACPI --> Patch

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

Kernel Panic AppleACPIPlatform in 10.13

Bật NormalizeHeaders trong ACPI -> Quirks

macOS frozen right before login

Thêm kext CpuTscSync vào EFI --> OC --> kext hoặc EFI --> Clover --> kext --> other (snaps nếu là OpenCore).

Lỗi 1
Lỗi 2

Keyboard works but trackpad does not

Fix trackpad theo link

kextd stall[0]: AppleACPICPU

Điều này là do macOS bị thiếu giả lập SMC hãy đảm bản bạn có những phần sau:

  • LiluVirtualSMC trong EFI --> OC --> kext hoặc EFI --> Clover --> kext --> other (snaps nếu là OpenCore)
  • Nếu không được hãy thử sử dụng Fake-SMC (không sử dụng cả 2 fake-smc và VirtualSMC)

Kernel Panic on AppleIntelI210Ethernet

Đối với những main Comet lake với card I225-V NIC có thể xảy ra panic do kext I210 . Để khắc phục bạn cần có PciRoot đúng với card ethernet. 1 số đường dẫn phổ biến là

  • PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0, 0x0)
    • đối với main Asus, Gigabyte và đây cũng là mặc định
  • PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)
    • được dùng để thay thế khi dường dẫn trên không hoạt động

Bạn cũng có thể sử dụng gfxutil để tìm PciRoot của card ethernet 1 cách thủ công:

<kéo gfxutil vào terminal> | grep -i "8086:15f3"
00:1f.6 8086:15f3 /PC00@0/GBE1@1F,6 = PciRoot(0x0)/Pci(0x1F,0x6)

Ta sẽ dễ thấy PciRoot là PciRoot(0x0)/Pci(0x1F,0x6). Ta sẽ add PciRoot(0x0)/Pci(0x1F,0x6)|data| F2150000

Kernel panic on “Wrong CD Clock Frequency” with Icelake laptop

Add boot-arg -igfxcdc

Kernel panic on “cckprng_int_gen

// full error
"cckprng_int_gen: generator has already been sealed"

Có 2 khả năng dẫn đến lỗi

  • Thiếu SMC
    • add VirtualSMC vào EFI --> OC --> kext hoặc EFI --> Clover --> Kext --> other (snaps nếu dùng opencore)
    • sử dụng SSDT-CPUR không đúng
      • chỉ sử dụng SSDT này trên B550 and A520
      • Không sử dụng SSDT này trên X570 (B450 or A320)

Stuck at Forcing CS_RUNTIME for entitlement in Big Sur

Credit to Stompy for image

Đây thực sự không phải là lỗi. Chỉ vì quá trình này rất lâu để vượt qua mà nhiều người nghĩ đây là lỗi nhưng hãy kiên nhẫn và đừng tắt máy

Stuck on ramrod(^^^^^^^^^^^^^)

bị stuck ở ramrod có nghĩa là nó boot --> gặp lỗi --> reboot --> vòng lặp

Điều này có nghĩa là giả lặp smc của bạn đã bị hỏng có 2 cách khắc phục

  • Cài đặt VirtualSMC và Lilu new version kèm boot-arg vsmcgen=1
  • Bạn cũng thể thử kext Fake-SMC để thay thế

Virtual Machine Issues

VMware 15 sẽ bị stuck ở [EB|#LOG:EXITBS:START]. Cách fix là nâng câp lên VMware 16

Reboot on “AppleUSBHostPort::createDevice: failed to create device” on macOS 11.3+

  • Map usb theo link tại đây
  • Tắt XhciPortLimitKernel -> Quirks (ở 11.3+)

OC: Prelinked injection USBInjectAll.kext (USBInjectAll.kext) – Invalid Parameter

Convert usb injectall về version 2018 của rehabman tại đây

Stuck on CpuTscSync

Hãy xóa kext CpuTscSync đi sau đó (snaps nếu là opencore) reboot

Lưu ý: Tuy bài viết này dựa trên cách fix lỗi cho opencore. nhưng người dùng clover vẫn có thể áp dụng cách đọc lỗi và nguyên nhân dẫn đến lỗi vì về bản chất thì nguyên nhân dẫn đến lỗi của opencore và oc là giống nhau

Source tham khảo: Kernel Issues | OpenCore Install Guide (dortania.github.io)

The post Kernel issue appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/04/09/kernel-issue/feed/ 0
OpenCore Debug https://heavietnam.ga/2022/04/09/opencore-debug/ https://heavietnam.ga/2022/04/09/opencore-debug/#comments Sat, 09 Apr 2022 08:24:55 +0000 https://heavietnam.ga/?p=2905 Đây là phiên bản giúp bạn xem lỗi và dễ dàng fix lỗi. B1: Tải OpenCorePKG version Debug tại đây. B2: Các bạn sẽ tiền hành thay các file sau vào bộ EFI đang sử dụng (nếu chưa có EFI thì build theo link tại đây). BOOTx64.efi EFI/OC/Drivers/ OpenRuntime.efi OpenCanopy.efi OpenCore.efi B3: chỉnh config.plist theo [...]

The post OpenCore Debug appeared first on Heavietnam.

]]>
Đây là phiên bản giúp bạn xem lỗi và dễ dàng fix lỗi.

B1: Tải OpenCorePKG version Debug tại đây.

B2: Các bạn sẽ tiền hành thay các file sau vào bộ EFI đang sử dụng (nếu chưa có EFI thì build theo link tại đây).

  • BOOTx64.efi
  • EFI/OC/Drivers/
    • OpenRuntime.efi
    • OpenCanopy.efi
  • OpenCore.efi

B3: chỉnh config.plist theo sau:

  • Misc
    • AppleDebug: YES
    • ApplePanic: YES
      • Thường dùng kèm với keepsyms=1 trong boot-arg
    • DisableWatchdog: YES
    • Target: 67 (khuyến khích nên chọn là 67).
      • B1: Đọc bảng sau
      • B2: Tiến hành cộng các giá trị bạn chọn lại với nhau.
        • Ở đây mình sẽ cộng 0x01 + 0x02 + 0x40 = 0x43
      • B3: Convert kết quả nhận được từ hex sang decimal bằng Hackintool.
        • 0x43 = 67
    • DisplayLevel: 2147483714 (khuyến khích nên chọn 2147483714).
      • B1: Đọc bản sau
      • B2: Cộng các giá trị bạn đã chọn.
        • 0x00000002 + 0x00000040 + 0x80000000 = 0x80000042
      • B3: Convert Hex to Decimal.
        • 0x80000042 = 2147483714

B4: Thêm -v vào boot-arg

Như vậy là bạn đã có 1 bộ EFI Debug OpenCore (Clover cũng làm tương tự).

Source tham khảo: OpenCore Debugging | OpenCore Install Guide (dortania.github.io)

The post OpenCore Debug appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/04/09/opencore-debug/feed/ 1
[EB|#LOG:EXITBS:START] https://heavietnam.ga/2022/03/03/eblogexitbsstart/ https://heavietnam.ga/2022/03/03/eblogexitbsstart/#comments Thu, 03 Mar 2022 10:47:59 +0000 https://heavietnam.ga/?p=2546 Phần này sẽ được chia làm 3 phần: Vấn đề về booter Vấn đề về Patch Kernel Vấn đề về UEFI Vấn đề về máy ảo Lỗi liên quan đến booster Những nguyên nhân chính gây ra lỗi này là: DevirtualiseMmio Một vài vùng MMIO vẫn bắt buộc phải có để hoạt động bình thường, vì [...]

The post [EB|#LOG:EXITBS:START] appeared first on Heavietnam.

]]>
Phần này sẽ được chia làm 3 phần:

  • Vấn đề về booter
  • Vấn đề về Patch Kernel
  • Vấn đề về UEFI
  • Vấn đề về máy ảo

Lỗi liên quan đến booster

Những nguyên nhân chính gây ra lỗi này là:

DevirtualiseMmio

  • Một vài vùng MMIO vẫn bắt buộc phải có để hoạt động bình thường, vì vậy bạn cần phải loại những vùng này ở trong Booter -> MMIOWhitelist hoặc là bạn phải tắt cái dòng config này luôn. Các bạn có thể xem ở đây: Using Devirtualise MMIO
    • Đối với những bạn dùng mainboard chipset TRx40 của AMD thì hãy bật cái dòng config này
    • Đối với những bạn dùng Mainboard chipset X99 thì hãy tắt cái dòng config này vì nó có thể vô tác dụng đối với một số firmware

SetupVirtualMap

  • Dòng config này là bắt buộc phỉa bật đối với hầu hết các firrmware, nếu không có nó thì máy các bạn sẽ dễ bị dính lỗi kernel pannic ở đây, vì vậy các bạn nên bật nó nếu như các bạn vẫn chưa bật nó trong config
  • Những máy nào có chipset Z390 hoặc cũ hơn thì bắt buộc phải bật cái này
  • Tuy nhiên, một số firmware(chủ yếu là những firmware từ năm 2020 trở đi) sẽ không tương thích với cái setting này và làm cho máy bạn bị kernel pannic chảng hạn như:
    • CPU Intel dòng Icelake
    • Chipset Intel dòng Commet Lake(B460, H470, Z490, vv)
    • Mainboard AMD chipset B550 ,A520(bao gồm cả chipset X570 với bios bản mới nhất)
    • Một số mainboard AMD chipset B450 và X470 cũng giống với những mainboard ở trên khi cập nhật bios lên bản mới nhất
    • Mainboard chipset TRx40 của AMD
    • Các máy ảo chẳng hạn như QEMU
    • Mainboard chipset X299 với bios từ năm 2020 trở đi (cái này cũng áp dụng cho những mainboard X299 với bản BIOS từ cuối năm 2019 và sau từ năm 2020 trở đi)

EnableWriteUnprotector

    Một vấn đề khác chính là macOS có thể đang bị xung đột với lại chức năng chống ghi từ CR0, để fix cái này chũng ta có 2 lựa chọn:

  • Nếu frmware của máy các ban hỗ trợ MATs (firmware tù năm 2018 trở đi)
    • EnableWriteUnprotector -> False
    • RebuildAppleMemoryMap -> True
    • SyncRuntimePermissions -> True
  • Đối với những máy có firmware cũ hơn:
    • EnableWriteUnprotector -> True
    • RebuildAppleMemoryMap -> False
    • SyncRuntimePermissions -> True

Lưu ý: Một vài laptop (ví dụ như Dell Inspiron 5370) mặc dù có hỗ trợ MATs nhưng chũng vẫn bị lỗi khi boot lên, đối với nhũng máy như thế này các bạn có 2 lựa chọn:

  • Boot máy với setting của máy có firrmware cũ hơn (*Đối với những máy có firmware cũ hơn)

Về vấn đề hỗ trợ MATs những firmware chống lại EDK 2018đã hỗ trợ MATs và nhều OEM đã support nó từ thời laptop Skylake(2016) vấn đề chỉ là chũng ta không rx liệu các OEM đã cập nhật firrmware đề hỗ trợ tính năng này hay chưa. Để kiểm tra xem amsy các bạn có hỗ tợ MATS hay không, các bạn có thể dùng tính năng lấy log của OpenCore   

OCABC: MAT support is 1

*Lưu ý:  có nghĩa là firrmware của máy các bạn hỗ trợ MAT còn 0 có nghĩ là nó không hỗ trợ

Lỗi liên quan đến Patch Kernel 

Lỗi liên quan đến cái này sẽ được phân ra làm 2 giữa Intel và AMD

AMD

Thiếu các patch kernel (chỉ áp dụng cho CPU AMD, hãy đảm bảo là chũng là nhũng patch OpenCore chứ không phải Clover). Clover sử dụng MatchOS trong khi OpenCore dùng MinKernel and Maxkernel)

Lưu ý là những bản patch cũng gây ra những lỗi tương tự nên các bạn hãy đảm bảo rằng các bạn đang dùng bản patch mới nhất cho AMD OS X

Intel

  • AppleXcpmCfgLock và AppleCpuPmCfgLock
  • Nếu thiếu patch CFG hoặc XCPM thì các bạn hãy bật AppleXcpmCfgLock và AppleCpuPmCfgLock trong config
    • Các máy dùng CPU Haswell và mới hơn chỉ cần AppleXcpmCfgLock    
    • Các máy dùng CPU Ivy Bridge và cũ hơn chỉ cần AppleCpuPmCfgLock
    • Các máy dùng CPU Broadwell và cũ hơn cần phải bật AppleCpuPmCfgLock khi các bạn chạy OSX 10.10 trở xuống

Ngoài ra các bạn co thể tắt hoàn toàn CFG-Lock: Fixing CFG Lock

AppleXcpmExtraMsrs Có thể bắt buộc, seting này thường chỉ dành cho các CPU như Pentinum, HEDT và một số các máy khác có CPU không được hỗ trợ chĩnh thức trong macOS

  • Các CPU Intel đời rất cũ:
    • Đối với macOS Big Sur, nhiều firmware gặp vấn đề trong việc các định số nhân CPU và khi đó sẽ gặp kernel pannic sớm nên không thể in lỗi này lên màn hình . Thông qua serial, các bạn có thể thấy nó báo như sau: max_cpus_from_firmware not yet initialized
    • Cách giải quyết:
      • Bật AvoidRuntimeDefrag ở trong Booter -> Quirks
      • Cách này sẽ hoạt động đối với hầu hết các firmware
      • Trong trường hợp các bạn đã làm cách trên những nó vẫn không fix được thfi các bạn hãy thêm như sau vào mục Kernel -> Patch

Lỗi liên quan đến UEFI

  • ProvideConsoleGop
    • Bắt buộc phải có cho việc chuyển từ màn hình log của OpenCore. Đây từng là một phần trong AptioMemoryFix nhưng hiện tại thì tính năng này đã được chuyển sang dạng setting trong OpenCore.
    • Từ bản OpenCore version 0.5.6, tính năng này đã được bật từ động trong config.plist
  • IgnoreInvalidFlexRatio
    • Bắt buộc phải có đối với các CPU từ đời Broadwell trờ xuống, Không bắt buộc đối với CPU AMD và CPU Intel từ đời Skylake trờ lên

Sources: Dortania

The post [EB|#LOG:EXITBS:START] appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/03/03/eblogexitbsstart/feed/ 1
Fixing KASLR https://heavietnam.ga/2022/01/31/using-devirtualisemmio/ https://heavietnam.ga/2022/01/31/using-devirtualisemmio/#comments Mon, 31 Jan 2022 01:57:05 +0000 https://heavietnam.ga/?p=2432 KASLR là gì? Nó là viết tắt của cụm từ Kernel address space layout randomization. Nó là 1 công cụ bảo mật của Apple làm cho những Hacker khó có thể tìm ra những object quan trọng trong bộ nhớ vì nó luôn thay đổi ngẫu nhiên sau mỗi lần khởi động chi tiết xem [...]

The post Fixing KASLR appeared first on Heavietnam.

]]>
KASLR là gì?

Nó là viết tắt của cụm từ Kernel address space layout randomization. Nó là 1 công cụ bảo mật của Apple làm cho những Hacker khó có thể tìm ra những object quan trọng trong bộ nhớ vì nó luôn thay đổi ngẫu nhiên sau mỗi lần khởi động chi tiết xem tại đây.

Đối với những máy có memory maps nhỏ hoặc hoặc có quá nhiều device trong DSDT. Có thể sẽ có space cho kernel hoạt động nhưng cũng có thể sẽ có free space mà kernel không bao phủ tới. Vì thế ta sẽ không để macOS chọn 1 khu vực ngẫu nhiên để hoạt động trong mỗi lần reboot mà ta sẽ giới hạn khu vực bất kì mà chắc chắn nó sẽ hoạt động.

Vậy khi nào cần Fix KASLR

Thường khi boot macOS sẽ gặp các lỗi như sau:

Error allocating 0x1197b pages at 0x0000000017a80000 alloc type 2
Couldn't allocate runtime area

//hoặc

Only 244/256 slide values are usable!

//hoặc

panic(cpu 6 caller 0xffffff801fc057ba): a freed zone element has been modified in zone kalloc.4096: expected 0x3f00116dbe8a46f6 but found 0x3f00116d00000000

Chuẩn bị:

B1: Tải OpenRuntime.efi (trong OpenCorePKG xem chi tiết tại đây).

B2: Tải OpenShell.efi (xem cách tải OpenShell tại đây).

B3: chỉnh config --> Booter theo sau:

  • AvoidRuntimeDefrag: YES
  • DevirtualiseMmio: YES
  • EnableSafeModeSlide: YES
  • ProtectUefiServices: NO
  • ProvideCustomSlide: YES
  • RebuildAppleMemoryMap: YES

Setting BIOS

B1: Update BIOS (khá quan trọng đặc biệt là Z390).

B2: Clear CMOS.

B3: Bật các option sau trong BIOS:

  • Above4GDecoding (đảm bảo rằng Booter -> Quirks -> ResizeAppleGpuBars: 0).
  • Boot Options -> Windows8.1/10 mode.
  • Disable các option không cần thiết trong bios (không cần thiết ở đây có nghĩa là bạn không sử dụng):
    • CSM
    • Intel SGX
    • Parallel Port
    • Serial Port
    • iGPU
    • Thunderbolt
    • LED lighting
    • Legacy USB

Tìm Slide Value

B1: Bạn chọn OpenShell.efi tại picker của OpenCore.

B2: Ấn Enter hoặc đợi vài giây.

B3: Các bạn gõ lệnh:

//truy cập vào ổ đĩa

fs0:

// kiểm tra xem bạn có đang ở đúng đường dẫn mong muốn không nếu không có thể thử fs1:

ls

// tạo file memmap.txt

memmap > memmap.txt

B4: Mở file memmap.txt ra ta sẽ được:

Type       Start            End              # Pages          Attributes
BS_Code    0000000000000000-0000000000007FFF 0000000000000008 000000000000000F
Available  0000000000008000-000000000005DFFF 0000000000000056 000000000000000F
BS_Data    000000000005E000-000000000005FFFF 0000000000000002 000000000000000F
BS_Code    0000000000060000-000000000009EFFF 000000000000003F 000000000000000F
RT_Data    000000000009F000-000000000009FFFF 0000000000000001 800000000000000F
Available  0000000000100000-0000000000FFFFFF 0000000000000F00 000000000000000F
LoaderData 0000000001000000-00000000010FFFFF 0000000000000100 000000000000000F
Available  0000000001100000-000000001FFFFFFF 000000000001EF00 000000000000000F
Reserved   0000000020000000-00000000201FFFFF 0000000000000200 000000000000000F
Available  0000000020200000-0000000040003FFF 000000000001FE04 000000000000000F
Reserved   0000000040004000-0000000040004FFF 0000000000000001 000000000000000F
Available  0000000040005000-00000000CD431FFF 000000000008D42D 000000000000000F
LoaderCode 00000000CD432000-00000000CD53AFFF 0000000000000109 000000000000000F
BS_Data    00000000CD53B000-00000000CE025FFF 0000000000000AEB 000000000000000F
Available  00000000CE026000-00000000CE220FFF 00000000000001FB 000000000000000F
BS_Data    00000000CE221000-00000000CE5C2FFF 00000000000003A2 000000000000000F
Available  00000000CE5C3000-00000000CE5D6FFF 0000000000000014 000000000000000F
BS_Data    00000000CE5D7000-00000000CE762FFF 000000000000018C 000000000000000F
LoaderCode 00000000CE763000-00000000CE7EAFFF 0000000000000088 000000000000000F
BS_Data    00000000CE7EB000-00000000D90E3FFF 000000000000A8F9 000000000000000F
Available  00000000D90E4000-00000000D96C3FFF 00000000000005E0 000000000000000F
BS_Code    00000000D96C4000-00000000D9762FFF 000000000000009F 000000000000000F
RT_Code    00000000D9763000-00000000D9767FFF 0000000000000005 800000000000000F
BS_Code    00000000D9768000-00000000D97C5FFF 000000000000005E 000000000000000F
ACPI_NVS   00000000D97C6000-00000000D9DC6FFF 0000000000000601 000000000000000F
RT_Code    00000000D9DC7000-00000000D9DC9FFF 0000000000000003 800000000000000F
BS_Code    00000000D9DCA000-00000000D9DE0FFF 0000000000000017 000000000000000F
RT_Code    00000000D9DE1000-00000000D9DE6FFF 0000000000000006 800000000000000F
BS_Code    00000000D9DE7000-00000000D9DE8FFF 0000000000000002 000000000000000F
RT_Code    00000000D9DE9000-00000000D9DF6FFF 000000000000000E 800000000000000F
BS_Code    00000000D9DF7000-00000000D9F4DFFF 0000000000000157 000000000000000F
RT_Code    00000000D9F4E000-00000000D9F51FFF 0000000000000004 800000000000000F
BS_Code    00000000D9F52000-00000000D9F9CFFF 000000000000004B 000000000000000F
RT_Code    00000000D9F9D000-00000000D9FA3FFF 0000000000000007 800000000000000F
RT_Data    00000000D9FA4000-00000000D9FB0FFF 000000000000000D 800000000000000F
RT_Code    00000000D9FB1000-00000000D9FC2FFF 0000000000000012 800000000000000F
BS_Code    00000000D9FC3000-00000000D9FC5FFF 0000000000000003 000000000000000F
RT_Code    00000000D9FC6000-00000000D9FC7FFF 0000000000000002 800000000000000F
BS_Code    00000000D9FC8000-00000000D9FDEFFF 0000000000000017 000000000000000F
RT_Code    00000000D9FDF000-00000000D9FE4FFF 0000000000000006 800000000000000F
BS_Code    00000000D9FE5000-00000000D9FECFFF 0000000000000008 000000000000000F
RT_Code    00000000D9FED000-00000000D9FEDFFF 0000000000000001 800000000000000F
BS_Code    00000000D9FEE000-00000000D9FFCFFF 000000000000000F 000000000000000F
RT_Code    00000000D9FFD000-00000000D9FFDFFF 0000000000000001 800000000000000F
BS_Code    00000000D9FFE000-00000000DA008FFF 000000000000000B 000000000000000F
RT_Code    00000000DA009000-00000000DA00DFFF 0000000000000005 800000000000000F
BS_Code    00000000DA00E000-00000000DA039FFF 000000000000002C 000000000000000F
RT_Code    00000000DA03A000-00000000DA03AFFF 0000000000000001 800000000000000F
BS_Code    00000000DA03B000-00000000DA04AFFF 0000000000000010 000000000000000F
RT_Code    00000000DA04B000-00000000DA070FFF 0000000000000026 800000000000000F
BS_Code    00000000DA071000-00000000DA083FFF 0000000000000013 000000000000000F
RT_Code    00000000DA084000-00000000DA084FFF 0000000000000001 800000000000000F
BS_Code    00000000DA085000-00000000DA085FFF 0000000000000001 000000000000000F
RT_Code    00000000DA086000-00000000DA087FFF 0000000000000002 800000000000000F
BS_Code    00000000DA088000-00000000DA088FFF 0000000000000001 000000000000000F
RT_Code    00000000DA089000-00000000DA08DFFF 0000000000000005 800000000000000F
BS_Code    00000000DA08E000-00000000DA0A2FFF 0000000000000015 000000000000000F
RT_Data    00000000DA0A3000-00000000DA102FFF 0000000000000060 800000000000000F
RT_Code    00000000DA103000-00000000DA11DFFF 000000000000001B 800000000000000F
RT_Data    00000000DA11E000-00000000DA120FFF 0000000000000003 800000000000000F
RT_Data    00000000DA121000-00000000DA127FFF 0000000000000007 800000000000000F
RT_Data    00000000DA128000-00000000DA128FFF 0000000000000001 800000000000000F
RT_Data    00000000DA129000-00000000DA147FFF 000000000000001F 800000000000000F
Reserved   00000000DA148000-00000000DA4ADFFF 0000000000000366 000000000000000F
Reserved   00000000DA4AE000-00000000DA647FFF 000000000000019A 000000000000000F
ACPI_NVS   00000000DA648000-00000000DA70DFFF 00000000000000C6 000000000000000F
ACPI_NVS   00000000DA70E000-00000000DA8C7FFF 00000000000001BA 000000000000000F
ACPI_Recl  00000000DA8C8000-00000000DA8CCFFF 0000000000000005 000000000000000F
BS_Data    00000000DA8CD000-00000000DA8CDFFF 0000000000000001 000000000000000F
ACPI_NVS   00000000DA8CE000-00000000DA910FFF 0000000000000043 000000000000000F
BS_Data    00000000DA911000-00000000DAA5CFFF 000000000000014C 000000000000000F
BS_Code    00000000DAA5D000-00000000DACF6FFF 000000000000029A 000000000000000F
BS_Data    00000000DACF7000-00000000DAD06FFF 0000000000000010 000000000000000F
BS_Code    00000000DAD07000-00000000DAD18FFF 0000000000000012 000000000000000F
BS_Data    00000000DAD19000-00000000DAD1FFFF 0000000000000007 000000000000000F
RT_Data    00000000DAD20000-00000000DAFF3FFF 00000000000002D4 800000000000000F
BS_Data    00000000DAFF4000-00000000DAFFFFFF 000000000000000C 000000000000000F
Available  0000000100000000-000000011F1FFFFF 000000000001F200 000000000000000F
Reserved   00000000DBC00000-00000000DFDFFFFF 0000000000004200 8000000000000000
MMIO       00000000F8000000-00000000FBFFFFFF 0000000000004000 8000000000000001
MMIO       00000000FEC00000-00000000FEC00FFF 0000000000000001 8000000000000001
MMIO       00000000FED00000-00000000FED03FFF 0000000000000004 8000000000000001
MMIO       00000000FED1C000-00000000FED1FFFF 0000000000000004 8000000000000001
MMIO       00000000FEE00000-00000000FEE00FFF 0000000000000001 8000000000000001
MMIO       00000000FF000000-00000000FFFFFFFF 0000000000001000 8000000000000001
 
  Reserved  :         18,689 Pages (76,550,144 Bytes)
  LoaderCode:            401 Pages (1,642,496 Bytes)
  LoaderData:            256 Pages (1,048,576 Bytes)
  BS_Code   :          1,613 Pages (6,606,848 Bytes)
  BS_Data   :         47,748 Pages (195,575,808 Bytes)
  RT_Code   :            146 Pages (598,016 Bytes)
  RT_Data   :            876 Pages (3,588,096 Bytes)
  ACPI_Recl :              5 Pages (20,480 Bytes)
  ACPI_NVS  :          2,244 Pages (9,191,424 Bytes)
  MMIO      :         20,490 Pages (83,927,040 Bytes)
  MMIO_Port :              0 Pages (0 Bytes)
  PalCode   :              0 Pages (0 Bytes)
  Available :        969,334 Pages (3,970,392,064 Bytes)
  Persistent:              0 Pages (0 Bytes)
              -------------- 
Total Memory:          3,994 MB (4,188,663,808 Bytes)

B5: Bây giờ ta sẽ tiến hành chuyển giá trị thành Slide value chú ý vào giá trị Available lớn nhất ở cột start (chuyển sang decimal để so sánh).

B6: Các bạn sẽ thực hiện tính toán theo công thức (chuyển sang decimal để tính toán).

(HEX - 0x100000)/0x200000 = Slide Value in HEX

(DECIMAL - 0x100000)/0x200000 = Slide Value in decimal

(0000000100000000 - 0x100000)/0x200000

// convert hex to decimal 

(4294967296 - 1048576)/2097152 = 2047,5

B7: Nhưng con số này quá lớn (> 256) vì vậy ta cần phải hạ xuống các Available có giá trị nhỏ hơn cho đến khi bé hơn hoặc bằng 256.

B8: Ta sẽ thử với 0000000001100000 covert to decimal: 17825792 ta được kết quả là 8.

B9: Add vào boot-arg tham số slide=XXX (ở đây ta sẽ có là slide=8).

B10: Reboot.

Lưu ý:

Ở 1 số máy sẽ nhận được slide value rất nhỏ như slide=-0.379150390625 đối với trưởng hợp này ta sẽ đặt slide=0.

Using DevirtualiseMmio

Đối với 1 số main như Z390 và hầu hết dòng HEDT chúng ta cần lập 1 danh sách trắng. Đó là lúc MmioWhitelist phát huy tác dụng. Với DevirtualiseMmioProvideCustomSlide bạn vừa có thể bảo mật lại vừa có thể Boot, 1 combo hoàn hảo.

B1: Tạo 1 EFI Debug theo hướng dẫn tại đây (nhớ enable DevirtualiseMmio).

  • Đối với clover các bản cũng build tương tự (sử dụng bản clover debug) để dump được log file các bạn sẽ dùng hackintool –> log

B2: Bạn sẽ nhận được 1 file log mở nó ra và ta sẽ có:

21:495 00:009 OCABC: MMIO devirt start
21:499 00:003 OCABC: MMIO devirt 0x60000000 (0x10000 pages, 0x8000000000000001) skip 0
21:503 00:003 OCABC: MMIO devirt 0xFE000000 (0x11 pages, 0x8000000000000001) skip 0
21:506 00:003 OCABC: MMIO devirt 0xFEC00000 (0x1 pages, 0x8000000000000001) skip 0
21:510 00:003 OCABC: MMIO devirt 0xFED00000 (0x1 pages, 0x8000000000000001) skip 0
21:513 00:003 OCABC: MMIO devirt 0xFEE00000 (0x1 pages, 0x800000000000100D) skip 0
21:516 00:003 OCABC: MMIO devirt 0xFF000000 (0x1000 pages, 0x800000000000100D) skip 0
21:520 00:003 OCABC: MMIO devirt end, saved 278608 KB

Bây giờ ta có 6 regions cần thêm vào danh sách trắng (in đậm).

Ta cần convert hex to decimal (có thể dùng Hackintool).

  • MMIO devirt 0x60000000 -> 1610612736
  • MMIO devirt 0xFE000000 -> 4261412864
  • MMIO devirt 0xFEC00000 -> 4273995776
  • MMIO devirt 0xFED00000 -> 4275044352
  • MMIO devirt 0xFEE00000 -> 4276092928
  • MMIO devirt 0xFF000000 -> 4278190080

B3: Add vào config ==> booter ==> MmioWhitelist.

Source tham khảo: Fixing KASLR slide values | OpenCore Install Guide (dortania.github.io)

The post Fixing KASLR appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/01/31/using-devirtualisemmio/feed/ 2
XXXXII. Fix System Clocks on HEDT https://heavietnam.ga/2022/01/22/fix-system-clocks-on-hedt/ https://heavietnam.ga/2022/01/22/fix-system-clocks-on-hedt/#comments Sat, 22 Jan 2022 07:04:24 +0000 https://heavietnam.ga/?p=2378 Chuẩn bị: Dump DSDT theo hướng dẫn tại đây. Maciasl. SSDT-RTC0-RANGE. Xác định vấn đề: Các bạn cần xác định vấn đề của mình có thật sự cần dùng SSDT-RTC0 hay không. B1: Mở SSDT ra và ấn tổ hợp phím Command + F và gõ từ khóa PNP0B00 nhìn vào dòng _CRS. Chúng ta [...]

The post XXXXII. Fix System Clocks on HEDT appeared first on Heavietnam.

]]>
Chuẩn bị:

Xác định vấn đề:

Các bạn cần xác định vấn đề của mình có thật sự cần dùng SSDT-RTC0 hay không.

B1: Mở SSDT ra và ấn tổ hợp phím Command + F và gõ từ khóa PNP0B00 nhìn vào dòng _CRS.

Chúng ta có:

                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                {
                    IO (Decode16,
                        0x0070,             // Range Minimum 1
                        0x0070,             // Range Maximum 1
                        0x01,               // Alignment 1
                        0x02,               // Length 1
                       )
                    IO (Decode16,
                        0x0074,             // Range Minimum 2
                        0x0074,             // Range Maximum 2
                        0x01,               // Alignment 2
                        0x04,               // Length 2
                       )
                    IRQNoFlags ()
                        {8}
                })

Các bạn để ý vào các dòng IRQNoFlags (số vùng bao phủ) và 2 dòng IO (Decode16, chúng ta có rtc bao phủ 8 vùng là 0x70 (0x007 chính là 0x70 do được viết bằng hex), 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77 ta có:

  • Dòng io đầu tiên:
    • Bắt đầu ở 0x70.
    • Bao gồm 2 vùng.
    • Chứa 0x70, 0x71.
  • Dòng io thứ hai:
    • Bắt đầu ở 0x74.
    • Bao gồm 4 vùng.
    • Chứa 0x74, 0x75, 0x76, 0x77.

Thiếu 0x72 và 0x73.

Ta cần sửa phạm vi ở dòng io đầu tiên thành 4.

Tìm ACPI Path:

B1: Mở DSDT lên và ấn Command + F

B2: Search các từ khóa sau:

  • PNP0B00 : Dùng để tìm tên của Device RTC.
  • Name (_ADR, 0x001F0000): Dùng để tìm LPC Path (LowPinCount Path).
  • PNP0A08: Dùng để tìm PCI Path (có thể có nhiều kết quả cùng xuất hiện hãy chọn cái đầu tiên).
RTC Pathing
LPC Pathing
PCI Pathing

Bây giờ chúng ta có các Path của ACPI là rtc,lpc,pci0

Edit SSDT:

B1: Mở SSDT-RTC0 vừa tải ở bước chuẩn bị lên và sửa lại các Path như sau:

//Path mặc định sẽ là

PC00.LPC0.RTC

//chúng ta cần sửa lại là

PCI0.LPC.RTC 

B2: Rename trong SSDT:

//Trước khi rename

External (_SB_.PC00.LPC0, DeviceObj) <- Rename 

External (_SB_.PC00.LPC0.RTC_, DeviceObj) <- Rename 

Scope (_SB.PC00.LPC0) <- Rename

//Sau khi rename

External (_SB_.PCI0.LPC, DeviceObj) <- Renamed

Scope (_SB.PCI0.LPC.RTC) <- Renamed

Scope (_SB.PCI0.LPC) <- Renamed

B3: Tiếp theo search device(ACPI000E) ( hoặc ACPI000E ) Nếu DSDT của bạn có dòng này thì

  /* <- xóa nó trong ssdt
  Scope (RTC)
        {
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (_OSI ("Darwin"))
                {
                    Return (Zero)
                }
                Else
                {
                    Return (0x0F)
                }
            }
        }
  */ <- xóa nó trong ssdt

// Nếu không có thì xóa luôn phần ghi chú này trong ssdt

B4: Chúng ta có phần này:

            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                IO (Decode16,
                    0x0070,             // Range Minimum 1
                    0x0070,             // Range Maximum 1
                    0x01,               // Alignment 1
                    0x04,               // Length 1      (Expanded to include 0x72 and 0x73)
                    )
                IO (Decode16,
                    0x0074,             // Range Minimum 2
                    0x0074,             // Range Maximum 2
                    0x01,               // Alignment 2
                    0x04,               // Length 2
                    )
                IRQNoFlags ()
                    {8}
            })
// Sửa các giá trị theo phân tích ở bước xác định vấn đề ở đây mình đã sửa dòng io đầu tiên có phạm vi giá trị là 0x04

Chúng ta có:

B5: Save lại dưới dạng file aml theo hướng dẫn tại đây.

B6: Bỏ file SSDT vừa sửa vào EFI ==> OC ==> ACPI và Snapshot lại ( hoặc EFI ==> Clover ==> ACPI ) sau đó Restart.

Lưu ý: Source tham khảo: Fixing System Clocks on HEDT: Manual | Getting Started With ACPI (dortania.github.io) | OpenCorePkg/SSDT-RTC0-RANGE.dsl at master · acidanthera/OpenCorePkg (github.com)

The post XXXXII. Fix System Clocks on HEDT appeared first on Heavietnam.

]]>
https://heavietnam.ga/2022/01/22/fix-system-clocks-on-hedt/feed/ 1