A卡不要WhatEverGreen.kext也可以成功驱动,离完美进了一步
1、配置主板:GA-Sniper B6 B85
CPU: i7-4790
显卡:迪兰RX580 8G
原先是Lilu.kext + WhatEverGreen.kext驱动显卡,关于本机显示如下:
现在利用dsdt驱动显卡,代码如下:
Device (PEG0)
{
Name (_ADR, 0x00010000)// _ADR: Address
Device (GFX0)
{
Name (_ADR, Zero)// _ADR: Address
OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
Field (PCIB, AnyAcc, NoLock, Preserve)
{
Offset (0x10),
BAR0, 32,
BAR1, 32,
BAR2, 64,
BAR4, 32,
BAR5, 32
}
Method (_INI, 0, NotSerialized)// _INI: Initialize
{
If (LEqual (BAR5, Zero))
{
Store (BAR2, Local0)
}
Else
{
Store (BAR5, Local0)
}
OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000)
Field (GREG, AnyAcc, NoLock, Preserve)
{
Offset (0x6800),
GENA, 32,
GCTL, 32,
LTBC, 32,
Offset (0x6810),
PSBL, 32,
SSBL, 32,
PTCH, 32,
PSBH, 32,
SSBH, 32,
Offset (0x6848),
FCTL, 32,
Offset (0x6EF8),
MUMD, 32
}
Store (Zero, FCTL)
Store (Zero, PSBH)
Store (Zero, SSBH)
Store (Zero, LTBC)
Store (One, GENA)
Store (Zero, MUMD)
}
Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
{
If (LEqual (Arg2, Zero))
{
Return (Buffer (One)
{
0x03
})
}
Return (Package (0x26)
{
"AAPL,slot-name",
Buffer (0x07)
{
"PCIe"
},
"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x02, 0x00
},
"@0,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@0,compatible",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@0,device_type",
Buffer (0x08)
{
"display"
},
"@1,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@2,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@3,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@4,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"ATY,Card#",
Buffer (0x14)
{
"WEAR-112-2017-10-22"
},
"ATY,Copyright",
Buffer (0x25)
{
"(C) 1988-2017, AMD Technologies Inc."
},
"ATY,EFIVersion",
Buffer (0x41)
{
"WEAR-112-2017-10-22"
},
"ATY,Rom#",
Buffer (0x14)
{
"WEAR-112-2017-10-22"
},
"ATY,VendorID",
Buffer (0x02)
{
0x02, 0x10
},
"ATY,DeviceID",
Buffer (0x02)
{
0xDF, 0x67
},
"device_type",
Buffer (0x20)
{
"ATY,AMD,RadeonFramebufferParent"
},
"model",
Buffer (0x17)
{
"AMD Radeon Pro RX580"
},
"name",
Buffer (0x15)
{
"AMD Radeon Pro RX580"
},
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
})
}
}
Device (HDAU)
{
Name (_ADR, One)// _ADR: Address
Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
成功驱动,扔掉WhatEverGreen.kext
不过关于本机显示不正确,如下:
楼主测试一下HDMI音频和睡眠,我就不说了,呵呵函数名有些没弄懂 ATY,Card#应该类似:E348030 P21 XT GDDR5 256Mx32 4GB 214e/300mATY,Rom# 应该类似 348X05MF.U32 按照我的测试RX560HDMI端口能被识别而DP 、DDV-D(不存在这样的端口,只有DDV-I)被没有完全识别,似乎用类似通用驱动代替。 楼主的显示器好小,19寸的吧 应该还是你dsdt,没写对,你指定fbname了?
maojinbing 发表于 2017-11-11 13:22 https://www.pcbeta.com/static/image/common/back.gif
楼主测试一下HDMI音频和睡眠,我就不说了,呵呵函数名有些没弄懂
睡眠唤醒没问题,hdmi输出可以的,请看图
munc 发表于 2017-11-11 19:24 https://www.pcbeta.com/static/image/common/back.gif
应该还是你dsdt,没写对,你指定fbname了?
没有frameBuffer,真的没有!!
maojinbing 发表于 2017-11-11 13:51 https://www.pcbeta.com/static/image/common/back.gif
按照我的测试RX560HDMI端口能被识别而DP 、DDV-D(不存在这样的端口,只有DDV-I)被没有完全识别, ...
RX580 迪兰的,
hdmi x1,我用了三星的24寸显示器,支持的,hdmi没压力
dp x4,我用了dp转vga,19寸老显示器,也支持的,识别完美
都完美吧! Buffer (0xXXX)
看到一堆错的,删除掉所有0xXXXXXX重新编译
比方说你没有发现你的EFI版本好多,,,,,,,,,,咩。 怎么可能没有?
dsdt自己做的?不是吧
把你DSDT中的“ATY,AMD,RadeonFramebufferParent”,全部换成“ATY,Dayman",就能正常显示你的显卡名称了 追风的就是580啊。 https://bbs.pcbeta.com/forum.php?mod=redirect&goto=findpost&ptid=1768779&pid=47829172 看看。。。.... 搞不懂,我的RX560谁帮忙做一个DSDT谢谢了 ! 还是用VEGA来得省心,可惜那功耗要上天。 楼主,我想问一下,你的显卡DSDT是根据什么教程来修改的? 谢谢分享!!
页:
[1]
2