[Hướng dẫn] Tối ưu hóa nVidia Graphics Card trong Hackintosh

Bạn nên tối ưu hóa Card màn hình dòng nVidia để nhận đầy đủ và mặc định trên OS XKhi bạn dành nhiều thời gian nghiên cứu hackintosh, bạn dễ dàng nhận ra rằng, các loại card màn hình của hãng nVidia được apple hổ trợ rất tốt. Hầu như các loại card màn hình của hãng này đều cài đặt rất dễ dàng với OS X. Tuy nhiên, vẫn có một số dòng card màn hình bị lỗi khi cài đặt. Để tránh những lỗi không mong muốn này, bạn có thể nghiên cứu các thông tin hướng dẫn bên dưới để xử lý triệt để các loại cho card màn hình của bạn.

[Hướng dẫn] Tối ưu hóa nVidia Graphics Card trong Hackintosh


Tổng Quan

a.Để thực hiện việc tối ưu hóa cho dòng card màn hình nVidia, bạn cần có các kiến thức cơ bản sau:
- Hiểu biết về hackintoh.
- Hiểu biết về boot loader (viết tắt: BL) các loại: Clover, Chameleon.
- Xuất, sửa lỗi, patch DSDT.
- Đọc được registry của OS X bằng RegistryExplorer.
- Xuất ROM Vga bằng Mac.
- Biết cấu hình cho BL Chameleon hoặc BL Clover.

b.Sau khi hoàn tất bạn nhận được điều gì?
- Card màn hình hổ trợ mặc định đối với các OS X chạy trên nền tảng Intel: 10.6 đến 10.10.
- Loại bỏ các lỗi không mong muốn: đen màn hình khi khởi động.

Yêu cầu

- Phần mềm DarwinDumper 2.9 tải.
- Phần mềm nVcap maker 1.4 tải.
- Phần mềm patch dsdt MaciASL tải.
- Phần mềm IORegistryExplorer tải.

Thực hiện

Bước 1: Xác định vi trí card màn hình của bạn để patch trong DSDT bằng IORegistryExplorer. Đây là phần mềm đọc các thông tin của các thiết bị đang được quản lý bởi ACPI, và trình bày theo dạng cây thư mục.

Chạy phần mềm IORegistryExplorer, nhập từ "nvda" vào ô tìm kiếm, phần cột bên trái sẽ cho ra nhánh con chứa thiết VGA card của bạn. Bạn có thể xem thêm hình để hiểu rõ hơn:

Kết quả trong hình bạn sẽ thấy VGA card được đăng ký thường trú ở PCI0>PEG0>PEGP. Như vậy khi patch DSDT bạn sẽ phải đặt đúng những thông tin cần thiết theo đúng đường dẫn như trên.

Bước 2: Dump Vga rom bằng DarwinDump.
Bạn chạy DarwinDump, nên sử dụng bản 2.9 hoặc hơn nhé. Tick chuột vào BIOS-Video, sau đấy click run.

DarwinDump sẽ yêu cầu bạn nhập password. Sau khi DarwinDump xuất xong rom VGA card của bạn bạn sẽ nhận được đường dẫn file Rom VGA của bạn (đừng quan tâm cái tên dài thườn thượt của nó nhé!), copy file rom ra desktop.

Bước 3: Lấy NVcap bằng phần mềm NVCAp Maker v1.4, NVcap rất quan trọng đối với VGA Card của nVidia, nên bạn phải cẩn thận ở bước này.
Chạy phần mềm nvcap maker 1.4, nó sẽ yêu cầu bạn nhập file rom VGA mà bạn đã lấy được ở bước trên, trỏ đường dẫn đến file Rom VGA mà bạn đang lưu tại desktop, click open.

Mã nvcap được tạo ra như trên hình, chép đoạn mã đấy lưu trữ cẩn thận.

Bước 4: Patch DSDT để thêm các thông tin của Vga card.
Với các thông tin ở bước 1 và bước 3, ta tiến hành thêm các thông tin vào DSDT.
Chạy phần mềm MaciASL, nó sẽ tự động đọc thông tin của ACPI của máy để bạn dễ dàng chỉnh sửa. Bạn cũng có thể mở file DSDT khác để chỉnh sửa. Yêu cầu ở đây các bạn phải xử lý lỗi DSDT của bạn để việc biên dịch file AML không bị lỗi.

Thêm DTGP, DTGP là là một đoạn lệnh để insert các thông tin thiết bị vào bảng ACPI thông qua file DSDT.aml.
Chọn patch> insert DTGP > apply.

- Tiến hành thêm thông tin của VGA card vào DSDT. Trong maciasl di chuyển đến vị trí thiết bị VGA của bạn như đã tìm thấy ở phần bước 1.

- Thêm đoạn code bên dưới vào vị trí VGA Card trong DSDT
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x1E)
{
"AAPL,slot-name",
Buffer (0x07)
{
"Slot-1"
},
"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@0,connector-type",
Buffer (0x04)
{
0x00, 0x08, 0x00, 0x00
},
"@0,device_type",
Buffer (0x08)
{
"display"
},
"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},
"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@1,connector-type",
Buffer (0x04)
{
0x00, 0x08, 0x00, 0x00
},
"@1,device_type",
Buffer (0x08)
{
"display"
},
"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},
"NVCAP",
Buffer (0x18)
{
/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
/* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},
"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x40
},
"device_type",
Buffer (0x0C)
{
"NVDA,Parent"
},
"model",
Buffer (0x10)
{
"GeForce GTX 285"
},
"rom-revision",
Buffer (0x1D)
{
"nVidia GTX 285 OpenGL Engine"
},
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (HDAU)
{
Name (_ADR, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

- Trong đó thay đoạn
"NVCAP",
Buffer (0x18)
{
/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
/* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},
bằng đoạn nvcap đã tạo ở bước 3.

- Thay đoạn
Buffer (0x10)
{
"GeForce GTX 285"
},
"rom-revision",
Buffer (0x1D)
{
"nVidia GTX 285 OpenGL Engine"
},
theo tên vga card của bạn.

- Sửa
"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x40
},
với 0x80 : 2gb
0x40 : 1 gb
0x20 : 512mb
0x10 : 256mb

Phần còn lại bạn không nên thay đổi.
- Biên dịch và lưu lại với tên dsdt.aml

Bước 5:
Chỉnh sửa file config của boot loader.
* Đối với BL Chameleon:
- Lưu dsdt.aml vào thư mục /Extra
- Thêm
<key>GraphicsEnabler</key>
<String>yes</string>
vào org.chameleon.boot.plist lưu trong /Extra

* Đối với BL Clover:
- Lưu dsdt.aml vào /EFI/Clover/ACPI/patched
- Thêm inject nVidia ở tab graphic

OK! giờ là lúc khởi động lại xem kết quả!

Tác giả: Tiến La Văn

Popular posts from this blog

[Hướng dẫn] Sử dụng Clover Configurator tạo file config.plist cho uEFI Clover Bootloader

[Guide for Newbie] Hướng dẫn patch DSDT/SSDT cho máy hackintosh (Phần 5)

[Hướng dẫn] Patch AppleHDA cho các laptop chạy Hackintosh