# Fix Connector

**Patch Busid**

### **Patch thủ công**

{% hint style="info" %}
Dành cho các PC không thể vào đc macOS

> bị đen màn không cổng nào hoạt động.
> {% endhint %}

#### Lấy Busid

B1: Các bạn truy cập vào bài [Patch iGPU](https://basic.heavietnam.com/gpu/patch-igpu) để lấy code.

B2: Chọn `Spoiler` để lấy Busid.&#x20;

B3: Chọn phần có ID trùng với `appl-id` của bạn như id của mình là `0x01660003`.

B4: Chú ý như sau:

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

B5: Ta có các dòng ở vị trí thứ 1 sẽ tương ứng `con0` và tiếp tục như vậy&#x20;

#### Tiến hành

B1: Chỉnh về loại type mà các bạn muốn ta có như sau:&#x20;

```
  05       03 0000     02000000       30000000   
index  |   busid      | type     |     flag      |
```

{% hint style="info" %}
Ở đây ta sẽ chú ý đến `busid`, `type`.
{% endhint %}

B2: Chuyển type code của dòng code mà bạn lấy:&#x20;

```
 05  030000  02000000  30000000 ⇒ 05   030000 00080000  30000000
```

{% hint style="info" %}
Ở đây ta sẽ cần chuyển về port hdmi
{% endhint %}

```
<02 00 00 00>        LVDS và eDP       - Màn hình máy tính xách tay
<10 00 00 00>        VGA               - Không được hỗ trợ trong 10.8 và mới hơn
<00 04 00 00>        DisplayPort       - Cổng ra màn hình USB-C sử dụng DisplayPort
<01 00 00 00>        DUMMY             - Được sử dụng khi không có cổng vật lý
<00 08 00 00>        HDMI              - Giao diện đa phương tiện độ nét cao (High-Definition Multimedia Interface)
<80 00 00 00>        S-Video           - Video phân tách (Separated Video)
<04 00 00 00>        DVI (Dual Link)   - Giao diện trực quan số (Digital Visual Interface) liên kết kép
<00 02 00 00>        DVI (Single Link) - Giao diện trực quan số liên kết đơn
```

<details>

<summary>Chú thích</summary>

* **LVDS và eDP:** Các loại kết nối màn hình máy tính xách tay phổ biến.
* **VGA:** Cổng kết nối hiển thị cũ, không được hỗ trợ trong các phiên bản macOS mới (10.8 trở lên).
* **DisplayPort:** Cổng kết nối hiển thị kỹ thuật số hiện đại, thường được tích hợp trong cổng USB-C.
* **DUMMY:** Giá trị được sử dụng khi không có cổng kết nối vật lý nào được kết nối.
* **HDMI:** Cổng kết nối phổ biến cho TV và màn hình hiện đại, hỗ trợ cả âm thanh và video.
* **S-Video:** Cổng kết nối video cũ, chất lượng thấp hơn so với các cổng hiện đại.
* **DVI (Dual Link và Single Link):** Cổng kết nối hiển thị kỹ thuật số, hỗ trợ độ phân giải cao. Liên kết kép (Dual Link) hỗ trợ độ phân giải cao hơn liên kết đơn (Single Link).

</details>

B3: Thử các busid từ `01 ⇒ 06`

{% hint style="warning" %}
Chú ý rằng 1 số busid sẽ không khả dụng với các loại `connector type` nhất định&#x20;

> Xem bảng sau
> {% endhint %}

* HDMI
  * 0x1
  * 0x2
  * 0x4
  * 0x5
  * 0x6
* DP/Vga
  * 0x2
  * 0x4
  * 0x5
  * 0x6
* DIVI
  * 0x1
  * 0x2
  * 0x4
  * 0x6

{% hint style="info" %}
Chú ý rằng không được phép sử dụng 2 busid giống nhau trên 2 con khác nhau trong cùng 1 thời điểm.&#x20;

> Tức là các bạn có thể thử busid ở cả 3 con cùng lúc mình có để mẹo ở lưu ý bên dưới
> {% endhint %}

```
 05030000 00080000 30000000 ⇒  05xx0000 00080000 30000000
```

B4: Disable 2 port còn lại đi bằng cách thay busid của các port muốn disable thành `00` như ở đây của mình là:&#x20;

```
02050000 00040000 07040000 ⇒ 02**00**0000 00040000 07040000

03040000 00040000 81000000 ⇒ 03**00**0000 00040000 81000000

04060000 00040000 81000000 ⇒ 04**00**0000 00040000 81000000
```

Sau khi đổi ta được&#x20;

```
framebuffer-patch-enable | Data | 01000000

framebuffer-con0-enable  | Data | 01000000

framebuffer-con1-enable  | Data | 01000000

framebuffer-con2-enable  | Data | 01000000

framebuffer-con3-enable  | Data | 01000000

framebuffer-con0-alldata | Data | 05**01**0000 00080000 30000000

framebuffer-con1-alldata | Data | 02**00**0000 00080000 07040000

framebuffer-con2-alldata | Data | 03**00**0000 00080000 81000000

framebuffer-con3-alldata | Data | 04**00**0000 00080000 81000000
```

B5: Add các giá trị vào mục device properties ở dưới `device properties ==> PciRoot(0x0)/Pci(0x2,0x0)`&#x20;

> Đối với Clover
>
> Thì đường dẫn sẽ là `device ==> properties ==> PciRoot(0x0)/Pci(0x2,0x0)`

{% hint style="warning" %}
Lưu ý

Nếu vẫn chưa thành công sau khi đổi các busid cho port 1&#x20;

> Các bạn sẽ disable port 1 đi và enable port 2 sau đó đổi busid của port 2&#x20;
>
> > Thử từng busid 01 ⇒ 06 và cứ tiếp tục như vậy&#x20;
> > {% endhint %}

```
05010000 02000000 30000000

02020000 00040000 07040000

03030000 00040000 81000000

04040000 00040000 81000000
```

{% hint style="info" %}
Lưu ý 2:

Nếu cổng HDMI của bạn dính với Card rời mà không sử dụng được thì hãy `Injects NVCAP`&#x20;

> &#x20;Chỉ với những dGPU được support thôi nếu gặp lỗi thì mới patch và chỉ với Card Nvidia&#x20;

{% endhint %}

<details>

<summary>Các xác định hdmi nằm ở đâu</summary>

Ta sẽ tiến hành vào `device properties --> monitor --> properties --> location`

&#x20;![](/files/SdkySUdVTADk85BSGlEK)

</details>

{% hint style="warning" %}
Lưu ý:&#x20;

Nếu trong quá trình thử mà bạn đều bị treo táo thì hãy thử add arg sau vào `boot-arg` `igfxonln=1` và `igfxonlnfbs=MASK`&#x20;

> Hoặc add  patch sau vào device properties
>
> > `force-online|data|01000000`&#x20;
> >
> > `force-online-framebuffers |data|00000000 00000003`
> >
> > > Dưới pci-path của IGPU
> > > {% endhint %}

{% hint style="warning" %}
Lưu ý :&#x20;

Đối với các bạn khi xuất màn bằng HDMI khi Full tab ra bị tắt màn hình thì các bạn vào setting chỉnh như hình

![](/files/10stt1qyFjn2r3Ndj82J)
{% endhint %}

<details>

<summary>Mẹo đáng nhớ</summary>

Ở đây mình sẽ ko sử dụng method all data nữa&#x20;

Như đã biết ở trên ta có busid sẽ nhận từ `0x1-0x6`&#x20;

Mà trung bình frambuffer thường sẽ có `3 connector`&#x20;

Nên nếu làm theo cách thông thường ta phải thử 18 lần&#x20;

Nhưng ở đây ta có 1 thủ thuật là trong 1 lần ta sẽ thử cả 3 con

Tức là các busid sẽ như sau `123,234,345,456,562,611` Và các bạn cũng set type theo bảng trên nhé&#x20;

Chú ý:

`123,234,345,456,562,611`

Tức là `busid` từ `con 1` tới `con 3` theo thứ tự từ trái qua phải

Linh động thay đổi theo số lượng con của bạn

Và cuối cùng ta được như sau

![](/files/sSP8jicrpieOOCJ1BUc8)

</details>

### **Patch với Hackintool**

{% hint style="info" %}
Dành cho Laptop hoặc 1 số PC có thể kết nối với 1 cổng xuất màn hình.&#x20;
{% endhint %}

B1: Tải [hackintool](https://github.com/headkaze/Hackintool/releases).

B2: Các bạn chọn như hình:

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

> Chỗ này mình xin phép được lấy ảnh như này do ảnh cũ mình chụp đã bị mất sorry các bạn&#x20;

B3: Chỉnh platformid và Intel Gen&#x20;

> mình mặc định là các bạn đã patch iGPU trước đó&#x20;
>
> > &#x20;nếu bạn nào chưa patch thì xem [tại đây](https://basic.heavietnam.com/gpu/patch-igpu)

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

B4: Chuyển qua mục connect&#x20;

B5: Cắm các dây xuất màn hoạt động vào&#x20;

> Ở đây mình chỉ có 1 cổng internal là hoạt động&#x20;
>
> Thử từng dây nếu máy có 4 port xuất màn trong đó có 1 port HDMI thì các bạn cắm 3 port còn lại nếu nhận thì port ko tick đỏ chính là port HDMI

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

B6: Nhấn chuột phải vào mục busid của các port ko chuyển màu và thử từ 0x01 ⇒ 0x06 sau đó chỉnh type lại&#x20;

> Đổi từng port 1 không đổi cùng lúc nhiều port

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

B7: Chuyển tới tab `Patch ⇒ General ⇒ Patch ⇒ Advance` và chỉnh như hình.&#x20;

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

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

> Mục `spoof device id` các bạn có thể xem ở phần patch iGPU

<details>

<summary>Chú thích về các tuỳ chọn </summary>

#### 1. Cấu hình Memory & VRAM

* `DVMT pre-alloc 32 MB`: macOS thường yêu cầu BIOS phải cấp phát sẵn (pre-allocated) tối thiểu 64MB bộ nhớ cho iGPU. Nếu BIOS của bạn bị khóa cứng ở mức 32MB, patch này sẽ ép macOS chấp nhận mức 32MB đó để tránh lỗi kernel panic khi boot mà không cần phải can thiệp mod BIOS.
* `VRAM 2048 MB`: Ép hệ thống nhận diện và sử dụng mức VRAM là 2048 MB thay vì 1536 MB mặc định. Việc này giúp hiển thị thông số đẹp trong *About This Mac* và hỗ trợ một chút cho các app cần nhiều VRAM.

#### 2. Định danh & Cấu hình iGPU / dGPU

* `Disable eGPU`: Lệnh vô hiệu hóa dGPU (card đồ họa rời như NVIDIA hay AMD) không tương thích. macOS không hỗ trợ tính năng chuyển đổi card (Optimus) trên laptop, nên tùy chọn này giúp ngắt điện dGPU để máy chỉ chạy iGPU, giúp tiết kiệm pin và tránh xung đột.
* `Inject Fake IGPU`: Tiêm (inject) thông số giả mạo cho iGPU. Dùng khi máy bạn chạy một iGPU không được macOS hỗ trợ native; bản patch này sẽ đánh lừa hệ thống nạp driver cho một phần cứng tương tự có sẵn hỗ trợ.
* `Spoof Video Device ID`: Cụ thể hóa việc giả mạo phần cứng (spoof). Ví dụ: thiết lập `0x5912: Intel HD Graphics 630` sẽ ép macOS nhận diện iGPU của bạn là HD 630 chuẩn của kiến trúc Kaby Lake. Nhờ đó, macOS sẽ nạp đúng kext để kích hoạt QE/CI (tăng tốc đồ họa phần cứng).

#### 3. Cấu hình Connector & Audio

* `Use Intel HDMI`: Chuyển đổi định nghĩa connector xuất hình từ chuẩn DisplayPort (DP) sang HDMI. Tùy chọn này giúp máy xuất được hình ảnh và cả Audio over HDMI ra màn hình ngoài qua cổng vật lý HDMI.
* `DP -> HDMI`: Tương tự như Use Intel HDMI, đây là patch cưỡng ép chuyển đổi tín hiệu từ DP sang HDMI để fix tình trạng cắm cáp HDMI nhưng bị lỗi black screen (đen màn hình).
* `Enable HDMI20 (4K)`: Kích hoạt patch hỗ trợ xuất hình ra màn hình ngoài với độ phân giải 4K @ 60Hz thông qua cổng HDMI 2.0. Nếu thiếu patch này, màn hình 4K có thể bị giới hạn ở mức 30Hz hoặc không lên được đúng độ phân giải.
* `Spoof Audio Device ID`: Giả mạo Device ID của thiết bị âm thanh. Tùy chọn này thường kết hợp với kext AppleALC để macOS nhận diện đúng chuẩn codec audio và hỗ trợ truyền âm thanh qua cáp xuất hình.

#### 4. Các bản vá lỗi (Fixes) & Giới hạn (Limits)

* `Hotplug Reboot Fix`: Sửa lỗi hệ thống bị kernel panic (treo cứng hoặc reboot) khi thực hiện hotplug (cắm hoặc rút cáp màn hình ngoài lúc máy đang hoạt động).
* `HDMI Infinite Loop Fix`: Vá lỗi infinite loop (vòng lặp vô tận) khiến máy bị kẹt ở quá trình boot (treo logo Apple hoặc black screen) nếu bạn đang cắm sẵn cáp HDMI trước khi bật máy.
* `GfxYTile Fix`: Patch đồ họa đặc biệt quan trọng cho iGPU từ thế hệ Skylake trở lên. Nó fix triệt để các lỗi glitch/artifact (rác hình, xé hình) ở góc màn hình do sai lệch trong cách xử lý Y-Tile memory.
* `DPCD Max Link Rate (HBR2)`: Thiết lập mức băng thông truyền tải chuẩn cho eDP (màn hình tích hợp trên laptop). Rất quan trọng với màn hình độ phân giải cao hoặc 4K để fix lỗi black screen hoặc nhấp nháy màn hình liên tục sau khi boot.
* `Framebuffer Port Limit`: Giới hạn số lượng connector được khai báo trong framebuffer. Set đúng số cổng thực tế (ví dụ: `2`) giúp loại bỏ các cổng ảo, hạn chế lỗi black screen và giúp tính năng Sleep/Wake hoạt động ổn định.
* `USB Port Limit`: Tạo patch tạm thời gỡ bỏ giới hạn 15 port USB của macOS để máy nhận đủ tất cả các cổng cắm. *(Lưu ý: Chỉ nên dùng lúc mới cài đặt, sau đó bạn nên tạo kext USBMap để hệ thống ổn định lâu dài).*

</details>

B8: Chọn mục `Generate Patch`.&#x20;

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

B9: Chọn `file ⇒ export ⇒ bootloader config.plist`

B10: Mở cả 2 file là `config.plist` và file vừa tạo copy các mục trong Device Properties của file vừa tạo qua config sau đó Restart máy&#x20;

> Đối với Clover thì copy như hình

![](https://everythingforhackintosher.files.wordpress.com/2021/09/cleanshot-2021-09-11-at-11.22.51.png?w=1024)

{% hint style="warning" %}
Lưu ý : Khi patch bằng hackintool&#x20;

> Nếu các bạn chỉ muốn patch hdmi thôi thì nên disable các port chx patch và thử giống như  patch busid thủ công
>
> > Hoặc nếu bạn nào muốn dùng nhanh thì có thể dùng mẹo mà mình đã hướng dẫn ở trên

![](/files/sOqb9695ZZfl4qctrcHM)
{% endhint %}

{% hint style="warning" %}
Lưu ý:&#x20;

Đối với 1 số dòng main của pc thì đã có các patch sẵn các bạn chỉ cần add vào thôi&#x20;

* Vào tab `patch ⇒ system configs` trên menu bar
* Khi này các setting sẽ được tự động detec công việc còn lại chỉ là generate patch thôi&#x20;
  {% endhint %}

{% hint style="warning" %}
Lưu ý:

Đối với một số mini pc dù bạn có xuất hình qua displayport&#x20;

> Nếu đã patch busid full rồi và vẫn ko lên màn hình&#x20;

Trong trường hợp này bạn hãy thử set type port sang hdmi&#x20;

Bởi thông thường với mini pc mặc dù công vật lý là display port nhưng nó vẫn lấy busid qua hdmi&#x20;

![](/files/LUSOiKk7VrnSp7cttcvf)
{% endhint %}

### Enable lspcon driver support

{% hint style="info" %}
Gần đây các nhà sản xuất đã trang bị cổng hdmi 2.0 cho các thiết bị KBL hoặc CFL+&#x20;

Nhưng chip intel UHD không hỗ trợ cổng chuyển hdmi 2.0&#x20;

> Do đó các nhà sản xuất đã thêm một phần cứng được đặt tên là LSPCON ở trên mainboard để chuyển DP thành HDMI 2.0

Tiếp đó ta cần biết LSPCON có 2 chế độ chuyển đổi&#x20;

* LS&#x20;
  * Dp to hdmi 1.4
* PCON&#x20;
  * Dp to hdmi 2.0

Theo mặc định firmware thì LSPCON sẽ luôn chạy ở chế độ LS&#x20;

> Do đó nó sẽ dẫn đến lỗi màn hình đen khi các bạn xuất màn qua hdmi 2.0

Vậy những thiết bị nào cần patch LSPCON.&#x20;

> Như đã nói ở trên các thiết bị có hdmi 2.0 chạy trên uhd thì sẽ cần patch hdmi 2.0 thường sẽ là các dòng SKL, KBL, CFL+
> {% endhint %}

B1: Add `enable-lspcon-support|Data|01000000` vào`igpu properties`&#x20;

> Hoặc add arg `-igfxlspcon`

B2: Add `framebuffer-conX-has-lspcon|Data|01000000` thay thế `X` với con hdmi của các bạn&#x20;

* thử từng con 1 hoặc thử cùng lúc `3 con`
* Một tuỳ chọn thêm dành cho các bạn `framebuffer-conX-preferred-lspcon-mode`&#x20;
  * Để có thể tuỳ chỉnh đầu ra hdmi của các bạn với type là `DATA` và các giá trị&#x20;
    * `01000000`&#x20;
      * PCON, DP to HDMI 2.0
    * `00000000`&#x20;
      * LS, DP to HDMI 1.4
  * Mọi giá trị khác đều được coi là chế độ PCON&#x20;
  * Khi không add properties này thì chế độ PCON sẽ là chế độ được ưu tiên

## Patch NVCAP General

{% hint style="info" %}
Dành cho các dgpu hỗ trợ nhưng không xuất đc màn ngoài do injects thông tin chưa đúng
{% endhint %}

### Chuẩn bị

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

> Sau đó vào terminal gõ lệnh `path/to/gfxutil -f display` sau khi gõ lệnh sẽ được như hình&#x20;

<div data-full-width="true"><figure><img src="/files/Q0D3Hnz6bkjsq3UhF3o9" alt=""><figcaption></figcaption></figure></div>

> Các bạn chú ý đến dòng `PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0)`.

B3: Add dòng sau vào&#x20;

```
config.plist ⇒ root ⇒ device properties ⇒ add ⇒PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0) | dictionary 
```

B4: Tải file vbios phù hợp với cấu hình theo link sau [VGA Bios Collection | TechPowerUp](https://www.techpowerup.com/vgabios/).

B5: Tải [Node JS’s site](https://nodejs.org/en/).

### Xác định cấu trúc cần Patch

Các bạn xác định theo bản sau cần chú ý đến các mục như sau:&#x20;

| Thuộc tính (Property) | Giá trị (Value)                          | Chú thích (Comment)                                                     |
| --------------------- | ---------------------------------------- | ----------------------------------------------------------------------- |
| model                 | GeForce GT 220                           | Tên model GPU, thông tin hiển thị                                       |
| device\_type          | NVDA,Parent                              | Luôn được đặt là NVDA,Parent                                            |
| VRAM,totalsize        | 0000004000000000                         | Đặt kích thước VRAM                                                     |
| rom-revision          | Dortania                                 | Thuộc tính phải tồn tại, tuy nhiên giá trị có thể là bất kỳ giá trị nào |
| NVCAP                 | 0500000000000F00000000000000000F00000000 | Đặt thuộc tính hiển thị được macOS sử dụng, thêm thông tin bên dưới     |
| @0,compatible         | NVDA,NVMac                               | Luôn được đặt là NVDA,NVMac                                             |
| @0,device\_type       | display                                  | Luôn được đặt là display                                                |
| @0,name               | NVDA,Display-A                           | Luôn được đặt là NVDA,Display-A                                         |
| @1,compatible         | NVDA,NVMac                               | Luôn được đặt là NVDA,NVMac                                             |
| @1,device\_type       | display                                  | Luôn được đặt là display                                                |
| @1,name               | NVDA,Display-B                           | Luôn được đặt là NVDA,Display-B                                         |

### Tiến hành

B1: Xác định model phần này bạn sẽ chọn vualt là tên Card rời.&#x20;

B2: Xác định VRAM:&#x20;

* Chọn số vram bạn muốn set như ở đây mình muốn set là 1024 thì sẽ nhập như sau vào terminal&#x20;
  * `echo  '"số ram muốn set"  * 1024 * 1024' | bc`&#x20;
    * `echo '1024 * 1024 * 1024'| bc`&#x20;

<div data-full-width="true"><img src="https://lh3.googleusercontent.com/oRnvz0P63NvEUQxFngLxUhAeXoI9bRw-uHmz4pgvlU1atBV2dp352kdo66cY4T3EpwkuvZcgyDOA0x0d0MxhJdSn1Xevf8_5Ax5hyxEOsLDSMg-ir8e69Q3nVbYTLBD21bmbzYVo=s0" alt=""></div>

* `echo ‘obase=16; ibase=10; giá trị vừa có ở mục trên’ | bc`&#x20;

```
// Ví dụ
echo ‘obase=16; ibase=10; 1073741824’ | bc
```

<div data-full-width="true"><figure><img src="https://lh6.googleusercontent.com/XeCXFaVgs2UYyaVj0SV4JkPi7jPSGsOfWH3SrYA7bOT1hnl7u4-1vZGSim85SZMIKZiaO2pUb4zsyjSDjdVXkGgiGeBrj62XnXgxpTnbVbPVV9HF0ZiHptZp9CRjTLdQzZTZqdUV=s0" alt=""><figcaption></figcaption></figure></div>

<pre><code>//Các bạn tách thành các cặp như sau
40000000 ⇒ 40 00 00 00

//Đảo ngược thứ tự các cập 
40 00 00 00 ⇒ 00 00 00 40 

//Thế 8 số 00 vào cuối dãy dữ liệu 
00 00 00 40 ⇒ 00 00 00 40 00 00 00 00

<strong>//Cuối cùng kết nối các dữ liệu lại ta được 
</strong><strong>0000004000000000
</strong></code></pre>

B3: Patch rom-revision.

{% hint style="info" %}
Ở phần này rom-revision có thể là bất cứ giá trị nào&#x20;

Nhưng bắt buộc phải có&#x20;

Ví dụ mình sẽ lấy giá trị là king-dragon man thì nó sẽ có dạng:&#x20;

`Rom-revision | string | king-dragon man`
{% endhint %}

B4: Xác định NVCAP.&#x20;

* Các bạn nhập các dòng sau vào Terminal:

```
git clone https://github.com/1Revenger1/NVCAP-Calculator

cd NVCAP-Calculator

npm install

npm run run
```

<div data-full-width="true"><img src="https://lh3.googleusercontent.com/r6evqRixOO9zUGZ8tjIL-V_Win0bd_nktgEdToNSZmJ95lbK9xZE38H6o5mxa9VtEhz41CuyH0e9zNBjbIK6cXXXcLYbFoHhLKXaF8KUT2ZBoaPB-o2o0LbVRbiNrxGLQsJU85wY=s0" alt="Sau khi chạy"></div>

* Nhấn 1 và kéo VBIOS vào sau đó Enter
* Nhấn 3 sẽ được như hình

<div data-full-width="true"><img src="https://lh3.googleusercontent.com/o4afN88_OlTHaL-tuO0O8QOcSspPoFk3wSVCfc0IiSi1chqUWPORF8ak8YBweFA1cIYYsdu_ocLv9Y5XKZoOORmdwmu98VwLMfniE8qph3desR3ONwtpSMCKNcN2MpaOt4Y3weEa=s0" alt=""></div>

* Gắn display với heads bằng cách nhập số display trước heads sau&#x20;
  * ví dụ: 1 -1 sẽ được như hình

<div data-full-width="true"><img src="https://lh5.googleusercontent.com/n53-MkskCxE6o5nfBnwi2boP1DUKmjwQgceWKpxqTATVtfZBCQAYiIPxKdCNSyLhOTUkX35RFLmfX3rXS_jora7GairjQEO_yO1kx1QmHsxefP6e35PcxNSZaZ5rAvOTqPwCXjBm=s0" alt=""></div>

> Các bạn nhấn lại 1 lần nữa để huỷ bỏ liên kết vd 1 -1 sẽ được như hình.

<div data-full-width="true"><img src="https://lh3.googleusercontent.com/o4afN88_OlTHaL-tuO0O8QOcSspPoFk3wSVCfc0IiSi1chqUWPORF8ak8YBweFA1cIYYsdu_ocLv9Y5XKZoOORmdwmu98VwLMfniE8qph3desR3ONwtpSMCKNcN2MpaOt4Y3weEa=s0" alt=""></div>

* Tiếp các bạn đặt các giá trị NVCAP theo bảng sau:&#x20;

<table><thead><tr><th>Trường</th><th>Ý nghĩa</th><th width="226">Ví dụ</th><th>Lệnh</th></tr></thead><tbody><tr><td>Version</td><td>Phiên bản NVCAP</td><td>04 (dành cho dòng 7 series trở về trước), 05 (dành cho dòng 8 series trở về sau)</td><td>3 rồi 4</td></tr><tr><td>Composite</td><td>Loại tín hiệu</td><td>01 (dành cho S-Video), 00 (các trường hợp khác)</td><td>4 để chuyển đổi</td></tr><tr><td>Script based Power/Backlight</td><td>Kiểm soát nguồn/độ sáng bằng script</td><td>00 (chỉ hữu ích trên MacBook Pro chính hãng)</td><td>3 để chuyển đổi</td></tr><tr><td>Field F (Unknown)</td><td>Chưa rõ</td><td>0F (dành cho dòng 300 series trở về sau), 07 (các trường hợp khác)</td><td>6 rồi 0x0f</td></tr></tbody></table>

* Sau khi hoàn thành các bạn nhấn phím `C` sẽ được như hình

<div data-full-width="true"><img src="https://lh4.googleusercontent.com/O6pGEPXYcpnPOXZpmatAN9aOnOwlbXxIbcWA4DlCFV01hYkgzr0paCB7ZkhT04U2Xqhh2xqZM8dU2qwz61PFOqZlsqmd72yg8V787hB-UmNfj5Ch8rHF8W_UjaepVsxYuil1wuEP=s0" alt=""></div>

* Tại đây ta sẽ được giá trị NVCAP
  * `NVCAP: 05000000 00000300 0c000000 0000000f 00000000`

{% hint style="warning" %}
Lưu ý:&#x20;

Mỗi heads chỉ có thể xuất ra 1 màn hình 1 lúc nên  bạn phải cẩn thận khi chọn heads&#x20;

> Ví dụ:
>
> Bạn có 2 cổng HDMI muốn xuất ra 2 màn hình&#x20;
>
> Lúc này bạn phải để 2 display kết nối với 2 hex khác nhau.
> {% endhint %}

B4: Sau khi làm xong các bước trên các bạn sẽ được như sau:

```
PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0)

model          | String | GeForce GT 220
device_type    | String | NVDA,Parent
VRAM,totalsize |  Data  | 0000004000000000
rom-revision   | String | Dortania
NVCAP          |  Data  | 05000000 00000300 0c000000 0000000f 00000000
@0,compatible  | String | NVDA,NVMac
@0,device_type | String | display
@0,name        | String | NVDA,Display-A
@1,compatible  | String | NVDA,NVMac
@1,device_type | String | display
@1,name        | String | NVDA,Display-B
```

B5: Add các giá trị sau vào mục `Config.plist ⇒ Root ⇒ DeviceProperties ⇒ Add ⇒` dòng vừa add ở bước chuẩn bị&#x20;

<div data-full-width="true"><img src="https://lh6.googleusercontent.com/-2YX_JkvArxiF5nJG1CfXlWPFg5ridVTg9vEvJD_WIOeyEREfEEaqvHgRUycgLMt4Ra9CUiPp8i9rMutYNsFE2688O6C-tLpNcRCzL9j-9tM9kbJu-if3Ii08Xu96bWAv-Y9H7EL=s0" alt="Sau khi hoàn thành"></div>

{% hint style="warning" %}
Lưu ý:&#x20;

Nếu các bạn dùng cáp chuyển thì set type theo đầu cắm vào Main của máy&#x20;

> VD `HDMI to DP` set type là `HDMI`.
> {% endhint %}

## Clover-NVCAP

Đối với Clover các bạn chỉ cần bật mục `injects nvidia` lên là được.

![](https://everythingforhackintosher.files.wordpress.com/2021/09/cleanshot-2021-09-11-at-11.24.50.png?w=1024)

{% hint style="info" %}
Tuy nhiên:

Vẫn có 1 số trường hợp khi bật lên rồi&#x20;

> Nhưng vẫn gặp lỗi thì các bạn tính toán NVCAP&#x20;
>
> > Giống như OpenCore sau đó bỏ vào mục NVCAP
> > {% endhint %}

![](https://everythingforhackintosher.files.wordpress.com/2021/09/cleanshot-2021-09-11-at-11.26.10.png?w=1024)

{% hint style="warning" %}
Source tham khảo:      &#x20;

* <https://www.tonymacx86.com/threads/guide-general-framebuffer-patching-guide-hdmi-black-screen-problem.269149/>
* [**Legacy Nvidia Patching | OpenCore Post-Install (dortania.github.io)**](https://dortania.github.io/OpenCore-Post-Install/gpu-patching/nvidia-patching/)
  {% endhint %}


---

# 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/connector/fix-connector.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.
