Skip to main content

Device Properties

info

Cấu hình thiết bị được cung cấp cho macOS thông qua các bộ đệm chuyên dụng để thiết lập các thuộc tính của thiết bị PCI, chẳng hạn như các bản vá Intel HD Graphics, layout-id cho card audio, v.v.

tip

Thông thường ở phần này ta thêm các bản vá cho card đồ hoạ onboard, card audio hoặc là card Ethernet.

Tìm đường dẫn PCI của thiết bị

Đường dẫn PCI (PCI Path) của các thiết bị khác nhau là khác nhau.

Trong macOS, bạn có thể sử dụng Hackintool để xem thông tin đường dẫn cụ thể: hackintool

Trong Windows, có một tool khá hay để có thể xem pci path là OCSysInfo:

Chỉnh sửa Device Properties

Cách chỉnh sửa DP đơn giản như sau:

  1. Thêm PCI Path của thiết bị
  2. Thêm hoặc sửa các key-value cần thiết
danger

Lưu ý chọn đúng Value Type, rất dễ quên chuyển đổi giữa DATA (kiểu số) và STRING (kiểu chuỗi)

Thiết bị cần phải biết

Có 2 device quan trọng cần phải tiêm thêm các giá trị:

Audio

  • PCI Path:
    • Trước Skylake: PciRoot(0x0)/Pci(0x1B,0x0)
    • Sau Skylake: PciRoot(0x0)/Pci(0x1F,0x3)
  • Properties:

Intel HD Graphic

  • PCI Path: PciRoot(0x0)/Pci(0x2,0x0)
  • Properties:
    • AAPL,ig-platform-id
      • Được macOS sử dụng để xác định cách trình điều khiển iGPU tương tác với phần cứng
      • AAPL,snb-platform-id
      • như ig-platform-id nhưng chỉ dùng cho Sandy Bridge (2xxx)
    • device-id
      • Giải quyết một số vấn đề bất thường về trình điều khiển và cải thiện khả năng tương thích
    • framebuffer-patch-enable
      • Kích hoạt bản vá thông qua WhateverGreen.kext
      • Chỉ dùng cho iGPU, không thêm thuộc tính này thì các bản vá sau vô nghĩa
    • framebuffer-stolenmem
      • Đặt stolenmem tối thiểu cho iGPU
      • Dùng khi BIOS không cho phép tăng DVMT Pre-Allocated lên 64MB
    • framebuffer-fbmem
      • Đặt kích thước fbmem cho iGPU
      • Dùng khi BIOS không cho phép tăng DVMT Pre-Allocated lên 64MB
info

Trên đa số mainboard PC thì trong BIOS Setup cho phép sửa DVMT Pre-Allocated, nhưng trên đa số laptop (trừ ASUS) và các máy PC đồng bộ (DELL, HP, LENOVO,..) thì không có thiết lập này. Nếu vậy cần phải thêm các thuộc tính như sau:

KeyTypeValue
framebuffer-patch-enableData01000000
framebuffer-stolenmemData00003001
framebuffer-fbmemData00009000
tip
  • Việc tiêm layout-id trong Device Properties có thể được thay thế bằng boot arugment sau alcid=xx, trong đó xx là layout-id bạn muốn thêm vào, rất đơn giản và thuận tiện.
  • Trong hướng dẫn này, tôi sẽ dùng theo cách trên cho phần audio nên phần dưới không đề cập đến nữa, tập trung vào Intel HD Graphic.

Intel Desktop

Sandy Bridge

  • PciRoot(0x0)/Pci(0x2,0x0)
AAPL,snb-platform-idGiải thích
10000300iGPU được sử dụng để xuất hình ảnh
00000500iGPU chỉ được sử dụng để tính toán, không xuất hình (dùng khi có card rời)
device-idGiải thích
26010000iGPU được sử dụng để xuất hình ảnh
02010000iGPU chỉ được sử dụng để tính toán, không xuất hình (dùng khi có card rời)
  • PciRoot(0x0)/Pci(0x16,0x0)
    • Sandy Bridge CPU trên để sử dụng với mainboard 7 series (VD: B75, Q75, Z75, H77, Q77, Z77)
    • Giả mạo thiết bị IMEI để được hỗ trợ
    • Thuộc tính này vẫn được yêu cầu bất kể SSDT-IMEI có được sử dụng hay không
KeyTypeValue
device-idData3A1C0000

Điều này không bắt buộc cho mainboard 6 series(VD H61, B65, Q65, P67, H67, Q67, Z68)

Dưới đây là ví dụ về cấu hình cuối cùng cho HD 3000 dành cho PC:

KeyTypeValue
AAPL,snb-platform-idData00000500
device-idData26010000

Ivy Bridge

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,ig-platform-idGiải thích
0A006601iGPU được sử dụng để xuất hình ảnh
07006201iGPU chỉ được sử dụng để tính toán, không xuất hình (dùng khi có card rời)

Đối với HD 4000 trên PC, dùng AAPL,ig-platform-id sau 0A006601

  • PciRoot(0x0)/Pci(0x16,0x0)
    • Dành cho Ivy Bridge CPU trên mainboard 6 series(VD H61, B65, Q65, P67, H67, Q67, Z68)
    • Giả mạo thiết bị IMEI để được hỗ trợ
    • Thuộc tính này vẫn được yêu cầu bất kể SSDT-IMEI có được sử dụng hay không
KeyTypeValue
device-idData3A1E0000

Điều này không bắt buộc cho mainboard 7 series(VD: B75, Q75, Z75, H77, Q77, Z77)

Haswell

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,ig-platform-idGiải thích
0300220DiGPU được sử dụng để xuất hình ảnh
04001204iGPU chỉ được sử dụng để tính toán, không xuất hình (dùng khi có card rời
07002216Một id khác có thể được dùng khi iGPU đuợc dùng để xuất hình
device-idGiải thích
12040000ID của HD 4600

Dưới đây là ví dụ về cấu hình cho HD 4400:

KeyTypeValue
AAPL,ig-platform-idData0300220D
framebuffer-patch-enableData01000000
framebuffer-stolenmemData00003001
framebuffer-fbmemData00009000
device-idData12040000

Dưới đây là ví dụ về cấu hình cho Iris Pro 6200:

KeyTypeValue
AAPL,ig-platform-idData07002216
framebuffer-patch-enableData01000000
framebuffer-stolenmemData00003001
framebuffer-fbmemData00009000

Skylake

  • PciRoot(0x0)/Pci(0x2,0x0)
AAPL,ig-platform-idGiải thích
00001219iGPU được sử dụng để xuất hình ảnh
01001219iGPU chỉ được sử dụng để tính toán, không xuất hình (dùng khi có card rời)

HD P530 (trên một số cpu xeon) không được hỗ trợ một cách chính thống từ Apple,nên bạn cần thêm fake nó về loại igpu được hỗ trợ, cụ thể là HD 530 bằng cách thêm thuộc tính sau:

KeyTypeValue
device-idData1B190000

Dưới đây là ví dụ về cấu hình cho HD P530:

KeyTypeValue
AAPL,ig-platform-idData00001219
framebuffer-patch-enableData01000000
framebuffer-stolenmemData00003001
framebuffer-fbmemData00009000
device-idData1B190000

Còn đối với HD 530 thì cấu hình như sau:

KeyTypeValue
AAPL,ig-platform-idData00001219
framebuffer-patch-enableData01000000
framebuffer-stolenmemData00003001
framebuffer-fbmemData00009000

Kaby Lake

  • PciRoot(0x0)/Pci(0x2,0x0)
AAPL,ig-platform-idGiải thích
00001259iGPU được sử dụng để xuất hình ảnh
03001259iGPU chỉ được sử dụng để tính toán, không xuất hình (dùng khi có card rời)

Sau đây là cấu hình cho HD 630:

KeyTypeValue
AAPL,ig-platform-idData00001259
framebuffer-patch-enableData01000000
framebuffer-stolenmemData00003001

Coffee Lake

  • PciRoot(0x0)/Pci(0x2,0x0)
AAPL,ig-platform-idGiải thích
07009B3EiGPU được sử dụng để xuất hình ảnh
00009B3EKhi dùng07009B3E mà không xuất được hình,đây là một lựa chọn thay thế
0300913EiGPU chỉ được sử dụng để tính toán, không xuất hình (dùng khi có card rời)

Sau đây là cấu hình cho UHD 630:

KeyTypeValue
AAPL,ig-platform-idData07009B3E
framebuffer-patch-enableData01000000
framebuffer-stolenmemData00003001
danger

Một số mainboad 300 series dùng UHD630 thường không xuất hình ra được, bị đen màn, thì cấu hình như trên là chưa đủ, sẽ cần phải cấu hình thêm cho các connector, vui lòng tham khảo thêm iGPU Black Screen

Comet Lake

  • PciRoot(0x0)/Pci(0x2,0x0)
AAPL,ig-platform-idGiải thích
07009B3EiGPU được sử dụng để xuất hình ảnh
00009B3EKhi dùng07009B3E mà không xuất được hình,đây là một lựa chọn thay thế
0300C89BiGPU chỉ được sử dụng để tính toán, không xuất hình (dùng khi có card rời)

Sau đây là cấu hình cho UHD 630:

KeyTypeValue
AAPL,ig-platform-idData07009B3E
framebuffer-patch-enableData01000000
framebuffer-stolenmemData00003001
danger

Cũng như mainboard 300 series, một số mainboad 400 series cũng sẽ gặp tình trạng không xuất hình ra được vì đều dùng UHD 630, vui lòng tham khảo thêm iGPU Black Screen

Intel Laptop

Sandy Bridge

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,snb-platform-idTypeGiải thích
00000100LaptopCho laptop
10000300NUCCho Intel NUC
  • PciRoot(0x0)/Pci(0x16,0x0)
    • Khi dùng Sandy Bridge CPU (2xxx) trên mainboard Ivy Bridge (Hx7x)
    • Giả mạo thiết bị IMEI để được hỗ trợ
    • Thuộc tính này vẫn được yêu cầu bất kể SSDT-IMEI có được sử dụng hay không
    • Bạn có thể dùng AIDA64 để xem thông tin cpu và mainboad chipset
KeyTypeValue
device-idData3A1C0000

Ivy Bridge

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,ig-platform-idTypeGiải thích
03006601LaptopCho màn hình độ phân giải HD 1366*768
04006601LaptopCho màn hình độ phân giải HD+ 1600*900
09006601LaptopNếu hai ID trên không hoạt động, bạn có thể thử nó, chủ yếu để sử dụng với một số màn hình eDP
0B006601NUCĐược đề xuất cho Intel NUC

Nếu dùng ig-platform-id 04006601 tức cho màn HD+ thì phải thêm các thuộc tính sau để có thể xuất ra màn hình rời: (Cảm ơn Rehabman)

KeyTypeValue
framebuffer-patch-enableNumber1
framebuffer-memorycountNumber2
framebuffer-pipecountNumber2
framebuffer-portcountNumber4
framebuffer-stolenmemData00000004
framebuffer-con1-enableNumber1
framebuffer-con1-alldataData02050000 00040000 07040000 03040000 00040000 81000000 04060000 00040000 81000000
info

Nếu bạn muốn hiểu ý nghĩa của các thuộc tính trên vui lòng đọc iGPU Output

  • PciRoot(0x0)/Pci(0x16,0x0)
    • Khi dùng Sandy Bridge CPU (3xxx) trên mainboard Ivy Bridge (Hx6x)
    • Giả mạo thiết bị IMEI để được hỗ trợ
    • Thuộc tính này vẫn được yêu cầu bất kể SSDT-IMEI có được sử dụng hay không
    • Bạn có thể dùng AIDA64 để xem thông tin cpu và mainboad chipset
KeyTypeValue
device-idData3A1E0000

Haswell

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,ig-platform-idTypeGiải thích
0500260ALaptopDành cho HD 5000, HD 5100 và HD 5200
0600260ALaptopDành cho HD 4200, HD 4400 và HD 4600, bắt buộc fake device-id
0300220DNUCThường dùng cho Haswell NUC,HD 4200/4400/4600 bắt buộc fake device-id

Và thêm một thuộc tính đặc biệt tăng kích thước cursor lên 9MB thay vì 6MB để tránh lỗi xé hình (cảm ơn Rehabman):

KeyTypeValue
framebuffer-patch-enableData01000000
framebuffer-cursormemData00006000

Đối với HD 4200, HD 4400 and HD 4600 cần fake device-id như sau:

KeyTypeValue
device-idData12040000

Sau đây là cấu hình HD 4400 hoặc HD 4600 cho laptop:

KeyTypeValue
AAPL,ig-platform-idData0600260A
device-idData12040000
framebuffer-patch-enableData01000000
framebuffer-cursormemData00006000
framebuffer-fbmemData00009000
framebuffer-stolenmemData00003001

Broadwell

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,ig-platform-idTypeGiải thích
06002616LaptopDành cho hầu hết igpu laptop
02001616NUCDành cho Broadwell NUC

Nếu iGPU là HD 5600 thì cần phải fake device-id:

KeyTypeValue
device-iddata26160000

Cấu hình cho HD 5500 thường gặp trên laptop:

KeyTypeValue
AAPL,ig-platform-idData06002616
framebuffer-patch-enableData01000000
framebuffer-fbmemData00009000
framebuffer-stolenmemData00003001

Skylake

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,ig-platform-idTypeGiải thích
00001619LaptopKhuyến nghị sử dụng cho 515, HD 520, HD 530, HD 540, HD 550 và P530
00001E19LaptopThử id này nếu id trên không hoạt động
00001B19LaptopDành cho HD 510
00001E19NUCDành cho HD 515
02001619NUCDành cho HD 520/530
02002619NUCDành cho HD 540/550
05003B19NUCDành cho HD 580

Dành cho HD 510 trên một số CPU Intel Core M,cần phải fake device-id:

KeyTypeValue
device-idData02190000

Dành cho HD 550, P530, cũng cần phải fake device-id:

KeyTypeValue
device-idData16190000

Cấu hình cho HD 520, HD530 thường dùng cho laptop:

KeyTypeValue
AAPL,ig-platform-idData00001B19
framebuffer-patch-enableData01000000
framebuffer-fbmemData00009000
framebuffer-stolenmemData00003001

Kaby Lake, Kaby Lake R

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,ig-platform-idTypeGiải thích
00001B59LaptopKhuyến nghị cho HD 615, HD 620, HD 630, HD 640 and HD 650
00001659LaptopThay thế cho 00001B59 nếu gặp lỗi,khuyến nghị cho HD 620 và UHD 620 trên NUC
0000C087LaptopKhuyến nghị cho Amber Lake UHD 617 và Kaby Lake-R UHD 620
00001E59NUCKhuyến nghị cho HD 615
00001B59NUCKhuyến nghị cho HD 630
02002659NUCKhuyến nghị cho HD 640/650

Dành cho UHD 620 (Kaby Lake-R),cần phải fake device-id:

KeyTypeValue
device-idData16590000

Cấu hình cho HD 620, UHD 620 thường dùng cho laptop:

KeyTypeValue
AAPL,ig-platform-idData00001B59
device-idData16590000
framebuffer-patch-enableData01000000
framebuffer-fbmemData00009000
framebuffer-stolenmemData00003001

Cấu hình cho HD 630 thường dùng cho laptop:

KeyTypeValue
AAPL,ig-platform-idData00001B59
framebuffer-patch-enableData01000000
framebuffer-fbmemData00009000
framebuffer-stolenmemData00003001

Coffee Lake, Whisky Lake

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,ig-platform-idTypeGiải thích
0900A53ELaptopKhuyến nghị cho UHD 630
00009B3ELaptopKhuyến nghị cho UHD 620
07009B3ENUCKhuyến nghị cho UHD 620/630
0000A53ENUCKhuyến nghị cho UHD 655

Coffee Lake UHD 630 (8xxxH) thường không cần phải device-id, nhưng nếu cần hãy dùng:

KeyTypeValue
device-idData9B3E0000

UHD 620 trên Whisky Lake CPU (8x65U) cần phải fake device-id:

KeyTypeValue
device-idData9B3E0000

Cấu hình cho UHD 630, UHD 620 thường dùng cho laptop:

KeyTypeValue
AAPL,ig-platform-idData00009B3E
device-idData9B3E0000
framebuffer-patch-enableData01000000
framebuffer-fbmemData00009000
framebuffer-stolenmemData00003001

Coffee Lake Plus, Comet Lake

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

Chọn ig-platform-id phù hợp trong bảng sau:

AAPL,ig-platform-idTypeGiải thích
0900A53ELaptopKhuyến nghị cho UHD 630
00009B3ELaptopKhuyến nghị cho UHD 620
07009B3ENUCKhuyến nghị cho UHD 620/630
0000A53ENUCKhuyến nghị cho UHD 655

UHD 630 trên Coffee Lake Plus (9xxxH) và UHD Graphics trên Comet Lake (10xxxU, 10xxxH) cần phải device-id:

KeyTypeValue
device-idData9B3E0000

Cấu hình cho UHD Graphics thường dùng cho laptop:

KeyTypeValue
AAPL,ig-platform-idData00009B3E
device-idData9B3E0000
framebuffer-patch-enableData01000000
framebuffer-fbmemData00009000
framebuffer-stolenmemData00003001

Intel HEDT

Dòng CPU cao cấp không có iGPU, không cần cấu hình nên bỏ qua phần này!

AMD Desktop

iGPU trong AMD CPU hay gọi là APU không dùng được nên cũng không cần cấu hình, bỏ qua phần này!