13469977015002 发表于 2016-5-25 20:13

整合intel各代核显驱动以及笔记本亮度调节方法

本帖最后由 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国








mesponsibility 发表于 2016-5-25 20:24

本小白表示支持。

吉他音弦 发表于 2016-5-25 20:25

学习,谢谢分享

wskpm 发表于 2016-5-25 20:27

感谢分享!!

tntg534462 发表于 2016-5-25 20:33

前排支持楼主分享

fshk 发表于 2016-5-25 20:36

支持楼主分享 {:7_428:}

tushendage 发表于 2016-5-25 20:42

放到网盘好些,这样币浪费的太多了点。

13469977015002 发表于 2016-5-25 21:05

tushendage 发表于 2016-5-25 20:42 https://www.pcbeta.com/static/image/common/back.gif
放到网盘好些,这样币浪费的太多了点。

百度云会失效啊

13469977015002 发表于 2016-5-25 21:09

帮运教程中的软件
{:5_273:}





喜旸旸 发表于 2016-5-25 21:35

HD3000 如何才能调节亮度?

13469977015002 发表于 2016-5-25 21:39

喜旸旸 发表于 2016-5-25 21:35 https://www.pcbeta.com/static/image/common/back.gif
HD3000 如何才能调节亮度?

亮度补丁HD3000和4000是同一个补丁(补丁后面有HD3000/4000字样)
HD440046005500又是一个补丁

yaorh2 发表于 2016-5-25 22:05

感谢楼主,好人啊

subying 发表于 2016-5-25 22:33

小白表示支持

vivodlink 发表于 2016-5-25 23:12

谢谢楼主啦,到时试试看

duhaohua 发表于 2016-5-26 00:14


学习,谢谢分享

xuyingjuna 发表于 2016-5-26 00:17

感谢楼主分享

Aimisoy糊涂 发表于 2016-5-26 00:31

感谢分享,嘻嘻

LiuJiangshan 发表于 2016-5-26 01:27

hd4400,嗯看下

biggreat 发表于 2016-5-26 03:34

不错的基础教程,收藏、学习了

tjw123 发表于 2016-5-26 09:19

感谢分享看看
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 整合intel各代核显驱动以及笔记本亮度调节方法