Dump dsdt 

Hệ điều hành Windowns ( khuyến khích  )

     B1: Down ssdt-time từ nguồn sau https://github.com/corpnewt/SSDTTime

     B2: Bấm phím 8 sau đó enter 

     B3: Lấy dsdt từ thư mục của ssdt-time

Lưu ý : Nếu các bạn dual boot với win qua opencore thì dsdt sau khi dump sẽ mất đi sự thuần khiết (sinh ra nhiều lỗi hơn)

winpe

  • rw everything

B1: Tải rw-evrything

B2: Các bạn tiến hành cài đặt và mở app 

B3: Sau đó các bạn chọn vào menu Access ⇒ ACPI Tables ⇒ dsdt

B4: Sau đó các bạn bấm save và chọn nơi lưu 

B5: Tiếp các bạn đổi tên file từ đuôi .bin ⇒ .aml 

B6: Sau đó boot về mac và tận hưởng thôi 

  • acpidump.exe ( khuyến khích  ) :

B1: Tải acpidump.exe 

B2 : Mở cmd ra 

B3: [ kéo acpidump.exe vào ] -b -n DSDT -z

B4: Đổi extension của dsdt từ .dat ⇒ .aml 

Hệ điều hành macos

With opencore

  • Cách 1 : Dump bằng acpidump.efi

B1: Tải acpidum.efi từ nguồn https://github.com/dortania/OpenCore-Install-Guide/blob/master/extra-files/acpidump.efi.zip sau đó bỏ nó vào mục EFI-tool rồi snapshot config

B2: Tại giao diện boot chọn acpidum.efi  

B3: Dùng open‌sell.efi  dán đoạn sau vào openshell.efi ( viết từng dòng không dán toàn bộ)

fs0: // replace with proper drive

dir  // to verify this is the right directory

Directory of fs0:\

   01/01/01 3:30p EFI

cd EFI\OC\Tools

EFI\OC\Tools> acpidump.efi -b -n DSDT -z 

Khi dán toàn bộ vào nó sẽ có dạng là

shell> fs0: // replace with proper drive

fs0:\> dir  // to verify this is the right directory

   Directory of fs0:\

   01/01/01 3:30p EFI

fs0:\> cd EFI\OC\Tools

fs0:\EFI\OC\Tools> acpidump.efi -b -n DSDT -z 

Lưu ý : Sau khi dump xong nó sẽ nằm ở mục EFI ⇒ OC ⇒ tool dưới dạng file .dat hay rename nó lại thành file .aml

  • Cách 2 : SysReport Quirk ( khuyến khích )
B1: Các bạn cần tạo 1 bộ efi debug như sau :
  • Thay thế các mục sau vào efi đang sử dụng 
  • bootX64.efi
  • drivers
  • opencore.efi

B2: Mở config lên snaps lại và tìm như hình 

B3: Boot lại vào ổ cứng 

B4: Các bạn sẽ thấy xuất hiện mục SysReport ⇒ ACPI

Sau khi làm xong các bạn sẽ được như hình 

with hackintool

B1:  Các bạn mở hackintool mục utilities 

B2: Các bạn ấn  

B3: Chọn nơi lưu ( sau khi chọn xong sẽ được như hình )

B4: Mở folder chọn lưu ở bước 2 ra và copy file dsdt.aml ra nơi mà bạn muốn như của mình nó sẽ là ở desktop  

with patchmatic

B1: Tải patchmatic

B2: Nhập lệnh sau vào terminal 

cd + [ kéo folder muốn lưu ssdt vào ][kéo patchmatic vào ] -extract

Sau khi làm xong các bạn sẽ được như hình 

B3: Mở folder vừa chọn ở bước 2 sẽ được như hình 

with clover ( khuyến khích )

B1: Tải efi clover ở đây 

B2: Cho efi vừa tải vào usb hoặc 1 phân vùng trên ổ cứng ( được format  với chuẩn fat32 )

B3: Boot vào efi vừa tải 

B4: Ngay giao diện boot các bạn ấn f4 ( hoặc fn +f4 )

B5: Boot lại vào macos các bạn vào efi clover mục ACPI ⇒ origin 

B6: Các bạn sẽ được như hình 

Lưu ý: Ở macos mình đưa ra khá nhiều cách dump nhưng theo cảm nhận của mình thì  cách dump bằng clover là chuẩn và trực quan nhất 

Hệ điều hành linux

Cách 1 : with terminal

B1: Mở terminal ( nhấn alt + T )

B2: Gõ lệnh 

Cd + [ tên nơi các bạn muốn lưu file ]

sudo apt update

sudo apt install acpidump

sudo acpidump > acpidump.out

sudo acpixtract -a acpidump.out

B3: Sau khi nhập các lệnh trên thì terminal sẽ dump tất cả các file acpi ra ngoài nơi mà các bạn chỉ định ở đây các bạn sẽ tìm file dsdt và đổi tên file từ đuôi .dat ⇒ .aml

with ssdt-time

B1: Tải ssdt-time

B2: Chọn phím 4 

B3: ssdt sẽ được dump tự động vào mục Results

Lưu ý: Do ở đây mình mod giao diện giống mac 

Lưu ý 2: Mình khuyến khích các bạn dùng sysreport và tính năng dump của clover ( vậy khi nào thì dùng patchmatic ? Dùng patchmatic sẽ apply tất cả các hotpatch vào dsdt vì vậy sẽ mất đi bản chất gốc của dsdt nó sẽ sinh ra 1 số lỗi còn nếu các máy dùng patchmatic để dump dsdt mà không có error thì cứ dùng patchmatic để dump )

Biên dịch dsdt 

B1: Tải maciasl

B2: Chọn show package contents ⇒ contents  ⇒ macos  ( như hình )

B3: Copy file iasl62 vào thư mục lưu dsdt ( như của mình là extract )

B4: Copy đoạn code sau vào bộ nhớ tạm ( command +c )

External(MDBG, MethodObj, 1)

External(_GPE.MMTB, MethodObj, 0)

External(_SB.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)

External(_SB.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)

External(_SB.PCI0.LPCB.H_EC.ECMD, MethodObj, 1)

External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)

External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)

External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)

External(_GPE.VHOV, MethodObj, 3)

External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)

B5: Gõ lệnh sau và terminal ( sau khi làm xong sẽ được như hình )

cd + [ kéo folder lưu dsdt vào ]

pbpaste>refs.txt

B6: Gõ lệnh sau vào terminal 

cd + [ kéo file chứ dsdt vào ][ kéo file iasl62 vào ] -da -dl -fe refs.txt DSDT.aml SSDT*.aml

Lưu ý: Ở đây mình hướng dẫn biên dịch file dsdt với refs.txt sẽ giúp giảm các lỗi phổ biến . nếu bạn nào cảm thấy không thích refs.txt thì các bạn nhập code sau vào terminal 

[ kéo file iasl62 vào ] -da -dl *.aml

Lưu ý 2: Nếu các bạn cần biên dịch 1 file ssdt nào đó hoặc dsdt mà muốn dùng refs.txt thì dùng code trên sẽ ta sẽ bị lỗi vì code trên áp dụng khi bạn có 2 file dsdt và ssdt cần biên dịch nếu chỉ biên dịch 1 file ta nhập code sau ( ơ đây đang nói là dùng phương pháp refs.txt )

  • Ssdt : [ kéo file iasl62 vào ] -da -dl -fe refs.txt SSDT*.aml
  • Dsdt : [ kéo file iasl62 vào ] -da -dl -fe refs.txt DSDT.aml