The post 1 số lỗi ProperTree appeared first on Heavietnam.
]]>Nếu các bạn đã lên Monterey thì có thể gặp những lỗi sau khi sử dụng ProperTree:
buildapp-select.command
sau đó trong folder Scripts
của ProperTree (chọn mục build app với python3)buildapp-select.command
trong folder Scripts
(nhớ chọn build app with python3).[ModuleNotFoundError: No module name 'tkinter']
sudo apt-get install python3-tk -y
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.
]]>The post macOS 12: Monterey appeared first on Heavietnam.
]]>Các SMBios sau sẽ ko còn support nữa:
Đối với những SMBios khác vẫn còn support.
các GPU sau sẽ không được support nữa
Các bạn phải nhớ là Update Kernel Patcher nhé download ở đây.
Ở 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.
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.
Tổng hợp 1 số app bị lỗi trên monterey
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.
]]>The post Một số lỗi ở xuất hiện ở macOS Big Sur appeared first on Heavietnam.
]]>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.
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.
ramrod
(^^^^^^^^^^^^^)Khi bạn bị stuck ở dòng ramrod
thì 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:
vsmcgen=1
OPCIFamily
ở X79 and X99Lỗ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.
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.
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
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
Có 2 trường hợp Broken Update Utility và Broken Seal.
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.
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:
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+
Có 2 cách fix:
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.
Để 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.
Có 3 cách fix cho trường hợp này:
Để 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.
]]>The post Fix RTC Manual appeared first on Heavietnam.
]]>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:
If (LEqual (STAS, zero))
ở RTC là If (LEqual (STAS, One))
0x0f
. Ngược lại điều kiện ở RTC sai tức là trả về giá trị là 0x00
0x00
. Khi này điều kiện ở RTC đúng và trả về là 0x0f
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.
B6: Như vậy là xong vì macOS chỉ cần RTC không cần AWAC.
B1: Ta cần xác định biến được dùng để so sánh trong method _sta
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ânB2: 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).
B1: Tải SSDT-RTC0 tại đây.
B2: Xác định đường dẫn:
PNP0B00
ta sẽ thấy được đường dẫn 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.
]]>The post Emulated NVRAM appeared first on Heavietnam.
]]>Đố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.
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.
// 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)
B1:Chỉnh config theo sau:
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.
]]>The post Kernel issue appeared first on Heavietnam.
]]>Xem chi tiết tại đây.
EndRandomSeed
SecureBootModel
trong config về Disable
. Invalid frame pointer
Đây là lỗi ở Booter --> quirks
các bạn sẽ tiến hành check các phần sau:
Booter -> MmioWhitelist
hoặc disable hoàn toàn tính năng này1 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:
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
[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:
JumpstartHotplug
ở UEFI -> APFS
(Nếu không có nó sẽ không thể boot vào recovery ở macos)// Đầ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
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:
Misc -> Security -> SecureBootModel -> Disabled
/usr/standalone/i386
to /Volumes/Preboot/<UUID>/System/Library/CoreServices
// 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
OCABC: Memory pool allocation failure - Not Found
Để khắc phục các bạn có thể chỉnh setting BIOS theo sau:
Buffer Too Small
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
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:
-no_compat_check
Couldn't allocate runtime area errors
Xem cách fix KASLR tại đây
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:
npci=0x2000
ACPI table loading on B550
Thêm SSDT-CPUR.aml tại đây.
Waiting for Root Device
” or “Prohibited Sign error
“Kernel -> Quirks -> XhciPortLimit -> flase
UEFI -> Quirks -> bạn có thể đổi port usb để khắc pục lỗi nàyeleaseUsbOwnership -> True
7.usb reset
trong SSDT-TimeIOPCIFamily
trên hedt X99IOConsoleUsers: gIOScreenLock...
/gIOLockState (3...
00009B3E
-igfxmlr
boot-arg. Điều này cũng có thể giúp fix lỗi Divide by Zero
Enable CSM
trong bios setting nó có thể có tên là Boot legacy ROMs
hoặc vài setting legacy khác
IOConsoleUsers: gIOScreenLock...
on Naviagdpmod=pikera
add vào boot-argagdpmod=ignore
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
Cannot perform kext summary
invalid frame pointer
AppleIntelMCEReporter
Thêm kext AppleMCEReporterDisabler vào EFI --> OC --> Kext hoặc EFI --> Clover --> kext --> other (snaps nếu ở OpenCore).
AppleIntelCPUPowerManagement
DummyPowerManagement
trong Kernel -> Emulate
(chỉ đối với opencore)// 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
AppleACPIPlatform
in 10.13Bật NormalizeHeaders
trong ACPI -> Quirks
Thêm kext CpuTscSync vào EFI --> OC --> kext hoặc EFI --> Clover --> kext --> other (snaps nếu là OpenCore).
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:
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à
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
Wrong CD Clock Frequency
” with Icelake laptopAdd boot-arg -igfxcdc
cckprng_int_gen
“// full error
"cckprng_int_gen: generator has already been sealed"
Có 2 khả năng dẫn đến lỗi
Forcing CS_RUNTIME for entitlement
in Big SurĐâ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
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
vsmcgen=1
VMware 15 sẽ bị stuck ở [EB|#LOG:EXITBS:START]
. Cách fix là nâng câp lên VMware 16
AppleUSBHostPort::createDevice: failed to create device
” on macOS 11.3+XhciPortLimit
ở Kernel -> Quirks
(ở 11.3+)Convert usb injectall về version 2018 của rehabman tại đây
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.
]]>The post OpenCore Debug appeared first on Heavietnam.
]]>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:
keepsyms=1
trong boot-arg0x01 + 0x02 + 0x40 = 0x43
0x43 = 67

0x00000002 + 0x00000040 + 0x80000000 = 0x80000042
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.
]]>The post [EB|#LOG:EXITBS:START] appeared first on Heavietnam.
]]>Những nguyên nhân chính gây ra lỗi này là:
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:
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:
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 cái này sẽ được phân ra làm 2 giữa Intel và 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
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
max_cpus_from_firmware not yet initialized
Sources: Dortania
The post [EB|#LOG:EXITBS:START] appeared first on Heavietnam.
]]>The post Fixing KASLR appeared first on Heavietnam.
]]>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.
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
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:
B1: Update BIOS (khá quan trọng đặc biệt là Z390).
B2: Clear CMOS.
B3: Bật các option sau trong BIOS:
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.
Ở 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
.
Đố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 DevirtualiseMmio và ProvideCustomSlide 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
).
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).
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.
]]>The post XXXXII. Fix System Clocks on HEDT appeared first on Heavietnam.
]]>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ó:
Thiếu 0x72 và 0x73.
Ta cần sửa phạm vi ở dòng io đầu tiên thành 4.
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).Bây giờ chúng ta có các Path của ACPI là rtc,lpc,pci0
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.
]]>