Aug 9, 2017

Phần 2: Hackintosh hình dung trước rồi hãy bước.

August 09, 2017 Posted by Tô Hùng Dương
DSDT & SSDT là trò chơi xếp hình.

Để bắt đầu bước chân vào thế giới hackintosh bạn hãy tìm hiểu về việc làm sao để phần mềm có thể điều khiển được phần cứng. Bạn hãy hình dung được cơ chế hoạt động của nó trước và sẽ tìm cách hiểu về nó bằng thực hành.
Trước khi bắt đầu, hãy chắc chắn rằng bạn đã đọc Phần 1: Cách Hackintosh của newbie hầu hết đều sai.

DSDT là gì vậy ?

Trong phần cứng máy tính, Motherboard (hay còn gọi là Mainboard) là thiết bị giữ chức năng gắn kết tất cả các thành phần phần cứng. Khi làm việc với hệ điều hành, DSDT chính là cuốn hướng dẫn sử dụng của Motherboard.
DSDT & SSDT giống như sách hướng dẫn sử dụng.
DSDT viết tắt của : Differentiated System Description Table.
DSDT là một bản ghi được lập trình bằng ACPI (Advanced Configuration and Power Interface)
DSDT chứa các giao thức giúp cho hệ điều hành có thể nhận điện, điều khiển, kiểm tra và giám sát trạng thái các thành phần phần cứng .  

In a computer, the Advanced Configuration and Power Interface (ACPI) provides an open standard that operating systems can use to discover and configure computer hardware components, to perform power management by (for example) putting unused components to sleep, and to perform status monitoring.
wiki

DSDT là bộ mặt (theo nghĩa phần mềm) của Motherboard.
Mỗi model Motherboard sẽ có một DSDT riêng. 
Ngược lại nếu DSDT tương tự nhau có nghĩa là sẽ có các thành phần phần cứng giống hoặc tương tự nhau.

Nhấn mạnh rằng RealMac cũng có DSDT như bao hệ thống Máy tính mà bạn đang dùng để chạy Windows hàng ngày vậy.

Còn SSDT thì sao ?

SSDT là bảng phụ của DSDT, nó sẽ được gộp vào DSDT khi nạp vào hệ điều hành.  

SSDT viết tắt của Secondary System Description Table.
SSDT cũng có các tính chất của DSDT.
SSDT khác DSDT ở chỗ là nó không dành cho tổng thể Motherboard, nó chứa đựng giao thức về thành phần phần cứng cụ thể trên motherboard.

SSDT thường chứa các giao thức về CPU, GPU, port USB, hệ thống cảm biến, SATA...

Nguyên nhân sinh ra SSDT ?

Để dễ dàng tái sử dụng code ACPI khi sản xuất hàng loạt model Motherboard có cùng kiến trúc phần cứng. Cụ thể như sau:

Danh sách các dòng Motherboard dùng chipset 200 series của MSI 
Về phần cứng mỗi dòng MotherBoard trên đều có sự giống nhau về chipset (dòng Z270 sẽ dùng chipset Z270, dòng H270 sẽ dùng chipset H270... tương tự các dòng khác).
Chẳng hạn nếu cùng một phân khúc, các dòng main này khác nhau 10%  thì có thể tái sử dụng DSDT cho 90%  giống nhau, sự khác nhau còn lại dành  cho SSDT.
Giống như chơi xếp hình, bạn muốn lấy miếng lego màu đỏ cho dòng Motherboad M7 và màu xanh cho M5. Chỉ cần lấy DSDT chung, rồi Motherboard nào thì nạp SSDT theo thành phần của Motherboard đó.

Làm sao để trích suất DSDT & SSDT ?

Hackintosh thì dùng Clover Bootloader, vậy hãy trích suất DSDT & SSDT bằng Clover là chuẩn nhất.

Chuẩn bị 1 USB có dung lượng 128MegaByte trở lên.
Format USB với định dạng FAT32.

Bước 1: Tải về Package.
Bước 2: Giải nén thu được thư mục EFI
Bước 3: Copy thư mục EFI vào USB.
Bước 4: Khởi động lại, vào menuboot lúc khởi động chọn USB UEFI
Bước 5: Clover hiện lên, ấn F2 chờ 20s, ấn tiếp F4 chờ 20s, ấn tiếp F6 chờ 20s
Bước 6: Ấn nút nguồn để tắt máy, rút usb khi tắt máy xong.
Bước 7: Lúc này DSDT & SSDT gốc của máy bạn đang nằm ở USB/EFI/Clover/ACPI/Origin.

* Chú ý
+ trong BIOS phải disable Secureboot.
Một số máy nhất là acer yêu cầu phải tạo pass admin trong BIOS mới cho disable Secureboot.
+ trong BIOS phải enable UEFI.
Với desktop thì trong bios chỉnh lại chọn boot với OtherOS.
Với laptop thì nên để chế độ boot UEFI và enable CSM.

Khi đã có được DSDT & SSDT gốc rồi, tới Phần 3, mình sẽ nói về cách chế biến DSDT & SSDT theo cách dễ nhất.

Mời các bạn đón đọc.

Phần 3: Hackintosh patch dsdt một khái niệm đễ hiểu "nhầm"
Mọi thảo luận, giải đáp thắc mắc đều có tại Group Hội Dev thích Moè : https://www.facebook.com/groups/DevThichMoe