# Sửa đồng hồ hệ thống không tương tích: Cách làm thủ công

# Xác định loại SSDT bạn cần

  • Lưu ý: Với máy X99 và X299, bạn coi tại đây

Việc xác định xem bạn cần bản SSDT nào thực ra khá dễ dàng. Đầu tiên, hãy mở tệp DSDT mà bạn có được từ bước Trích lục bản sao DSDTđã được biên dịch ngược bằng MaciASL (nếu bạn sử dụng macOS) hoặc bất kỳ trình soạn thảo văn bản nào nếu bạn đang có Windows hoặc Linux (VSCode có cái phần mở rộng hỗ trợ ACPI (opens new window) khá là xịn đó).

Tiếp theo, hãy tìm kiếm từ khóa ACPI000E. Bạn sẽ thấy kết quả tương tự như sau:

Kết quả trên sẽ tiết lộ cho chúng ta một vài điều:

  • Sự thật là máy bạn có đồng hồ AWAC
    • Nếu tìm không ra từ khóa này, bạn không cần làm gì cho AWAC hay RTC (Real-Time Clock - Đồng hồ thời gian thực) hết, nha. Chúc mừng bạn đã "trúng số"!
  • Nó có thể dễ dàng vô hiệu hóa thông qua biến STAS(Nếu không được, bạn có thể nhảy cóc sang phần này Phương pháp RTC0)
    • Hàm _STA chính là trạng thái thiết bị, với giá trị Zero nghĩa là nó sẽ không xuất hiện trong hệ thống.

Nhưng để chắc cú hơn, tiếp theo hãy tìm kiếm từ khóa PNP0B00:

Nhìn kìa, chúng ta thực sự có thể tắt AWAC và kích hoạt RTC! Nếu không thấy, bạn hãy nhảy sang phần: Phương pháp RTC0

Bây giờ mọi chuyện đơn giản là tải tệp SSDT-AWAC.dsl (opens new window) về và biên dịch nó thôi, không cần chỉnh sửa gì thêm. Bạn cũng có thể dùng tệp SSDT đã được biên dịch sẵn dưới đây để có kết quả tương đương:

# Phương pháp RTC0

Phương pháp này dành cho những bạn không tìm thấy thiết bị PNP0B00 để kích hoạt lại, hoặc không có cách nào dễ dàng (thông qua biến STAS) để tắt AWAC.

# Tìm đường dẫn ACPI

Giả sử bạn đã mở sẵn tệp DSDT hồi nãy, bạn tìm kiếm tiếp các thông tin sau:

  • Tìm đường dẫn LowPinCount:
    • Tìm với từ khóa Name (_ADR, 0x001F0000)
  • Tìm đường dẫn PCI:
    • Tìm với từ khóa PNP0A08 (Nếu xuất hiện nhiều kết quả, bạn chọn kết quả đầu tiên)

Bạn sẽ thấy thông tin hiện ra tương tự như sau:

Đường dẫn LPC Đuờng dẫn PCI

Dựa vào hình trên, chúng ta có thể thấy máy có cả PCI0LPC. Giờ thì sang bước tiếp theo thôi!

# Chỉnh sửa tệp SSDT mẫu

Giờ khi đã có đường dẫn ACPI, hãy tải tệp SSDT tương ứng về và bắt đầu mổ xẻ:

Theo mặc định, tệp này sử dụng đường dẫn là PCI0.LPCB. Bạn cần đổi tên nó cho khớp với máy mình. Nếu máy bạn cùng đường dẫn với tệp mẫu thì bạn có thể biên dịch rồi.

Theo ví dụ ở trên, chúng ta sẽ đổi nó thành PCI0.LPC:

Trước khi sửa:

External (_SB_.PCI0.LPCB, DeviceObj) <- Đổi tên chỗ này

Scope (_SB.PCI0.LPCB) <- Đổi tên chỗ này

Sau khi thay đổi theo đường dẫn ví dụ mà chúng ta tìm được, tệp SSDT của bạn sẽ trông như thế này:

Sau khi sửa:

External (_SB_.PCI0.LPC, DeviceObj) <- Sau khi đổi tên

Scope (_SB.PCI0.LPC) <- Sau khi đổi tên

# Biên dịch SSDT

Sau khi chỉnh sửa xong mã nguồn, bạn đã sẵn sàng để biên dịch SSDT!

# Gần về tới đích rồi

Khi bạn đã tạo xong SSDT của mình, bạn có thể chuyển sang trang tiếp theo để tạo nốt mấy cái SSDT còn lại hoặc truy cập vào đây nếu bạn đã hoàn tất công việc: