当前位置:首页 » 编程软件 » dsdt编译

dsdt编译

发布时间: 2023-09-10 08:29:32

❶ 想请问一下clover提取的DSDT和SSDT如何命名才能加载

不同的电脑,要根据实际情况选择补丁。修改、编译好的,就是放到那个文件夹。就可以加载DSDT。要加载SSDT,就还需要参数。
DSDT是主板BIOS中ACPI的一个表。什么是ACPI呢,它是BIOS的一个高级功能模块。
它是The Differentiated System Description Table的简写。字面上就可以知道它是一个描述系统不同信息的表。
包含了所有除基本系统以外所有不同设备的信息,也就是每台计算机设备的基本系统是相同的,而不相同的设备用DSDT来描述。
DSDT表代码为ACPI Machine Language (AML)。
Mac OS X不完整支持ACPI规范,仅支持它的子集DSDT。
用户通过修改DSDT可以得到更好的硬件支持。最简单的理解就是DSDT是描述硬件的。mac的驱动是被动驱动,需要让系统知道存在这个硬件且知道硬件位置。
修改DSDT的主要目的就是让mac系统识别存在这个硬件并告诉mac系统你的硬件位置,以便让mac系统内置的驱动来驱动硬件工作。

❷ 在黑苹果中,所说的DSDT是什么是什么作用的

DSDT是The Differentiated System Description Table的简写。字面上就可以知道它是一个描述系统不同信息的表。

包含了所有除基本系统以外所有不同设备的信息,也就是每台计算机设备的基本系统是相同的,而不相同的设备用DSDT来描述。

用户通过修改DSDT可以得到更好的硬件支持。最简单的理解就是DSDT是描述硬件的。mac的驱动是被动驱动,需要让系统知道存在这个硬件且知道硬件位置。

修改DSDT的主要目的就是让mac系统识别存在这个硬件并告诉mac系统的硬件位置,以便让mac系统内置的驱动来驱动硬件工作。

(2)dsdt编译扩展阅读:

自从苹果采用Intel的处理器,OSX被黑客破解后可以安装在Intel CPU与部分AMDCPU的机器上。从而出现了一大批非苹果设备而使用苹果操作系统的机器。在Mac苹果机上面安装原版Mac系统的被称为白苹果(Macintosh),与黑苹果相对。

黑苹果板块,国内的主要讨论社区,大部分资料来源于此处,高手云集。威锋论坛或威锋网。黑苹果板块,国内主要讨论苹果的一线社区,iOS为主要讨论对象。

❸ 求助如何修改DSDT来禁用独显

基本原理

在电脑开机时(对应_INI method)和睡眠唤醒时(对应_WAK method)调用关闭Nvidia独显的Method。

这个网站http://hybrid-graphics-linux.tuxfamily.org/index.php?title=ACPI_calls总结了关闭Nvidia显卡的常见methods,还列举了一些机型的具体情况,大家可以去看看,弄清楚自己电脑关闭显卡的method究竟是哪个,然后结合这个帖子来修改DSDT.

正如上面那个网站所示,关闭Nvidia独显一般有两种方法:一、使用 _DSM + _PS3;二、直接用_OFF(或者DOFF,SGOF等等,有些机型是不同的);

虽然上面那个网站一般都是直接调用OFF()函数来关闭独显的,但个人觉得如果有_DSM和_PS3的话,先使用方法一比较好,因为方法二可能会有一些影响,比如CPU变频的问题。(具体请看参考帖子[教程] 解决Optimus 和CPU Turbo 变频冲突)。

具体方法

很多人喜欢把SSDT的显卡部分移到DSDT中然后添加关闭独显的代码,并且开机DropOEMSSDT只用DSDT。但是我个人觉得这样子很麻烦,首先在移动过程中可能会产生错误,而且Drop掉SSDT后,DSDT中的那些External variables,methods就无法access了,因此DSDT中用到这些Objects,Methods的地方就会产生问题。如果Drop SSDT的目的是为了使用clover和变色龙的Generate P-States和C-States的话,clover可以只Drop掉有CPU信息的SSDT,变色龙可以把除有CPU信息的其他SSDT放在Extra目录下再DropSSDT,所以我认为完全没有必要花时间来移动显卡部分或者其他东西。如果DSDT和SSDT要相互调用对方的函数,那就在definition block那里加上External就好了。(如果新人看不懂这一段就跳过吧)说了那么多废话,终于开始了。

注意,在修改DSDT和SSDT之前,可以用这个帖子介绍的方法先生成dsl文件,可以减少错误,还有其他错误自己爬帖解决。不过如果你某个DSDT或SSDT有错误不能解决但你不需要再把它编译成AML文件的话,可以不用管它。

方法一:搜索函数

首先在DSDT和SSDT中搜索找到要用的函数_WAK,_INI,_PS3,_DSM。_WAK一般只有一个。_INI可能有很多个,最好用\_SB.PCI0下或\_SB.PCI0.PEG0.PEGP的。_PS3只有一个,如果没有的话看方法二。_DSM会有很多个,一定要用\_SB.PCI0.PEG0.PEGP下的,如果\_SB.PCI0.PEG0.PEGP下没有,搜索看看Device(GFX0)下有没有,如果都没有就看方法二.(注意,以下步骤是默认你DSDT的相关methods为一般情况,若有不同需根据你自己的DSDT做相应更改)

方法一:在_WAK之前新建一个Method PINI()

  • Method(PINI,0,NotSerialized)

  • {

  • \_SB.PCI0.PEG0.PEGP._DSM(Buffer(0x10)

  • {

  • /*0000*/0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,

  • /*0008*/0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0

  • },0x0100,0x1A,Buffer(0x04)

  • {

  • 0x01,0x00,0x00,0x03

  • })

  • \_SB.PCI0.PEG0.PEGP._PS3()

  • }

  • 方法一:在_WAK和适当的_INI中调用PINI()

    _WAK和_INI可能不在同一个DSDT或SSDT中,没有关系

  • Method(_WAK,1,Serialized)

  • {

  • PINI()

  • ......

  • [。。。省略。。。]

  • Method(_INI,0,NotSerialized)

  • {

  • PINI()

  • .......

  • }

  • 方法一:编译错误

    如果有类似以下的错误

  • ErrorObjectdoesnotexist(PINI)

  • 在DefinitionBlock(在DSDT和SSDT的最上面)加上以下代码

  • External(PINI,MethodObj)

  • 方法一:错误修正示范:

  • DefinitionBlock("acpi_dsdt.aml","DSDT",1,"LENOVO","CB-01",0x00000001)

  • {

  • External(_SB_.PCI0.PAUD.PUAM,MethodObj)//Warning:UnresolvedMethod,guessing0arguments(maybeincorrect,seewarningabove)

  • External(_SB_.PCI0.XHC_.DUAM,MethodObj)//Warning:UnresolvedMethod,guessing0arguments(maybeincorrect,seewarningabove)

  • External(_SB_.TPM_.PTS_,MethodObj)//Warning:UnresolvedMethod,guessing1arguments(maybeincorrect,seewarningabove)

  • External(_PR_.CFGD,FieldUnitObj)

  • External(_PR_.CPU0._PPC,IntObj)

  • External(_PR_.CPU0._PSS,PkgObj)

  • External(PINI,MethodObj)

  • 如果错误提示Object does not exist (\_SB.PCI0.PEG0.PEGP._PS3)

    在DefinitionBlock加上

  • External(_SB_.PCI0.PEG0.PEGP._PS3,MethodObj)

  • 如果错误提示Object does not exist (\_SB.PCI0.PEG0.PEGP._DSM)

    在DefinitionBlock加上

  • External(_SB_.PCI0.PEG0.PEGP._DSM,MethodObj)

  • 方法一:保存编译

    没有错误了,编译,save AML,把修改了的DSDT.aml, SSDT.aml和其他所以没有修改的SSDT*.aml放在Extra目录(变色龙),或patched文件夹(Clover),这样的话要DropSSDT。开机,幸运的话,Nvidia显卡应该被屏蔽了。

    方法二:没有_PS3函数

    如果没有_PS3函数,或者使用上面的方法没效果,那就试试这个方法吧。

    在_WAK和适当的_INI里面加入\_SB.PCI0.PEG0.PEGP._OFF()

  • Method(_WAK,1,Serialized)

  • {

  • \_SB.PCI0.PEG0.PEGP._OFF()

  • ......

  • [。。。省略。。。]

  • Method(_INI,0,NotSerialized)

  • {

  • \_SB.PCI0.PEG0.PEGP._OFF()

  • .......

  • }

  • 方法二:编译错误

    如果编译时有错误,像方法一的4中那样解决错误即可。

    方法二:编译保存

    没有错误了,编译,save AML,把修改了的DSDT.aml, SSDT.aml和其他所以没有修改的SSDT*.aml放在Extra目录(变色龙),或patched文件夹(Clover),这样的话要DropSSDT。开机,幸运的话,Nvidia显卡应该被屏蔽了。

    查看是否生效

    如何查看是否成功屏蔽Nvidia独显:打开“系统信息”→“图形卡/显示器”,若只有Intel显卡的信息就证明屏蔽成功。若成功了就支持一下吧!

热点内容
java编程试题 发布:2024-11-19 17:26:37 浏览:664
python显示二进制文件 发布:2024-11-19 17:26:36 浏览:147
excel中编程 发布:2024-11-19 17:23:32 浏览:549
android透明图片 发布:2024-11-19 17:01:50 浏览:163
iis上传文件限制 发布:2024-11-19 16:37:55 浏览:407
面试题算法 发布:2024-11-19 16:30:25 浏览:547
oracle存储过程debug 发布:2024-11-19 16:30:25 浏览:234
linuxshjava 发布:2024-11-19 16:29:49 浏览:600
小程序saas平台源码 发布:2024-11-19 16:27:16 浏览:839
汽车五门怎么看配置 发布:2024-11-19 16:26:27 浏览:795