# Disable unsupport PCIe

{% hint style="info" %}
Nếu bạn có các device PCIe unsupport thì nên disbale đi.

> Đối với một số PCIe không support mà không bị disbale thì có thể sẽ dẫn đến một số lỗi không mong muốn
> {% endhint %}

## Xác định PCIe path

### ACPI path

{% hint style="info" %}
Xem chi tiết [tại đây](https://install.heavietnam.com/general/cach-xac-dinh-phan-cung)
{% endhint %}

### Device path

#### Dùng Device manager

{% hint style="info" %}
Xem chi tiết [tại đây](https://install.heavietnam.com/general/cach-xac-dinh-phan-cung)
{% endhint %}

#### Dùng hackintool

B1: Tải [hackintool](https://github.com/benbaker76/Hackintool/releases)&#x20;

B2: Truy cập vào tab `PCIe`&#x20;

B3: Chú ý vào mục `Device Name` và `Class` để xác định thiết bị `PCIe` cần disable&#x20;

<figure><img src="/files/rbsZMvnJU90VvWC1BRHz" alt=""><figcaption></figcaption></figure>

B4: Chuột phải vào dòng hiện thị thông tin của thiết bị PCIe cần disable và chọn `Copy Device path`

> Như vậy là done bạn đã xác định đước device path của mình rồi

#### Dùng gfxutil

B1: Tải [gfxutil](https://github.com/acidanthera/gfxutil/releases)

B2: Kéo nó vào `terminal` rồi enter

B3: Tìm thiết bị PCIe cần disable trong các list device vừa hiện ra&#x20;

B4: Copy device path đi là được

## Tiến hành

{% hint style="warning" %}
Chú ý ở đây mình đưa ra nhiều phương pháp bạn có thể thử từng cái

Nhưng hãy nhớ chỉ được làm từng cái 1 không làm cùng lúc
{% endhint %}

### Dùng Method \_STA

{% hint style="info" %}
Giải thích 1 chút về cách này

* Method \_STA là method thể hiện trang thái của devices&#x20;
  * `_STA` là viết tắt của `STATUS`
* &#x20;Nên nguyên lý hoạt động của nó chính là thay đổi trạng thái hoạt động của devices về disable thôi
  {% endhint %}

{% hint style="info" %}
Xem chi tiết [tại đây](/acpi-advance/use-method-_sta.md)
{% endhint %}

### Dùng Device properties

{% hint style="info" %}
Giải thích 1 chút về cách này

* Đầu tiên bạn phải biết Device properties là phần dùng để inject thông tin của devices
* Nên cách này sẽ inject một thông tin dummy vào devices dẫn đến việc nó bị disable
  {% endhint %}

B1: Mở file `config.plist`  bằng [propertree](https://github.com/corpnewt/ProperTree)

B2: Tìm đến phần `DeviceProperties --> Add` rồi ấn `Control +`

> Nếu là Mac thì `Command +`

<figure><img src="/files/zDQfKAUtR4eDAlDcC1jp" alt=""><figcaption></figcaption></figure>

B3: Thay thế theo bảng sau

<table><thead><tr><th width="452">Key</th><th>Type</th></tr></thead><tbody><tr><td>Đường dẫn <code>Deivce path</code> đã xác định ở trên</td><td>Dictionary</td></tr></tbody></table>

B4: Chọn vào dòng vừa add rồi nhấn 2 lần `Control +`

> Hoặc sẽ là 2 lần `Command +` nếu như ở Mac&#x20;

<figure><img src="/files/RogRDJX8QhskV9xGKPuY" alt=""><figcaption></figcaption></figure>

B5: Chỉnh sửa các giá trị theo bảng sau

<table><thead><tr><th width="379.3333333333333">Key</th><th>Type</th><th>Vaule</th></tr></thead><tbody><tr><td><code>class-code</code></td><td>Data</td><td><code>FFFFFFFF</code></td></tr><tr><td><code>vendor-id</code></td><td>Data</td><td><code>12340000</code></td></tr></tbody></table>

<figure><img src="/files/6Aaj7dz0DqzeYecnC4jU" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Như vậy là xong rồi bạn nhé
{% endhint %}

### Dùng SSDT-DPCIe

{% hint style="info" %}
Khi làm theo những cách trên thì bạn sẽ còn tìm thấy những devices pcie đó trong hackintool&#x20;

Nhưng với cách này bạn sẽ không còn nhìn thấy nó trong hackintool nữa
{% endhint %}

{% hint style="warning" %}
1 số lưu ý

* Phương pháp này chỉ dùng cho child Pcie devices mà thôi&#x20;
* Đồng thời child devices cần có `Subdevice address`là`Name (_ADR, Zero)`

![](/files/gxIM5ssYYyPU3CUc2dWX)

* Tiếp theo device mẹ có các biến xác định thông tin của child device được định nghĩa bằng dòng  `PCI_Config` hoặc `SystemMemory`&#x20;

  * Giải thích thêm một chút đây là nơi bit `D4` dữ liệu của `offset 0x55`&#x20;

    * Đây là offset thể hiện thộc tính hoạt động của thiết bị

    ![](/files/KmBn1WBOvJITrkOqcl2F)

> Phần này chủ yếu cho biết vì mọi devices hiển thị trong hackintool đều dùng được cách này
> {% endhint %}

{% hint style="info" %}
Nguyên lý hoạt động

> Vấn như những cách trước nó vẫn chỉ là inject 1 cái thuộc tính dummy vào device làm cho mac không nhận&#x20;

> Để tìm hiểu rõ nguyên lý hoạt động ta sẽ cần phải biết các child device thường ở trên những dòng máy mới sẽ có name là `PXSX` và device mẹ của chính sẽ có name là  `RP01, RP02, RP03,...`&#x20;

Như đã nói ở trên các child devices sẽ được inject thông tin trong device mẹ bởi các biến inject thông tin được định nghĩa có chứa dòng `PCI_Config` hoặc `SystemMemory`&#x20;

Và ở đây SSDT này sẽ tạo thêm 1 biến inject thông tin như vậy ở trong device mẹ&#x20;

Đương nhiên thông tin đó là dummy điều này sẽ dẫn đến thông tin bị sai và cũng chính là nguyên nhân dẫn đến sự biến mất của child device đó trong hackintool.&#x20;

Đồng thời nó sẽ kết hợp với `method _STA` giúp disable device này.
{% endhint %}

{% hint style="danger" %}
Với nguyên lý hoạt động đó nếu 2 child devices bạn muốn disable đi đều nằm trong 1 devices mẹ thì khi dùng SSDT này bạn sẽ disable cùng lúc cả 2 child devices này
{% endhint %}

B1: Tải file [SSDT-DPCIe](https://www.mediafire.com/file/28putgts8xig6yw/SSDT-DPCIE.dsl/file) về&#x20;

B2: Thay thế `ACPI-Path` mặc định thành `ACPI-Path` đã xác định ở trên

> Ví dụ ACPI path của mình xác định được là `_SB.PCI0.RP17`
>
> Thì mình sẽ thay `_SB.PCI0.RP01` thành `_SB.PCI0.RP17`

<figure><img src="/files/2XMKckQTFp0Du92QOJXE" alt=""><figcaption><p>Before</p></figcaption></figure>

<figure><img src="/files/R1u5Y00IqUho8ujVgvYS" alt=""><figcaption><p>After</p></figcaption></figure>

B3: Complie SSDT và save lại dưới dạng `.aml`

> Nếu như bạn không biết làm bước này vui lòng tham khảo [tại đây](/acpi-advance/patch-dsdt-phan-1.md)

B4: Bỏ file SSDT vừa complie vào `EFI --> OC --> ACPI` và tiến hành oc snapshot

> Nếu như bạn không biết OC\_Snapshot thì tham khảo [tại đây](https://install.heavietnam.com/general/tim-hieu-chi-tiet-ve-config.plist)
>
> > Nếu như là Clover thì chỉ việc cho vào `EFI --> Clover --> ACPI --> Patched` mà không cần OC\_Snapshot

B5: Reboot và tận hưởng thành quả thôi

{% hint style="info" %}
Nếu như bạn thêm SSDT này vào mà bị inject ACPI sang windows thì bạn có thể dùng EFI NO ACPI

> Thường là lỗi màn hình xanh
>
> Tham khảo chi tiết [tại đây](/general/efi-opencore-no-acpi.md)
> {% endhint %}

> Source tham khảo của cách này là <https://github.com/5T33Z0/OC-Little-Translated/tree/main/02_Disabling_Devices/Disabling_PCI_Devices/ACPI> | [https://github.com/daliansky/OC-little/tree/master/](https://github.com/daliansky/OC-little/tree/master/16-%E7%A6%81%E6%AD%A2PCI%E8%AE%BE%E5%A4%87%E5%8F%8A%E8%AE%BE%E7%BD%AEASPM%E5%B7%A5%E4%BD%9C%E6%A8%A1%E5%BC%8F/16-1-%E7%A6%81%E6%AD%A2PCI%E8%AE%BE%E5%A4%87)

<details>

<summary>Đối với IGPU</summary>

Bạn có thể làm theo cách trên

Hoặc chỉ đơn giản là thêm boot-arg `-wegnoigpu`

Hay disable nó ở trong bios. Nó có thể là một trong số những option sau. Hoặc là một option nào đó tương tự trong bios

* `Initial Display Output`
* `Primary Display`
* `Primary Graphics Adapter`&#x20;
* `ntegrated Grahics Adapter`

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://advance.heavietnam.com/general/disable-unsupport-pcie.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
