上周去把 EPC 的内存升级到了 2G,直接发现开机进不了 OSX 了。
在两天没有电脑用之后,下定决心重装系统。重装之后,能进系统,但是重新启动之后键盘和触摸板就不能用了,电池状态指示挂了,郁闷。
在网上找了找,发现可能是 dsdt 的问题。由于内存大小变了,dsdt 中的信息不正确,继而导致 ACPI 失效,然后就整个玩完了。
一个老外找到了解决方法,通过修改 dsdt.aml 文件中的内存大小信息,就可以正确进入系统了。直接下载他提供的压缩包中的 dsdt.aml,开机直接四国了……
好吧,这个老外蛮厚道的,给出了手动处理的方法:
For the 1GB:
…
Name (SMBS, 0×0400)
OperationRegion (BIOS, SystemMemory, 0x3F7AE064, 0xFF)
Field (BIOS, ByteAcc, NoLock, Preserve)
{
…
For the 2GB:
…
Name (SMBS, 0×0400)
OperationRegion (BIOS, SystemMemory, 0x7F7AE064, 0xFF)
Field (BIOS, ByteAcc, NoLock, Preserve)
{
手动修改步骤
1. 首先要下载一个 dsdt.aml 反编译的工具:ACPICA - Windows Binary Tools
2. 解压后有一个 iasl.exe,把它拷贝到 dsdt.aml 所在的目录或者把 dsdt.aml 拷贝到 iasl 的目录都行,然后在命令行中运行:iasl -d dsdt.aml
3. 按照上面的说明,使用文本编辑器打开 dsdt.aml.dsl,根据你的内存大小修改 SystemMemory 后面的数值,1G 就用 0x3F7AE064,2G 就用 0x7F7AE064。
4. 再到命令行中,运行 iasl dsdt.aml.dsl,它会生成一个 dsdt.aml.aml,把它拷贝到 OSX 所在分区的根目录,覆盖原来的 dsdt.aml 即可。或者也可以把原来的文件备份一下,方便出错的还原。
参考资料
0 条评论。