MemacX 发表于 13/10/9 15:01:16

GTX 260 显卡驱动 For Mac

本帖最后由 MemacX 于 2013-10-9 15:04 编辑



附件是gfxutil工具和制作好的EFI_String及DSDT的范例


建立一个其他显卡的dsdt,然后把下面GTX260的代码替换过去,也可以把代码直接增加到PCI0节的下面.
DSDT 代码Device (PEGP)
{
Name (_ADR, 0x00010000)
Device (GFX0)
{
Name (_ADR, Zero)
Name (_SUN, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x16)
{
"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@0,device_type",
Buffer (0x08)
{
"display"
},

"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},

"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},

"@1,device_type",
Buffer (0x08)
{
"display"
},

"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},

"NVCAP",
Buffer (0x18)
{
/* 0000 */ 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
/* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b,
/* 0010 */ 0x00, 0x00, 0x00, 0x00
},

"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x38
},

"device_type",
Buffer (0x0C)
{
"NVDA,Parent"
},

"model",
Buffer (0x17)
{
"NVIDIA GeForce GTX 260"
},

"rom-revision",
Buffer (0x5)
{
"3434"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}其中NVCAP和VRAM值是我的GTX260显卡的参数,你可以根据自己的显卡调整.

更新修改DSDT显卡位置:
DSDT里默认的显卡位置是PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0),
但是一些显卡的位置可能不一样,虽然不影响显卡驱动(这个和efi-string不一样),
但是PCI卡那里的信息就没有了,因此可以修改硬件位置来解决这个问题,
假设用gfxutil得到的硬件位置是PciRoot(0x1)/Pci(0x3,0x0)/Pci(0x0,0x0)
PCI Device的第一节是Pci(0x3,0x0),它的另一个形式是PciAdr(0x30000),
我们来看PciAdr的定义



[*]PciAdr(uint32 adr) - alias for PCI node with using alternative address value.
[*]adr is PCI device "_ADR" property value that your may find from pci device properties in IOACPIPlane.

复制代码
因此,这里的_ADR就是0x30000,所以把


[*]Device (PEGP)
[*]            {
[*]                Name (_ADR, 0x00010000)
[*]                Device (GFX0)
[*]                {
[*]               ...

复制代码
修改为


[*]Device (PEGP)
[*]            {
[*]                Name (_ADR, 0x00030000)
[*]                Device (GFX0)
[*]                {
[*]               ...


即可解决这个问题

把编译好的DSDT放在mac分区的根目录或者Extra文件夹下,删除原来的ATY_init.kext,
重启,使用-v -f 启动,应该就能成功启动了
2009-7-19 19:41 上传




至此GT200系列显卡的EFI-String和DSDT驱动就说完了,这个方法在Snow Leopard一样适用,
现阶段开启Snow Leopard的64位内核的唯一方法就是使用Efi-String或DSDT来驱动显卡了


二楼是制作好的 变色龙配置文件com.apple.boot.plist
用文本编辑打开out.hex,里面就是做好的EFI-String了,
复制String到com.apple.boot.plist的device-properties下面,然后删掉ATY_init.kext,重启 -v -f应该就可以了
制作完成的com.apple.boot.plist应该是这个样子的

MemacX 发表于 13/10/9 15:03:05

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
      <key>Kernel</key>
      <string>mach_kernel</string>
      <key>Kernel Flags</key>
      <string></string>
      <key>device-properties</key>
      <string>6c0200000100000001000000600200000d00000002010c00d041030a010000000101060000010101060000007fff04000e0000004e00560050004d0000002000000001000000000000000000000000000000000000000000000000000000220000005600520041004d002c0074006f00740061006c00730069007a006500000008000000000000381c0000006400650076006900630065005f00740079007000650000000f0000004e5644412c506172656e740e0000006e0061006d00650000000b000000646973706c617922000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c617922000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000006d006f00640065006c0000001a0000004e5649444941204765466f726365204754582032363020000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616314000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d4114000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163100000004e00560043004100500000001800000005000000000003000c0000000000000b000000001e00000072006f006d002d007200650076006900730069006f006e0000002e0000004e5649444941204765466f7263652047545820323630204f70656e474c20456e67696e65205b4546495d</string>
</dict>
</plist>

鹤发童颜 发表于 13/10/11 10:31:15

能邦我弄个gt 240512m 的dsdt 吗
页: [1]
查看完整版本: GTX 260 显卡驱动 For Mac