Danh mục
Patch Busid
Cách 1: Patch thủ công
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).
- Lấy Busid:
B1: Các bạn truy cập vào bài Patch iGPU để lấy code.
B2: Chọn Spoiler để lấy Busid.
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:
B5: Ta có các dòng ở vị trí t1 sẽ tương ứng con0 và tiếp tục như vậy
- Tiến hành:
B1: Chỉnh về loại type mà các bạn muốn ta có như sau:
05 03 0000 02000000 30000000
index | busid | type | flag |
Ở đây ta sẽ chú ý đến busid, type.
B2: Chuyển type code của dòng code mà bạn lấy:
05030000 02000000 30000000 ⇒ 05030000 00080000 30000000
(ở đây mình chuyển về port hdmi)
B3: Thử từng busid từ 01 ⇒ 06
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à:
02050000 00040000 07040000 ⇒ 02000000 00040000 07040000
03040000 00040000 81000000 ⇒ 03000000 00040000 81000000
04060000 00040000 81000000 ⇒ 04000000 00040000 81000000
Sau khi đổi ta được
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 | 05010000 00080000 30000000
framebuffer-con1-alldata | Data | 02000000 00080000 07040000
framebuffer-con2-alldata | Data | 03000000 00080000 81000000
framebuffer-con3-alldata | Data | 04000000 00080000 81000000
B5: Add các giá trị vào mục device properties ở dưới mục patch igpu (tức là device properties ==> PciRoot(0x0)/Pci(0x2,0x0) đối với oc còn với clover các bạn add vào mục device ==> properties ==> PciRoot(0x0)/Pci(0x2,0x0))
Lưu ý: N ếu vẫn chưa thành công sau khi đổi các busid cho port 1 thì các bạn sẽ disable port 1 đi và enable port 2 sau đó đổi busid của port 2 thử từng busid 01 ⇒ 06 và cứ tiếp tục như vậy
05010000 02000000 30000000
02020000 00040000 07040000
03030000 00040000 81000000
04040000 00040000 81000000
V.v………………………………..
Lưu ý 2: Nếu cổng HDMI của bạn dính với Card rời thì hãy Injects NVCAP ( 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 )
Lưu ý 3: Nếu trong quá trình thử mà bạn đều bị treo táo thì hãy thử add code sau vào boot-arg “igfxonln=1” hoặc add đoạn patch sau:
force-online|data|01000000 vào dưới dòng patch HDMI của bạn
Lưu ý 4: Đối với các bạn khi xuất màn bằng HDMI mà khi Full tab ra bị tắt màn hình thì các bạn vào setting chỉnh như hình:
Lưu ý 5: Ta có 1 mẹo nhỏ như sau ở đây mình sẽ ko sử dụng method all data nữa như đã biết ở trên ta có busid sẽ nhận từ 1-6 mà trung bình frambuffer thường sẽ có 3 connector nên nếu là theo cách thông thường ta phải thử 18 lần nhưng ở đây ta có 1 thủ thuật là trong 1 lần ta sẽ thử cả 3 con ta có là 123,234,345,456,562,611 Và các bạn cũng set type theo bảng trên nhé (hdmi=00080000).
Ta có như sau:

Cách 2: Patch với Hackintool
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.
B1: Tải hackintool.
B2: Các bạn chọn như hình:
⇒
B3: Chỉnh platformid và Intel Gen (mình mặc định là các bạn đã patch iGPU trước đó | nếu bạn nào chưa patch thì xem lại mục XIII).
B4: Chuyển qua mục connect
B5: Cắm các dây xuất màn hoạt động vào (ở đây mình chỉ có 1 cổng internal là hoạt động | 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)
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 (đổi từng port 1 không đổi cùng lúc nhiều port).
B7: Chuyển tới tab Patch ⇒ General ⇒ Patch ⇒ Advance và chỉnh như hình.
(mục spoof device id các bạn có thể xem ở phần patch iGPU mục XIII).
B8: Chọn mục Generate Patch.
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 (đối với Clover thì copy như hình).

Lưu ý main source: [HƯỚNG DẪN] Hướng dẫn vá lỗi bộ đệm khung chung (Sự cố màn hình đen HDMI) | tonymacx86.com
Lưu ý 2: Khi patch bằng hackintool (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 (như hình)
Lưu ý 3: Đố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
- 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 (làm như phần trên)
XXIII.2 : Patch NVCAP
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
P1: Chuẩn bị
B1: Tải gfxutil
Sau đó vào terminal gõ lệnh path/to/gfxutil -f display sau khi gõ lệnh sẽ được như hình
Các bạn chú ý đến dòng PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0).
Và add vào mục
config.plist ⇒ root ⇒ device properties ⇒ add ⇒PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0) | dictionary
B3: Tải file vbios phù hợp với cấu hình theo link sau VGA Bios Collection | TechPowerUp.
B4: Tải Node JS’s site.
P2: 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:
OpenCore:
model: Tên của card rời Nvidia.
Vram totalsize: Set kích thước VRAM.
Rom-revision
NVCAP: Đây là phần quan trọng nhất giúp bạn sử dụng được HDMI.
P3: 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.
B2: Xác định VRAM:
- 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
- echo ‘số ram muốn set * 1024 * 1024′ | bc ( echo ‘1024 * 1024 * 1024′ | bc )
- echo ‘obase=16; ibase=10; giá trị vừa có ở mục trên’ | bc
( echo ‘obase=16; ibase=10; 1073741824’ | bc )
- 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
- Cuối cùng kết nối các dữ liệu lại ta được 0000004000000000
B3: Patch rom-revision.
Ở phần này rom-revision có thể là bất cứ giá trị nào nhưng bắt buộc phải có vd mình sẽ lấy giá trị là king-dragon man thì nó sẽ có dạng:
Rom-revision | string | king-dragon man
B4: Xác định NVCAP.
- 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
(sau khi chạy lên sẽ được như hình)
- Nhấn 1 và kéo VBIOS vào sau đó Enter
- Nhấn 3 sẽ được như hình:
- Gắn display với heads bằng cách nhập số display trước heads sau (ví dụ 1 1 sẽ được như hình).
(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).
- Tiếp các bạn đặt các giá trị NVCAP theo bảng sau:
- Sau khi hoàn thành các bạn nhấn phím “C” sẽ được như hình
- Tại đây ta sẽ được giá trị NVCAP
- như sau NVCAP: 05000000 00000300 0c000000 0000000f 00000000
Lưu ý: 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 VD bạn có 2 cổng HDMI muốn xuất ra 2 màn hình thì bạn phải để 2 display kết nối với 2 hex khác nhau.
B4: Sau khi làm xong các bước trên các bạn sẽ được như hình:
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ị sau khi add xong sẽ được như hình:
Lưu ý: Main source Legacy Nvidia Patching | OpenCore Post-Install (dortania.github.io)
Lưu ý 2: 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 VD HDMI to DP set type là HDMI.
Clover
Đối với Clover các bạn chỉ cần bật mục injects nvidia lên là được.

Tuy nhiên vẫn có 1 số trường hợp khi bật lên rồi nhưng vẫn gặp lỗi thì các bạn tính toán NVCAP như OpenCore sau đó bỏ vào mục NVCAP như hình:

Pingback: Tìm hiểu phần cứng - Heavietnam November 2021
Pingback: Convert bootloader - Heavietnam December 2021