DSDT, SSDT: Những kiến thức cơ bản | Lập Trình TV

ICTSharing

DSDT, SSDT là gì?

DSDT, SSDT là các bảng giao thức điều khiển thiết bị, được lưu trong BIOS/UEFI của máy. DSDT, SSDT mô tả các thiết bị có trong máy, và cung cấp các hàm vận hành thiết bị. Các thiết bị, hàm này sẽ được sử dụng bởi driver trong các hệ điều hành như Windows, OS X, Linux để điều khiển thiết bị. Nếu không có các bảng này, hệ điều hành sẽ không thể vận hành được.

Mặc định các bootloader sẽ tự lấy đầy đủ các bảng này từ hệ thống, và truyền vào hệ điều hành khi khởi động.


DSDT và SSDT về cơ bản là hoàn toàn giống nhau về mặt cấu trúc, nhưng DSDT được xem là bản chính, còn SSDT là các bản phụ. DSDT chứa phần lớn các thiết bị trên mainboard như chip âm thanh, đồ họa onboard, cổng USB,... SSDT chứa các thiết bị thường thay đổi như CPU, đồ họa rời, thâm chí đồ họa onboard trên các dòng Haswell.

Tại sao phải patch DSDT, SSDT trên Hackintosh?

Không như Windows hay Linux (hỗ trợ đa nền tảng phần cứng), OS X chỉ hỗ trợ các phần cứng do Apple quy định. Các thiết bị, hàm vận hành trong DSDT trên máy Mac được tối ưu hóa cho hệ điều hành, với những quy định chặt chẽ. Trên hệ thống Hackintosh, một số thiết bị như card đồ họa, âm thanh, pin không hoạt động, vì bảng DSDT trên máy không tuân theo chuẩn của OS X.

[​IMG]

Bằng việc trích xuất DSDT, SSDT từ máy tính và chỉnh sửa lại theo chuẩn OS X, bạn có thể giúp Hackintosh hoạt động ổn định và đầy đủ như một máy Mac thật.

Tất cả các bootloader đều cho phép thay bảng DSDT và SSDT trong máy bằng các file dsdt.aml và ssdt.aml do người dùng tạo.

[​IMG]

Trích xuất DSDT, SSDT gốc (AML) từ hệ thống

Việc đầu tiên trước khi sửa dsdt, ssdt là bạn phải lấy được file dsdt, ssdt gốc dưới định dạng AML (ACPI Machine Language). Có những cách sau để làm việc này:

Windows:
Chạy chương trình RW-Everything, vào menu Access > ACPI Tables, chọn thẻ DSDT, Save as binary, chọn All file (*.*) trong phần Save as type và thêm đuôi .aml vào tên file.
Lặp lại cho các bảng SSDT khác.
[​IMG]

Linux:
Chạy từng lệnh sau:
Code:
cd ~/Desktop
sudo apt-get update
sudo apt-get install acpidump
sudo acpidump > acpidump.out
sudo acpixtract -a acpidump.out
Linux sẽ dump tất cả các bảng ACPI trong máy lên Desktop. Bạn chỉ cần để ý các file DSDT và SSDT, đổi đuôi .dat thành .aml và chép vào USB để lưu trữ.

OS X (Clover bootloader):
Ở màn hình Clover, ấn phím F4, sau đó boot vào Mac, tất cả các bảng sẽ được dump vào /EFI/Clover/ACPI/origin/

Biên dịch ngược DSDT, SSDT gốc (AML)

Các bảng DSDT, SSDT gốc trong máy có định dạng nhị phân AML, không thể sửa trực tiếp mà cần phải biên dịch ngược lại thành file text có đuôi dsl. Do các bảng DSDT, SSDT có liên kết chồng chéo lẫn nhau nên bạn cần có tất cả các file DSDT, SSDT để hỗ trợ khi biên dịch ngược.

Tải iasl (trình biên dịch, giải mã AML của Intel) mới nhất, giải nén và chép file iasl vào desktop, chép các file DSDT, SSDT gốc với tên file *.aml ở trên vào desktop.
Chạy terminal với lệnh sau:
Code:
cd ~/Desktop
./iasl -e *.aml -d *.aml
Tất cả các file DSDT, SSDT sẽ được biên dịch ngược thành các file *.dsl.

Thêm DSDT, SSDT (AML) đã chỉnh sửa vào bootloader.

Sau khi đã sửa và biên dịch từ file *.dsl thành *.aml, bạn có thể đưa vào bootloader bằng cách đặt đúng vào các thư mục sau:

Chameleon: /Extra/
Clover: /EFI/CLOVER/ACPI/patched/

Lưu ý: nếu có nhiều file SSDT.aml thì đặt theo tên sau: SSDT.aml, SSDT-1.aml, SSDT-2.aml,...

Bootloader sẽ tự loại bỏ (drop) DSDT gốc của hệ thống và nạp file DSDT.aml khi khởi động. Đối với các file SSDT thì hệ thống sẽ thêm các file SSDT.aml vào sau các bảng SSDT gốc của hệ thống. Nếu bạn muốn bỏ các bảng SSDT gốc này thì chọn DropSSDT=True đối với Chameleon, hoặc Drop OEM SSDT=True đối với Clover.

Tác giả: pokenguyen

Lưu ý:Bài viết này không phải do ICTSharing tự viết, mà được sưu tầm từ các trang như Tinh tế, VN-Zoom, macosx86, tonymacx86,... Việc tổng hợp bài viết không nhằm mục đích quảng bá hay mang lại lợi ích cá nhân riêng cho ICTSharing, chỉ đơn giản vì ICTSharing sắp tới sẽ có chuyên mục về lập trình iOS, trong khi phần lớn các bạn ở VN lại không có máy tính MAC nên việc học sẽ gặp rất nhiều khó khăn, trở ngại. Chính vì thế chúng tôi muốn tổng hợp các bài viết về đây để khi các bạn cần có thể nhanh chóng tìm kiếm và áp dụng. Chúng tôi xin gửi lời cảm ơn chân thành đến các tác giả của các bài viết, các anh em trên cộng đồng ICT Việt Nam đã viết hoặc dịch các bài viết hữu ích vì cộng đồng.

«
Bài sau
Newer Post
»
Bài trước
Older Post

Bình luận

No comments :