- 积分
- 3554
- 最后登录
- 2023-11-7
- 精华
- 0
- 阅读权限
- 70
- 主题
- 111
- UID
- 3545481
- 帖子
- 8885
- PB币
- 38347
- 威望
- 0
- 贡献
- 0
- 技术
- 7848
- 活跃
- 2904
- UID
- 3545481
- 帖子
- 8885
- PB币
- 38347
- 贡献
- 0
- 技术
- 7848
- 活跃
- 2904
|
5F
发表于 2013-11-11 08:32:04
IP属地广东
|只看该作者
本帖最后由 kavenliang 于 2014-5-25 09:03 编辑
你们也可以配合使用这个:
关于DSDT的提取修改错误,奶牛大大有一个很详尽带视频的贴子
1、HD4000的DSDT驱动方法
如果你-V启动卡在
[IOBlueToothPCIController] -- Missing bluetooth transport controller
或者
[IOBlueToothPCIController][start] -- Complete
(如图)那么很有可能是显卡的问题
你可以提取了DSDT&ssdt后安全模式启动到Mac OS里面再编辑,方法类似。
将使用到的工具:
DSDT Editor:
DSDTEditor-Linux-Mac-Win.zip
(1.41 MB, 下载次数: 11741)
AIDA64:http://dutrans.duapp.com/share/5381414ae4b03c03059028fa
JAVA SE(JDK),自行官网下载
运行AIDA64后,“工具”,弹出菜单,选择“ACPI浏览器”。
点击“save DSDT”随便找一个地方保存就可以
把acpi_dsdt.bin重命名为dsdt.aml
再用DSDT Editor的Patch加入DTGP代码
打开DSDT editor,点击右上角“Patch”,“Open”
在选择框中定位到/DSDTEditor-Linux-Mac-Win/Patches/,选中DTGP.txt
先点“Preview(预览)”看看效果,再点“Apply(应用)”
Ctrl+F查找“GFX0”,看清楚下面的代码从哪里到哪里,如果已经有一个Method (_DSM,4,Serialized),那就删掉吧,不然两个_DSM会提示error
- Device (GFX0)
- {
- Name (_ADR, 0x00020000)
- Method (_DSM, 4, NotSerialized)
- {
- Store (Package (0x14)
- {
- "AAPL,slot-name",
- Buffer (0x08)
- {
- "Slot -1"
- },
- "built-in",
- Buffer (One)
- {
- 0x01
- },
- "AAPL,HasPanel",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "AAPL,Haslid",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "AAPL,backlight-control",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "@0,backlight-control",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "@0,AAPL,boot-display",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "device-id",
- Buffer (0x04)
- {
- 0x66, 0x01, 0x00, 0x00
- },
- "AAPL,ig-platform-id",
- Buffer (0x04)
- {
- 0x03, 0x00, 0x66, 0x01
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
复制代码"AAPL,ig-platform-id",
Buffer (0x04)
{
0x03, 0x00, 0x66, 0x01
}
自行参照下表替换,实在不行一个一个试
ig-platform-id: 01660000, Stolen RAM for FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3
ig-platform-id: 01660001, Stolen RAM for FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3
ig-platform-id: 01660002, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 1, FBMem: 1
ig-platform-id: 01660003, Stolen RAM for FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2
ig-platform-id: 01660004, Stolen RAM for FB: 32MB, Pipes: 3, Ports: 1, FBMem: 1
ig-platform-id: 01660008, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3
ig-platform-id: 01660009, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3
ig-platform-id: 0166000A, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2
ig-platform-id: 0166000B, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2
ig-platform-id: 01620005, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2
ig-platform-id: 01620006, Stolen RAM for FB: 0MB, Pipes: 0, Ports: 0, FBMem: 0
ig-platform-id: 01620007, Stolen RAM for FB: 0MB, Pipes: 0, Ports: 0, FBMem: 0
按F5,”Compile(编译)“,如果没有error就可以保存了
2、Mac OS Not Yet Set
CLOVER界面>OPTION->DSDT MASK ,参照Clover参数的相关说明,详看上文Clover的Wiki,此处设定临时生效,重启后恢复原来的设定,如果想保存设置,按照修改后得出的fix DSDT mask的值,修改EFI/CLOVER/Config.plist里面的值,新版clover(如2300+)可以直接F5保存设置。
*此处可以自由组合,N多问题都可以在这里解决!
3、HD4400的DSDT驱动参考来自:
方法跟HD4000无多大差别,在Device (GFX0)下没有的话,可以在某个SSDT里面可以找到,你可能需要把所有东西合并到dsdt里面,包括name,object,operationRegion,method这些,参考上下文的语法。 添加以下代码
记住不要插入到其他Method的里面,那样就麻烦大了,别忘了还有DTGP函数- Method (_DSM, 4, NotSerialized)
- {
- Store (Package (0x06)
- {
- "model",
- Buffer (0x16)
- {
- "Intel HD Graphics 4400"
- },
- "AAPL,ig-platform-id",
- Buffer (0x04)
- {
- 0x06, 0x00, 0x26, 0x0A
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
复制代码
4、HD4600通过DSDT驱动参考来自:
原理是通过ig-Platform-id结合AppleIntelHD5000Graphics.kext来驱动,跟HD4400的方法差不多
(1)首先要查看你的显卡“设备ID”是否在以下“IOPCIPrimaryMatch”一行出现- <?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>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>AppleIntelHD5000Graphics</string>
- <key>CFBundleGetInfoString</key>
- <string>AppleIntelHD5000Graphics 8.18.29</string>
- <key>CFBundleIdentifier</key>
- <string>com.apple.driver.AppleIntelHD5000Graphics</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>Apple Embedded Graphics Kernel Extension</string>
- <key>CFBundlePackageType</key>
- <string>KEXT</string>
- <key>CFBundleShortVersionString</key>
- <string>8.18.29</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>8.1.8</string>
- <key>IOKitPersonalities</key>
- <dict>
- <key>Gen7</key>
- <dict>
- <key>CFBundleIdentifier</key>
- <string>com.apple.driver.AppleIntelHD5000Graphics</string>
- <key>CompactVRAM</key>
- <integer>1</integer>
- <key>IOCFPlugInTypes</key>
- <dict>
- <key>ACCF0000-0000-0000-0000-000a2789904e</key>
- <string>IOAccelerator2D.plugin</string>
- </dict>
- <key>IOClass</key>
- <string>IntelAccelerator</string>
- <key>IODVDBundleName</key>
- <string>AppleIntelHD5000GraphicsVADriver</string>
- <key>IOGLBundleName</key>
- <string>AppleIntelHD5000GraphicsGLDriver</string>
- <key>IOGVACodec</key>
- <string>Gen75</string>
- <key>IOGVAScaler</key>
- <string>Gen75</string>
- <key>IOMatchCategory</key>
- <string>IOAccelerator</string>
- <key>IOPCIClassMatch</key>
- <string>0x03000000&0xff000000</string>
- <key>IOPCIPrimaryMatch</key>
- <string>0x00908086 0x00918086 0x00928086 0x0c268086 0x0c168086 0x0c068086 0x0c228086 0x0d268086 0x0a268086 0x0a168086 0x04268086 0x04168086 0x04068086 0x0d228086 0x04128086 0x0a2e8086</string>
- <key>IOProbeScore</key>
- <integer>1000</integer>
- <key>IOProviderClass</key>
- <string>IOPCIDevice</string>
- <key>IOSourceVersion</key>
- <string>0.0.0.0.0</string>
- <key>IOVARendererID</key>
- <integer>17301508</integer>
- </dict>
- </dict>
- <key>NSHumanReadableCopyright</key>
- <string>Copyright ? 1999-2012 Apple Inc. All rights reserved.</string>
- <key>OSBundleLibraries</key>
- <dict>
- <key>com.apple.iokit.IOAcceleratorFamily2</key>
- <string>2.0.0</string>
- <key>com.apple.iokit.IOGraphicsFamily</key>
- <string>1.0.0b1</string>
- <key>com.apple.iokit.IOPCIFamily</key>
- <string>1.0.0b1</string>
- <key>com.apple.iokit.IOSurface</key>
- <string>87.0</string>
- <key>com.apple.kpi.bsd</key>
- <string>8.0.0</string>
- <key>com.apple.kpi.iokit</key>
- <string>8.0.0</string>
- <key>com.apple.kpi.libkern</key>
- <string>8.0.0</string>
- <key>com.apple.kpi.mach</key>
- <string>8.0.0</string>
- <key>com.apple.kpi.unsupported</key>
- <string>8.0.0</string>
- </dict>
- </dict>
- </plist>
复制代码 (2)同样是DSDT的操作
别忘了先Patch添加DTGP函数
再定位到“Device (GFX0),如果没有,就要从AIDA64提取的ssdt里面找到,把那个ssdt里面的内容迁移到dsdt里面,这一步比较复杂,关于怎么迁移,可以看看这帖子里面的方法二,虽然有点简略
”给你的DSDT加上以下代码
添加的位置可以参照HD4000的- Method (_DSM, 4, NotSerialized)
- {
- Store (Package (0x04)
- {
- "AAPL,ig-platform-id",
- Buffer (0x04)
- {
- 0x00, 0x00, 0x26, 0x0C
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
- }
复制代码 可以参照下表或原帖中的一下数据修改“0x00, 0x00, 0x26, 0x0C”ig-platform-id | name | pipe
管线数 | port
端口数 | 固定显存 | 动态显存 | 端口类型 | 备注 | 0x0000160c | SDV Mobile GT2 | 3 | 3 | 64 | 1024 | eDP, DVI, HDMI | DVI和HDMI有输出 | 0x0000260c | SDV Mobile GT3 | 3 | 3 | 64 | 1024 | eDP, DVI, HDMI | DVI和HDMI有输出 |
5、HD3000驱动参考
|
-
4
查看全部评分
-
|