- 积分
- 611
- 最后登录
- 2023-2-26
- 精华
- 0
- 阅读权限
- 40
- 主题
- 87
- UID
- 4783896
- 帖子
- 1452
- PB币
- 357
- 威望
- 5
- 贡献
- 0
- 技术
- 0
- 活跃
- 1520
- UID
- 4783896
- 帖子
- 1452
- PB币
- 357
- 贡献
- 0
- 技术
- 0
- 活跃
- 1520
|
本帖最后由 13469977015002 于 2016-6-7 14:28 编辑
----------------------------------------------------------------------------------
教程所需的软件
AIDA64: http://pan.baidu.com/s/1cDPOmU 密码: xkv8
----------------------------------------------------------------------------------
提取DSDT教程
- 关于DSDT和SSDT的介绍
- 小白可以理解DSDT和SSDT是bios中的一些文件,当我们启动windows系统时,系统会读取这些文件从而知道我们的电脑有什么样的硬件,系统知道了硬件才能驱动他。因为我们的电脑和苹果电脑的bios不一样所以当启动苹果系统时,mac不会加载DSDT,提取DSDT的目的是让四叶草强制加载他,用DSDT来告诉mac我们电脑有什么样的硬件。
复制代码 打开AIDA64
DSDT最好保存的时候就把名字改为DSDT.aml
SSDT不同的机子个数不同,保存的时候名字按照
SSDT-1.aml
SSDT-2.aml
一直往下排
------------------------------------------------------------------------------------------------------
关于修改DSDT的一些常识
再改DSDT打补丁之前,需要改DSDT改错,如果遇到实在不会改的错误可以留意
。打开maciasl
这里有4.0和5.0编译器
如果你的bios不支持UEFI或EFI引导那么使用4.0编译器并且DSDT可以直接打开修改
反之使用5.0编译器,而且在修改前需要进行联合反编译
下面教大家如何联合反编译DSDT和SSDT
在桌面新建文件夹命名为DSDT
将提取的DSDT和SSDT全放进去
下载文件iasl,解压它
打开应用程序/实用工具里面的终端
输入
- cd desktop/DSDT
- iasl -da *.aml
复制代码
成功后DSDT文件夹会生产很多dsl文件
修改dsl文件到无错,然后保存成aml格式,方法如下
保存后的aml如果打开就又会有错误,
保存后不用打开就可以使用,这样就必须备份dsl文件,当需要修改dsdt时还需要它。
下文中有方法解决此问题。
下面教大家在不连网的情况下给DSDT打补丁
下载文件dxxs-DSDT-Patch-master和Laptop-DSDT-Patch-master放在桌面
左边的Name可以随便填写
右边分别填写
file:///Users/明芯/desktop/dxxs-DSDT-Patch-master
file:///Users/明芯/desktop/Laptop-DSDT-Patch-master
其中明芯要改成你mac的用户名
这样就可以给DSDT打上合适的补丁
-----------------------------------------------------------------------------------------------
关于intel酷睿系列核显驱动亮度调节方法介绍
①二代CPU
这里分6系列主板和7系列主板
6系列主板设置机型为pro8.1即可免驱
7系列主板需要仿冒显卡ID,并设置机型pro8.1
四叶草设置机型8.1代码如下
- <key>SMBIOS</key>
- <dict>
- <key>BiosReleaseDate</key>
- <string>04/22/11</string>
- <key>BiosVendor</key>
- <string>Apple Inc.</string>
- <key>BiosVersion</key>
- <string>MBP81.88Z.0047.B0E.1104221557</string>
- <key>Board-ID</key>
- <string>Mac-94245B3640C91C81</string>
- <key>BoardManufacturer</key>
- <string>Apple Inc.</string>
- <key>BoardType</key>
- <integer>10</integer>
- <key>ChassisAssetTag</key>
- <string>MacBook-Aluminum</string>
- <key>ChassisManufacturer</key>
- <string>Apple Inc.</string>
- <key>ChassisType</key>
- <string>08</string>
- <key>Family</key>
- <string>MacBook Pro</string>
- <key>Manufacturer</key>
- <string>Apple Inc.</string>
- <key>Mobile</key>
- <true/>
- <key>ProductName</key>
- <string>MacBookPro8,1</string>
- <key>SerialNumber</key>
- <string>C02F95DPDH2G</string>
- <key>Trust</key>
- <false/>
- <key>Version</key>
- <string>1.0</string>
- </dict>
复制代码 7系列主板仿冒显卡ID只需要给DSDT打上补丁
对于亮度调节,只需要给DSDT打上亮度补丁(HD3000和HD4000亮度补丁一样)
添加_DSM函数如下- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- Store (Package (0x08)
- {
- "built-in",
- Buffer (One)
- {
- 0x00
- },
- "device_type",
- Buffer (0x08)
- {
- "display"
- },
- "model",
- Buffer (0x17)
- {
- "Intel HD Graphics 3000"
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-2"
- }
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
复制代码
②3代CPU
如果你的主板支持UEFI或者EFI那么你的显卡函数是定义在SSDT中
可参考4代CPU教程,把显卡函数从SSDT复制到DSDT
注入AAPL,ig-platform-id=0x01660003即可驱动显卡四叶草注入方法如下
DSDT驱动方法为复制以下(_DSM)函数到Device (GFX0)
- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- Store (Package (0x14)
- {
- "AAPL,slot-name",
- Buffer (0x08)
- {
- "Slot -1"
- },
- "built-in",
- Buffer (One)
- {
- 0x01
- },
- "AAPL,HasPanel",
- Unicode ("\x01"),
- "AAPL,Haslid",
- Unicode ("\x01"),
- "AAPL,backlight-control",
- Unicode ("\x01"),
- "@0,backlight-control",
- Unicode ("\x01"),
- "@0,AAPL,boot-display",
- Unicode ("\x01"),
- "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)
- }
复制代码 如果报错,添加以下补丁
亮度补丁同HD3000
③4代CPU(HD4400和HD4600)
首先介绍使用四叶草驱动HD4400/HD4600的方法
IntelGFX=0x04128086(仿冒显卡ID)
ig-platform-id=0x0a260006(注入ig-platform-id)
四叶草里面需要放入FakePCIID_HD4600_HD4400和FakePCIID
对于①和②使用DSDT一样可以做到
并且DSDT可以让你调节亮度
首先将DSDT和SSDT联合反编译
并修改错误,先给DSDT打补丁
这个补丁的作用是将GFX0改名成IGPU,不能打此补丁的可手动修改GFX0为IGPU
这个补丁的作用是仿冒显卡ID等效于
IntelGFX=0x04128086(仿冒显卡ID)
这是HD3000用的ID,所以要手动修改
搜索Device (IMEI)
- "device-id", Buffer() { 0x3A, 0x1C, 0x00, 0x00 },
- "name", "pci8086,1c3a",
复制代码 修改为
- "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 },
- "name", "pci8086,0412",
复制代码 接下来在所有的SSDT中搜索
Device (GFX0)
给找到的SSDT打补丁
Rename GFX0 TO IGPU
Brightness fix(Hasewell)作用:亮度调节
将以下的函数复制到Device(IGPU)中,作用等效于ig-platform-id=0x0a260006
- Method (_DSM, 4, NotSerialized)
- {
- If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
- Return (Package()
- {
- "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a },
- "hda-gfx", Buffer() { "onboard-1" },
- })
- }
复制代码
下面需要将SSDT里面的内容复制到DSDT,从Scope (\_SB.PCI0)开始复制,一直复制到末尾,但是不要最后一个括号。
现在最重要的是复制到DSDT中哪一个位置,在DSDT中搜Device (EHC1)
这里可以看到Device (EHC1)是Scope (_SB.PCI0)下的子项
找到Scope (_SB.PCI0)末尾的括号就是需要找的位置
点击Scope (_SB.PCI0)下面的函数就可以轻松的找到Scope (_SB.PCI0)的末尾
如果你找的位置正确,当你把鼠标光标放在那个位置左边会自动定义到DSDT的头部
External中文意思为外部的
在SSDT开始部位可以找到很多这样的内容
这是外部调用函数
在其下面会有这样的定义
复制这个内容直到另外一个结尾的括号
需要将其复制到DSDT里面的外部调用函数下面
点击编译会有2种类型的错误,第一种
错误原因
例如第一个错误IGDS
在我们复制SSDT内容之前,DSDT是通过外部调用这个IGDS
但是现在这个IGDS被我们复制到DSDT
造成了同一个名称的量有2种定义
所以删除外部调用即可
对于第一个错误就是删除
External (IGDS, FieldUnitObj)
第二种错误
HDOS没在DSDT和SSDT-8中定义
SSDT-8是通过外部调用函数使用它
解决办法在SSDT中找到对应的外部调用声明复制到DSDT中
- 前面说过支持UEFI的主板提取的DSDT,修改无错后保存成aml之前打开又会有错误,原因在于UEFI启动的bios中核显函数定义在SSDT里面,这样造成DSDT里面缺少重要的函数,所以单独打开DSDT.aml文件就会出错,但是如果是台式机无核显的U提取的文件就无此情况,现在我们已经将核显函数从SSDT复制进DSDT,这样保存成DSDT.aml后打开就应该无错了。不排除有特殊情况的DSDT除了显卡函数,还有重要的函数定义在SSDT
复制代码
在有些笔记本的SSDT里面搜不到Device (GFX0)
仔细查看发现显卡函数原来在这里Scope (\_SB.PCI0.GFX0)
按照之前的教程先联合编译DSDT和SSDT,无错无警告后打上补丁
DSDT补丁
Rename GFX0 to IGPU
HD3000 on 7-series(并手动修改ID)
---------------------------------------
SSDT补丁
Rename GFX0 to IGPU
当我把整个Scope (\_SB.PCI0.GFX0)复制进DSDT里面后出现一个无法修复的错误
解决方法如下
我提供一个模板将Scope (\_SB.PCI0.GFX0)和Scope (\_SB.PCI0.B0D3)的内容复制到模板内
- Scope (_SB.PCI0)
- {
- Device (IGPU)
- {
-
- }
- }
复制代码 我们找开始复制的内容比较容易,找结尾比较难。这里还是通过点击需要复制函数的下一个函数,下一个函数的开始就是这个函数的结尾。注意看图:
按照之前的方法复制模板中的内容到DSDT
接下来把SSDT中外部调用函数下面的定义复制到DSDT
接下来编译DSDT比之前多出一种错误
解决方法删除里面的\_SB.PCI0.B0D3.
复制_DSM函数到DSDT
- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- If (LEqual (Arg2, Zero))
- {
- Return (Buffer (One)
- {
- 0x03
- })
- }
- Return (Package (0x04)
- {
- "AAPL,ig-platform-id",
- Buffer (0x04)
- {
- 0x06, 0x00, 0x26, 0x0A
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- })
- }
复制代码
亮度函数通过补丁也不能自动打了,手动添加以下函数
④5代CPU
按照此方法驱动5代CPU的核显请确保专用视频内存小于128MB
首先需要用四叶草的KextsToPatch给驱动打补丁
- <key>KextsToPatch</key>
- <array>
- <dict>
- <key>Comment</key>
- <string>Disable minStolenSize less or equal fStolenMemorySize assertion, 10.10.x (based on Austere.J patch)</string>
- <key>Disabled</key>
- <true/>
- <key>Find</key>
- <data>
- Oc92PA==
- </data>
- <key>Name</key>
- <string>AppleIntelBDWGraphicsFramebuffer</string>
- <key>Replace</key>
- <data>
- Oc/rPA==
- </data>
- </dict>
- <dict>
- <key>Comment</key>
- <string>Disable minStolenSize less or equal fStolenMemorySize assertion, 10.11.beta ( (based on Austere.J patch)</string>
- <key>Disabled</key>
- <true/>
- <key>Find</key>
- <data>
- QTnEdj4=
- </data>
- <key>Name</key>
- <string>AppleIntelBDWGraphicsFramebuffer</string>
- <key>Replace</key>
- <data>
- QTnE6z4=
- </data>
- </dict>
- </array>
复制代码 参考4代CPU中的方法把显卡函数从SSDT复制到DSDT
DSDT注入AAPL,ig-platform-id函数如下
- Method (_DSM, 4, NotSerialized)
- {
- If (LEqual (Arg2, Zero))
- {
- Return (Buffer (One)
- {
- 0x03
- })
- }
- Return (Package (0x08)
- {
- "device-id",
- Buffer (0x04)
- {
- 0x16, 0x16, 0x00, 0x00
- },
- "AAPL,ig-platform-id",
- Buffer (0x04)
- {
- 0x02, 0x00, 0x16, 0x16
- },
- "model",
- Buffer (0x17)
- {
- "Intel HD Graphics 5500"
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- })
- }
复制代码 亮度调节函数同四代CPU
⑤六代CPU
参考4代CPU中的方法把显卡函数从SSDT复制到DSDT
DSDT注入AAPL,ig-platform-id函数如下- Method (_DSM, 4, NotSerialized)
- {
- If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
- Return (Package()
- {
- "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1B, 0x19 },
- "hda-gfx", Buffer() { "onboard-1" },
- })
- }
复制代码 亮度调节函数同四代CPU
以上调节亮度的方法不需要放入第三方驱动,否则可能会5国
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
-
7
查看全部评分
-
|