原创DSDT最完整的修改教程
DSDT

DSDT百科名片DSDT是主板BIOS中ACPI的一个表。
什么是ACPI呢,它是BIOS的一个高级功能模块。
黑苹果由于硬件兼容性问题,多使用修改DSDT的方法来解决。
例如显卡,声卡驱动。
那什么是DSDT呢,我们先需要了解一下它。
下面咱稍微详细的从最大的开始说:一、首先,BIOS(略)二、ACPIACPI是Hewlett-Packard, Intel, Microsoft, Phoenix, 和Toshiba共同制定的一个开放的行业规范。
是The Advanced Configuration and Power Interface 的缩写,也就是“电源管理模式和配置管理的接口规范”。
从名字可以看出主要是“电源管理”和“配置管理”。
更多详细描述可以访问Intel technology 下载PDF描述文档。
它主要涵盖的功能包括:System power management(系统电源管理)Device power management(设备电源管理)Processor power management(处理器电源管理)Device and processor performance management(设备及处理器性能管理)Configuration / Plug and Play(配置/即插即用)System Events(系统事件)Battery management(电池管理)Thermal management(温度管理)Embedded Controller(嵌入式控制器)SMBus Controller(SMBus控制器)在计算机应用平台,ACPI越来越重要。
ACPI由很多表组成,包括:RSDP,SDTH,RSDT,F ADT,F ACS,DSDT,SSDT,MADT,SBST,XSDT,ECDT,SLIT,SRAT。
(略写了,不用太详细介绍)其中DSDT就是它的一个重要的描述表。
三、DSDT它是The Differentiated System Description Table的简写。
FOOBAR2000播DTS的方法(WAV)

FOOBAR2000播DTS的方法(WAV)FOOBAR2000播DTS的方法(WAV)大家如果从网上DOWNLOAD了DTS-CD的文件是APE/WAV想用FOOBAR2000播的话.......一、WAV的分轨文件将后缀改为dts(大写DTS也可),即可用FOOBAR2000播放,当然FOOBAR2000的版本要含支持dts的...二、带CUE文件的修改CUE第三行CDImage.wav成CDImage.dts,如果是分鬼的轨,CUE的每行: FILE "鬼文件.wav" WAVE 都改成: FILE "鬼文件.dts" WAVE三、没有CUE的分鬼文件可自制,,,查看我自制的CUE文件举一反三(相信您行的)没有CUE的整鬼文件,,,用EAC软件->工具->处理WVA文件->装入你的文件->创建CUE->保存CUE,,,(经过以上的修改是不会影响装入虚拟光驱,,,同样可用,无论播放或刻碟)四、APE的就要用猴子解压成WAV文件(删掉APE),然后重一、二、和三、(CUE文件的修改第三行CDImage.ape成CDImage.dts)五、有5.1音箱的电脑就马上可以听DTS音乐了,,,好处来了,,,你可以将所有经以上处理的DTS-CD无需装入虚拟光驱,,,对着硬盘里的文件按右键加入FOOBAR2000播放列表,,,就像听APE一样几百首,,乱序/随机/乱序专辑/乱序标签,,,你喜欢啦,,,,,,痛快吗?六、无5.1音箱只有2.0或2.1音箱的呢现时只能听到6CH的2个CH(即L+R),,,可怜的 2.0或 2.1音箱最好装入虚拟光驱,用POWERDVD/WINDVD听了,这样用上虚拟扬声器功能也痛快半下吧,,,其实效果也很好的.如果你坚持要用FOOBAR2000播的话,作以下修改啦效果可能没虚拟的好,FOOBAR2000->参数设置->回放->DSP Manager->将右边的"5.1声道转立体声"选向左边这样6鬼都跑不掉.七、如果你试过以上方法OK,,,不想刻碟只想在电脑硬盘上听的话,,,我不反对将其他格式如下3-7类文件装入虚拟光驱用EAC重抓*.WAW改名*.DTS(经过以上的修改是不会影响装入虚拟光驱,,,同样可用,无论播放或刻碟)1. APE + CUE 文件一个APE或多个APE2. WAV + CUE 文件一个WAV或多个WAV3. IMG + CCD + SUB 文件4. NRG 文件5.MDS + MDF 文件6.BIN + CUE + SUB文件7.ISO + CUE 文件8.BWT 文件 (很少见)直此文......望能唤醒抓轨DTS-CD上付的人们,,,,"我们是不喜欢粉红燥音的"分鬼自制CUE例:PERFORMER "张学友"TITLE "Jacky音乐之旅Live演唱会DTS-CD1"FILE "00-序曲.dts" WAVETRACK 01 AUDIOTITLE "序曲"PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "01-Touch of Love.dts" WAVETRACK 02 AUDIOTITLE "T ouch of Love"PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "02-Corazon de Melao.dts" WAVETRACK 03 AUDIOTITLE "Corazon de Melao"PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "03-I Got it Made.dts" WAVETRACK 04 AUDIOTITLE "I Got it Made"PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "04-Speak Without Words.dts" WAVE TRACK 05 AUDIOTITLE "Speak Without Words" PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "05-天气这么热.dts" WAVETRACK 06 AUDIOTITLE "天气这么热"PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "06-如果这都不算爱.dts" WAVE TRACK 07 AUDIOTITLE "如果这都不算爱" PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "07-我真受伤了.dts" WAVETRACK 08 AUDIOTITLE "我真受伤了"PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "08-楼上来的声音.dts" WAVE TRACK 09 AUDIOTITLE "楼上来的声音" PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "09-有病呻吟.dts" WAVE TRACK 10 AUDIOTITLE "有病呻吟" PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "10-捉迷藏.dts" WAVE TRACK 11 AUDIOTITLE "捉迷藏"PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "11-这个冬天不太冷.dts" WAVE TRACK 12 AUDIOTITLE "这个冬天不太冷" PERFORMER "张学友"FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00FILE "12-心如刀割.dts" WAVE TRACK 13 AUDIOTITLE "心如刀割" PERFORMER "张学友" FLAGS DCPPREGAP 00:02:00INDEX 01 00:00:00。
一步一步在winodws制作DSDT全新手教程

一步一步在winodws制作DSDT全新手教程本文的目地乃有鉴于很多新手安装完SL就急着要进SL,但是可以预料的是有99%的人都进不了SL,而是进了五国再来不是乱找kext来试,就是到处找求救,等都弄好了kext,再修dsdt反而变成要砍一些kext.这样等于是绕了个大圈子做事其实制做dsdt的最好时机是在安装完SL后,第一次进入SL之前就弄好第一回合的修补(所谓的第一回合下面会讲解)做好了DSDT再开机进SL,应该会有50%以上的机会能进SL(除非遇到ata类的问题)小提醒:以下所有动做都是在windows下进行,因为您还没能进mac嘛本教程以下包含了:1. dsdt的提取(在windows底下)2. dsdt最基本的修补一.dsdt的提取:方法很简单请先下载acpipatcher )下好后在windows下解开执行cmd.exe 在命令列下我们要提取dsdt(请确定cmd.exe是以管理员身份执行)cd 进到该acpipatcher的目录下找到iasl.exe执行以下命令iasl -g (若非管理员您会无法提取)这时您已经得到了,三个档案以我为例子,我的该目录下生成了DSDT_A0820000.dat (这个就是dsdt.aml)dsdt_A0820000.dsl (这个就是dsdt.dsl)FACP_FACP0949.dat这下省事了,直接就有dsdt.dsl可用了二.dsdt最基本的修补在windows下直接执行acpipatcher (注意: 很多新手都怪acpipatcher无法执行,window xp下请先安装.net 2.0,win7则不用) 这边我们只要跑第一回合的apcipatch如图,只要用到很简单的部份,左半边的最后一项(D/C DSDT),及右半边的第一项(Genera l),所以图不会换页只需照这张图就够了现在我们将刚刚的dsl档加入到acpiptacher中准备修补dsdt选您修补好后要放dsdt.aml的目录(我的是e:\dsdtot)勾选Patch before compile (一定要勾选,否则就不会修补)选compile to AML右半边勾选general下全部选项然后选择您pc的bios厂牌(厂牌要选对,不然可能不能跑)最后按下D/C 这个按纽让它跑起来如果人品够好修补过程没错误(有错的话就上网找求助)修补后产生的dsdt.aml就能拿来用了用bootthink的放在您darwin目录下用变色龙的放osx根目录extra下这已经完成了第一回合的修补了多半能让您免痛的快速进SL至于其它网卡,显卡,声卡的修补由于您需要知道它的硬体位置,一定得等您能进SL后,在mac下用工具ioexploler看所以无法在第一轮就制作。
DSDTSE使用教程

DSDT修改(提取和软件使用篇)乎,就有了这文章的出现帖子涉及的软件在========================================================================在此之前先说说DSDT的作用吧==很多人老是问为什么在系统信息里面显示了,但是就是没法驱动。
我再次声明:DSDT没有驱动功能,说白了它只是用来告诉Mac,电脑里面有某些硬件,所以在系统信息里面就能显示了~但是有没有驱动这要看Mac的有没有驱动可以支持你的硬件了。
还有我们使用的DSDT文件是DSDT.aml(dsdt.aml)不是DSDT.dsl(dsdt.dsl)=========================================================DSDT如何使用变色龙引导或者HJmac引导的话直接放到Mac盘的Extra文件夹的根目录,重启就行了~PS:不要在问我说放在Extra/Extensions行不行或者放到其它地方行不行====================================================如何提取DSDT?提取DSDT主要分为2种~第一种:Win下提取。
第二种:Mac下提取。
这2种有什么提取出来的DSDT有什么区别么~~说实话:其实没多大区别~只要你的Mac没有用DSDT启动的话,提取出来的和Win是一样的(我是没发现什么不同,若是真有什么不同,请指正~)如果你的Mac已经加载了修改过的DSDT再来提取DSDT那么生成的DSDT 就会和Win下提取的不同了。
=========================================================Win下提取DSDT:1.使用AIDA64Extrem Edition(原名:EVEREST Ultimate Edition)2.使用DSDT Editor(需安装JAVA)3.其它(不做讨论)使用AIDA64提取:1.在状态栏空白处右键,如图:2.选择ACPI Tool,如图:3.这时会出现一大堆的信息,我们无视他直接按Save DSDT保存至此我们就把DSDT提取出来了~不过提取出来的DSDT是bin后缀的,自行把后缀改为aml (此时请不要直接拿去用,一般提取出来的DSDT都是有错误的),便可在DSDT Editor软件打开修改了。
使用ACPI_Patcher制作DSDT补丁

威廉第三的MAC系列教程(一)——使用ACPI Patcher制作DSDT补丁很早就开始接触Hacintosh了,也经常出没在各个hacintosh论坛,因此也积累了不少知识,但是很多东西都是英文的,却没有人引进到国内,导致很多人都不了解Hacintosh社区最新的进展,或者知其然不知其所以然,因此我在这里抛砖引玉,把自己知道的一些知识写出来和大家分享,也是想引出更多高手来。
第一篇我想给大家介绍如何使用ACPI Patcher制作DSDT补丁。
很多人都知道使用DSDT补丁可以开双核,但DSDT的功能不仅仅如此,除了开双核,还可以可以修复ACPI缺陷(不需要Disabler.kext,原版cpupowermanagement正常使用),RTC,HPET缺陷(原版kext正常工作),显卡(代替efistring),声卡(只是代替了HDAEnabler.kext),网卡(包括TimeMachine问题),此外还可以解决其他很多奇奇怪怪的问题,因此建议尽可能使用DSDT补丁。
但是DSDT到底是什么东西,怎么这么神奇呢?这个要从ACPI说起了,ACPI是Intel(i386,x86_64,IA64)平台的标准固件规范,绝大部分OS需要从BIOS得到的信息都可以从ACPI得到,并且现在的趋势是未来的任何新的特性相关的信息都只能从ACPI得到。
ACPI的信息包括:配置信息,这些信息从legacyPNP设备的配置,到多处理器,到NUMA,比如现在的MultipleCore的信息就只能从ACPI得到。
Linux启动很多代码就是处理这些配置信息,比如APIC,IOAPIC设置等。
ACPI相关设备,主要是笔记本电脑相关的设备,包括电源按钮,电池,外接电源,风扇,热键等。
底层硬件,比如PCI中断路由,chipset(主要是南桥PCI-to-LPCbridge)操作等。
电源管理,ACPI定义的电源管理包括CPU的电源管理(调频率P-state,idleC-state,throttingT-state),设备电源管理(D-state),系统电源管理(Suspend-to-Ram,Suspend-to-Disk, power off)等。
Windows下无需BIOS文件,使用Everest和ACPI Patcher轻松生成dsdt.aml

不知道有没有人发过,最近看到网上一些有关dsdt的帖子,在存在windows操作系统的情况下,个人感觉这是最简便的制作打好补丁的dsdt.aml的方法。
未在XP下测试过。
不需要bios文件,所以不受Award和AMI的限制,任何主板都可以搞定。
有了可用的dsdt.aml,就不用冒险刷BIOS。
需要Everest软件和威廉第三关于dsdt帖子里的ACPI Patcher,两者都是windows下运行。
总共两步。
第一步来自这个帖子:使用Everest提取系统的DSDT在Everest底部状态栏右键弹出菜单,点击ACPI tool。
点击Save DSDT,选择存放到一个指定地点,生成的是后缀为bin的文件,这个就是一个类似于未打补丁的dsdt.aml的文件。
注意:需要修复BIOS重置或其他dsl修正的跳过第二步到P.S.查看。
第二步:使用ACPI Patcher对第一步生成的bin文件打补丁并生成aml文件选择DSDT Patch这个菜单,指定源文件为上述的bin文件,再指定一个输出路径,点击Patch AML即可。
找到生成的aml文件,将其改名为dsdt.aml,即可复制到苹果系统的根目录下使用,我一般将它的ownership改为0:0(root:wheel)。
P. S. 关于修复BIOS重置及其他出错信息我的情况是不需要更正.如果你的dsdt需要修正,可以使用ACPIPatcher的D/C DSDT菜单项将第一步的bin文件先decompile为dsl文件编辑好之后,仍然使用D/C DSDT菜单项将该dsl文件打补丁并编译为aml文件. 注意,如下图中所示,一定要勾上左侧窗口里的Patch before compile,否则右边所有的patch选项不起作用。
BIOS重置的修订是找到RTC段,将//length之前的一个值改为0x02,详情见youminbuluo的帖子。
对于其他出错信息,当你编译为aml文件,如果不成功,请在ACPI Patcher左下角的窗口里查看出错信息。
手把手教你如何提取自己主板的DSDT

手把手教你如何提取自己主板的DSDT
本人也是从一个菜鸟开始学起了,关于DSDT的文章看了不少,但是具体很详细的倒不是很多,下面我系统的说一说如何提取自己电脑主板中的DSDT,这个文件对应每个主板是不一样的,它可以解决很多PC机装MAC驱动兼容问题以及开机超慢的问题。
整个过程需要两个软件,一个是Patcher02Beta5,一个是everestultimate_build_1977,这两个在下面可以下载。
好了,进入正题:
第一步,解压everestultimate_build_1977,运行everest.exe,如图
1.j pg
第二步,选择主板---ACPI---选中最左下角的ACPI点击右键---ACPI Tool---Save DSDT---保存在桌面上,保存文件格式是bin,如图
2.j pg
第三步,得到文件如图:
3.j pg
第四步,解压Patcher02Beta5,打开ACPI Patcher.exe,如图
企鹅王企鹅.jpg
第五步,选择DSDT Patch,第一个选择刚才生成的bin文件,第二个选择需要放入的路径,Force DSDT compilation一定要勾选。
最后点击Patch AML,即可得到f ixeddsdt.aml这个文件,只需把f ixeddsdt名字改为DSDT即可,如图
4.j pg
以上就把自己的DSDT制作好了,但是有时候也会出现问题,这就要对应自己的硬件选择对应的补丁,Patcher02Beta5左边有对应的补丁,不
会的看一看威廉出的教程。
本文就介绍完毕。
2019年DSDT的入门知识

:DSDT是主板BIOS用来描述主板上硬件设备的代码集合,通过代码告诉操作系统自己的主板上插有什么样的设备,以及对设备具体的描述。
想使用DSDT驱动显卡的前提是,你必须使用第三方KEXT驱动了你的显卡,然后获得了一些关于你显卡的具体技术数据。
完美驱动还是不完美驱动并不重要,我们需要的是得到NVCAP的值。
2.退一步,如果你找不到KEXT来驱动你的显卡,你需要做的就是用相似的显卡NVCAP的值加入DSDT,运气好的话也能驱动。
善用论坛搜索的作用仅仅是描述你硬件(包括硬件位置,ID,型号,一些必须的值比如NVCAP),告诉MAC系统你有显卡这么个东西,MAC系统然后检查下自己的驱动库里有这么个硬件的驱动没,如果有的话就驱动了,没有的话,你DSDT写的再好,MAC也会告诉你,对不起,我不认识你的东西。
当然,MAC系统也可能认错,比如你的显卡是256M NV 9200M GS,放入,驱动之后系统概述里显示的是8400GT,显存只有128,这并不影响你使用,这个时候你就要在DSDT里加入代码告诉他你是9200的不是8400,它读到之后就正确显示了。
后面会告诉你如何获得NACAP的值。
的值并不是每个显卡都不同,相似显卡的NACAP的值是一样的,多尝试尝试。
下面开始修改显卡的DSDT部分。
我是Insyde的BIOS,所以我会以这个BIOS为例子。
其他主板修改方法类似。
修改之前要明白几个DSDT的架构,想详细了解的可以参考论坛紫米的帖子,我通俗的描述下我的思路1 显卡在MAC里通常描述成PEGP,有些新手可能会发现,自己的DSDT中根本找不到PEGP,咋办呢~好办。
方法1,启动MAC系统,用IORegistryExplorer查看你显卡的位置,一般情况下都是PCI0的分支下,同样,它肯定也是在你DSDT中的DEVICE (PCI0)分支下。
具体的名字每个主板可能都不一样了,比如我的DSDT中叫PVGA。
也有可能叫POP2,名字不重要。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSDT修改教程这就是重点了,实际上整个一个星期的工作绝大部分都是在如果驱动硬件上做文章了,虽然期间重装了三遍系统,但感觉轻车熟路,玩一样的。
在驱动问题上确实走了很多的弯路,但是这个弯路有时候有事必须的,因为人总想做的完美一些,只有不停地尝试才能找到更好的办法。
1、显卡装完雪豹第一个想法就是希望能看到华丽的而且和windows不一样的界面,但事实又总是和想象的有所区别,界面是变了,但是连进入系统式欢迎动画都是卡卡卡!!所以第一个想法也是把显卡的驱动装上,于是google,一堆的驱动,一堆的方法,只是没有哪个具体说了怎样驱动 9300m gs的,没办法只好一个一个的试了,几乎把所有的驱动都试过了(没找到的,不知道的,不算),NVkushInstaller、NVinstaller v.52、NVIDIA_9000_Series_Driver_v2、NVdarwinInstaller1.2.5、Natit.kext一样的不一样的都试了一遍,统统不行!!然后又试EFI String,用OSX86Tools_1.0.150(这是个好东西),但是顶多就是强制分辨率,驱动的不能。
还有人介绍的就是在 com.apple.Boot.plist里面加入1.<key>GraphicsEnabler</key>2.<string>y</string>不知是不是人品不好,这个东东在别人那挺好,在我这统统不管用。
pcbeta逛了逛才接触到通过dsdt的修改来驱动显卡,让我兴奋的不得了,凭直觉觉得用dsdt来驱动硬件应该是比较完美的方法,于是全身心投入到了dsdt的研究当中,由于之前一点都没有接触过dsdt(java编程还是会的),只能在网上找方法然后依葫芦画瓢,但是开始根本不知道从何入手,比较简单的方法就是威廉的acpi patch,但是又不支持我这个类型的bios,只能手动修改!彷徨中一个大侠的出现让我看到了曙光,[url=space.php?uid=487636]xchobits[/url]大侠把他自己的dsdt文件给了我,因为我们的本子都是差不多的,我把他的dsdt.aml放入drawn文件夹下后,奇迹出现了,透明效果一下出来了,高兴的不得了!!!甚至安装了legacyHDA后,声卡也出声了!!!但问题也接踵而来,就是每次进系统时总是先要五国一次,然后强制重启就能正常进入,郁闷的不得鸟!!我分析,毕竟我的硬件不完全就是他的硬件,是不是某些地方的不同导致了五国,于是我决定自己修改dsdt!!==========================================================2、DSDT首先要把xchobits的 aml文件反编译,干吗?学习!!下载了iasl-win-20080729,反编译命令1.2.iasl -d dsdt.aml得到dsdt.dsl 文件,一开始我一直用写字板编辑,后来发现用UltraEdit-32相当的方便,在视图里面选择查看方式选择perl,看到左边的加号了,确保了每个{ }都不会错,大大降低了出错的几率。
开始也不知道xchobits到底修改了哪里,就上网找教程,很多,就按教程修改!!首先提取自己的dsdt,用everestultimate+ACPI Patcher,先用everestultimate导出acpi_dsdt.bin,然后用ACPI Patcher点D/C按钮就得到dsl文件了。
GTGP 是最基本的一个方法,很多函数都需要它,加入的位臵只要不是放在子函数块里就ok了,我插入的位臵:DefinitionBlock ("dsdt.aml", "DSDT", 2, "Intel ", "CANTIGA ", 0x06040000){Method (DTGP, 5, NotSerialized) //dtgp函数{If (LEqual (Arg0, Buffer (0x10){/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B})){If (LEqual (Arg1, One)){If (LEqual (Arg2, Zero)){Store (Buffer (One){0x03}, Arg4)Return (One)}If (LEqual (Arg2, One)){Return (One)}}}Store (Buffer (One){0x00}, Arg4)Return (Zero)}.........................................External (PDC1)External (PDC0)External (CFGD)External (\_PR_.CPU0._PPC)RTC听说这个是防止bios重臵的,(我到现在也不知道bios重臵是个什么东西)Device (RTC){Name (_HID, EisaId ("PNP0B00"))Name (BUF0, ResourceTemplate (){IO (Decode16,0x0070, // Range Minimum0x0070, // Range Maximum0x01, // Alignment0x02, // Length 这里由0x08改成0x02 )})Name (BUF1, ResourceTemplate (){IO (Decode16,0x0070, // Range Minimum0x0070, // Range Maximum0x01, // Alignment0x08, // Length 这个不知道改不改)// IRQNoFlags () 直接用"//"屏蔽就是了// {8}})Method (_CRS, 0, Serialized){...................................}}HPET 听说这个是能解决cpu电源管理的Device (HPET){Name (_HID, EisaId ("PNP0103"))Name (_CID, EisaId ("PNP0C01"))Name (BUF0, ResourceTemplate (){IRQNoFlags () //就是加入这四行的东西{0} //IRQNoFlags () //{8} //Memory32Fixed (ReadOnly,0xFED00000, // Address Base 0x00000400, // Address Length )})Method (_STA, 0, NotSerialized){..................................//此处略}Method (_CRS, 0, Serialized){.................................... // 此处略 }}至于_WAK里面的两个Return(zero),我的dsdt里面自带了。
显卡的GFX0加入PEGP里面Device (PEGP){Name (_ADR, 0x00010000)Device (GFX0){Name (_ADR, Zero)Name (_SUN, One)Method (_DSM, 4, NotSerialized){Store (Package (0x1C){"AAPL,slot-name",Buffer (0x0D){"PCI-E Slot-1"},"@0,compatible",Buffer (0x0B){"NVDA,NVMac"},"@0,device_type", Buffer (0x08){"display"},"@0,name",Buffer (0x0F){"NVDA,Display-A" },"@1,compatible",Buffer (0x0B){"NVDA,NVMac"},"@1,device_type", Buffer (0x08){"display"},"@1,name",Buffer (0x0F){"NVDA,Display-B"},"NVCAP",Buffer (0x18){/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,/* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,/* 0010 */ 0x00, 0x00, 0x00, 0x00},"NVPM",Buffer (0x20){/* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0018 */ 0x00, 0x00, 0x00, 0x00"VRAM,totalsize",Buffer (0x04){0x00, 0x00, 0x00, 0x10 //这里0x10代表256M 显存,0x20代表512M},"device_type",Buffer (0x0D){"NVDA,GeForce"},"model",Buffer (0x1F) // 0x1F代表了"Nvidia GeForce 9300M GS 256 MB"的字数,一般按字数+空格+1然后在转16进制,Buffer的用法基本相同{"Nvidia GeForce 9300M GS 256 MB"},"rom-revision",Buffer (0x21){"DSDT ROM v1.0 by Echo #OS x86_64"},"reg",Buffer (0x78)/* 0000 */ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x02,/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,/* 0028 */ 0x14, 0x00, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00,/* 0030 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0038 */ 0x00, 0x00, 0x00, 0x10, 0x1C, 0x00, 0x01, 0x02,/* 0040 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0048 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,/* 0050 */ 0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,/* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0060 */ 0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x02,/* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,/* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00}}, Local0)DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))Return (Local0)}Device (VGA){.......................... //此处略}Method (_PRT, 0, NotSerialized){...........................//此处略}}}这里要注意那个 device(VGA),本来他是在GFX0之外的,但是我把它放到GFX0之内了,所以就有两个调用到它的地方要由PEGP.VGA改成 PEGP.GFX0.VGA ,另外在VGA函数里面要调用之外的函数往往用^^^.LPC等等,此刻就要记得在前面多加个"^"了,前面就成了 ^^^^.LPC。