DSDT修改教程本人机子配置:ACER Aspire 4930G主板:处理器名称Mobile DualCore Intel Core 2 Duo T5800, 2000 MHz (10 x 200)主板名称 Acer Aspire 4930主板芯片组Intel Cantiga PM45系统内存 3072 MB (DDR2-667 DDR2 SDRAM)DIMM1: Hynix HYMP125S64CP8-Y5 2 GB DDR2-667 DDR2 SDRAMDIMM3: Nanya NT1GT64U8HB0BN-3C 1 GB DDR2-667 DDR2 SDRAMBIOS 类型 Insyde (03/11/09)显示设备:显示卡 NVIDIA GeForce 9300M GS (256 MB)显示卡 NVIDIA GeForce 9300M GS (256 MB)3D 加速器 nVIDIA GeForce 9300M GS显示器 Samsung LTN141W3-L01 [14.1" LCD]多媒体:声卡nVIDIA HDMI @ Intel 82801IB ICH9 - High Definition Audio Controller [A-3]声卡Realtek ALC888/1200 @ Intel 82801IB ICH9 - High Definition Audio Controller [A-3]存储器:IDE 控制器Intel(R) ICH9M/M-E Family 4 Port SATA AHCI Controller - 2929IDE 控制器JMB38X MS Host ControllerIDE 控制器JMB38X SD Host ControllerIDE 控制器JMB38X SD/MMC Host ControllerIDE 控制器JMB38X xD Host Controller硬盘驱动器WDC WD2500BEVT-22ZCT0 ATA Device (232 GB, IDE)硬盘驱动器JMCR SD/MMC SCSI Disk Device (61 MB)光盘驱动器HL-DT-ST DVDRAM GSA-T50N ATA Device (DVD+R9:6x, DVD-R9:6x,DVD+RW:8x/8x, DVD-RW:8x/6x, DVD-RAM:5x, DVD-ROM:8x, CD:24x/24x/24x DVD+RW/DVD-RW/DVD-RAM)硬盘SMART 状态 OK网络设备:网络适配器Intel(R) WiFi Link 5100 AGN (192.168.1.106)网络适配器Realtek RTL8168C(P)/8111C(P) Family PCI-E Gigabit Ethernet NIC (NDIS 6.20)调制解调器Agere Systems HDA Modem一,安装关于安装,我完全参考了samsonwtsui的置顶帖/thread-592288-1-1.html采用bootthink2.3引导,成功安装,但仅仅是安装系统,驱动方面并未完全采用samsonwtsui的方法。
另外samsonwtsui安装的分区是主分区,而我安装的逻辑分区,而且不是第一逻辑分区,实践证明是没有任何问题的。
6.5G的分区是安装镜像,17.86G用来安装snow leopard,主系统是windows7.安装过程一切顺利,未出现五国或禁止标志等问题,安装完毕用windows7的安装光盘进入系统修复,回复C 盘为活动分区,重启后两个系统均可正常进入。
snow leopard显卡不能驱动,声卡不能驱动,无线不用想了,有线直接驱动,接下来就是驱动的安装了。
(这里注意,如果今后重装系统,只要不重新分区,c盘就会一直为活动分区,而不需每次修复二,驱动安装这就是重点了,实际上整个一个星期的工作绝大部分都是在如果驱动硬件上做文章了,虽然期间重装了三遍系统,但感觉轻车熟路,玩一样的。
在驱动问题上确实走了很多的弯路,但是这个弯路有时候有事必须的,因为人总想做的完美一些,只有不停地尝试才能找到更好的办法。
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了,我插入的位置:1.DefinitionBlock ("dsdt.aml", "DSDT", 2, "Intel ", "CANTIGA ",0x06040000)2.{3.4.Method (DTGP, 5, NotSerialized) //dtgp函数5. {6.If (LEqual (Arg0, Buffer (0x10)7. {8./* 0000 */ 0xC6, 0xB7, 0xB5,0xA0, 0x18, 0x13, 0x1C, 0x44,9./* 0008 */ 0xB0, 0xC9, 0xFE,0x69, 0x5E, 0xAF, 0x94, 0x9B10. }))11.{12.If (LEqual (Arg1, One))13.{14. If (LEqual (Arg2, Zero))15. {16.Store (Buffer (One)17.{18. 0x0319.}, Arg4)20.Return (One)21. }22. If (LEqual (Arg2, One))23. {24.Return (One)25. }26.}27.}28.Store (Buffer (One)29.{30. 0x0031.}, Arg4)32.Return (Zero)33. }34..........................................35. External (PDC1)36. External (PDC0)37. External (CFGD)38. External (\_PR_.CPU0._PPC)RTC听说这个是防止bios重置的,(我到现在也不知道bios重置是个什么东西)1.2. Device (RTC)3. { (_HID, EisaId ("PNP0B00")) (BUF0, ResourceTemplate ()6.{7.IO (Decode16,8. 0x0070,// Range Minimum9. 0x0070,// Range Maximum10. 0x01,// Alignment11. 0x02,// Length 这里由0x08改成0x0212. )13.}) (BUF1, ResourceTemplate ()15.{16.IO (Decode16,17. 0x0070,// Range Minimum18. 0x0070,// Range Maximum19. 0x01,// Alignment20. 0x08,// Length 这个不知道改不改21. )22.// IRQNoFlags () 直接用"//"屏蔽就是了23.// {8}24.})25.Method (_CRS, 0, Serialized)26.{27....................................28.}29. }HPET 听说这个是能解决cpu电源管理的1. Device (HPET)2. { (_HID, EisaId ("PNP0103")) (_CID, EisaId ("PNP0C01")) (BUF0, ResourceTemplate ()6.{7.IRQNoFlags () //就是加入这四行的东西8. {0}//9.IRQNoFlags () //10. {8}//11.Memory32Fixed (ReadOnly,12. 0xFED00000,// Address Base13. 0x00000400,// Address Length14. )15.})16.Method (_STA, 0, NotSerialized)17.{18...................................//此处略19.}20.Method (_CRS, 0, Serialized)21.{22..................................... // 此处略23.}24. }至于_WAK里面的两个Return(zero),我的dsdt里面自带了。